LLVM 20.0.0git
NativeEnumModules.cpp
Go to the documentation of this file.
1//==- NativeEnumModules.cpp - Native Symbol Enumerator impl ------*- C++ -*-==//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8
10
15
16namespace llvm {
17namespace pdb {
18
20 : Session(PDBSession), Index(Index) {}
21
23 return Session.getSymbolCache().getNumCompilands();
24}
25
26std::unique_ptr<PDBSymbol>
28 return Session.getSymbolCache().getOrCreateCompiland(N);
29}
30
31std::unique_ptr<PDBSymbol> NativeEnumModules::getNext() {
32 if (Index >= getChildCount())
33 return nullptr;
34 return getChildAtIndex(Index++);
35}
36
37void NativeEnumModules::reset() { Index = 0; }
38
39}
40}
uint32_t Index
NativeEnumModules(NativeSession &Session, uint32_t Index=0)
uint32_t getChildCount() const override
std::unique_ptr< PDBSymbol > getChildAtIndex(uint32_t Index) const override
std::unique_ptr< PDBSymbol > getNext() override
SymbolCache & getSymbolCache()
std::unique_ptr< PDBSymbolCompiland > getOrCreateCompiland(uint32_t Index)
uint32_t getNumCompilands() const
This is an optimization pass for GlobalISel generic memory operations.
Definition: AddressRanges.h:18
#define N