LLVM: lib/DebugInfo/PDB/DIA/DIAEnumSymbols.cpp Source File (original) (raw)
Go to the documentation of this file.
1
2
3
4
5
6
7
8
13
14using namespace llvm;
16
18 CComPtr DiaEnumerator)
19 : Session(PDBSession), Enumerator(DiaEnumerator) {}
20
23 return (S_OK == Enumerator->get_Count(&Count)) ? Count : 0;
24}
25
26std::unique_ptr
28 CComPtr Item;
29 if (S_OK != Enumerator->Item(Index, &Item))
30 return nullptr;
31
32 std::unique_ptr RawSymbol(new DIARawSymbol(Session, Item));
33 return std::unique_ptr(PDBSymbol::create(Session, std::move(RawSymbol)));
34}
35
37 CComPtr Item;
38 ULONG NumFetched = 0;
39 if (S_OK != Enumerator->Next(1, &Item, &NumFetched))
40 return nullptr;
41
42 std::unique_ptr RawSymbol(new DIARawSymbol(Session, Item));
43 return std::unique_ptr(
45}
46
std::unique_ptr< PDBSymbol > getChildAtIndex(uint32_t Index) const override
Definition DIAEnumSymbols.cpp:27
void reset() override
Definition DIAEnumSymbols.cpp:47
DIAEnumSymbols(const DIASession &Session, CComPtr< IDiaEnumSymbols > DiaEnumerator)
Definition DIAEnumSymbols.cpp:17
std::unique_ptr< PDBSymbol > getNext() override
Definition DIAEnumSymbols.cpp:36
uint32_t getChildCount() const override
Definition DIAEnumSymbols.cpp:21
static std::unique_ptr< PDBSymbol > create(const IPDBSession &PDBSession, std::unique_ptr< IPDBRawSymbol > RawSymbol)
This is an optimization pass for GlobalISel generic memory operations.
FunctionAddr VTableAddr Count