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