LLVM: lib/DebugInfo/PDB/Native/NativeSymbolEnumerator.cpp Source File (original) (raw)

1

2

3

4

5

6

7

8

10

14

15using namespace llvm;

18

24

26

33 RecurseIdFields);

36 RecurseIdFields);

46}

47

49 return Parent.getSymIndexId();

50}

51

53

55 return std::string(Record.Name);

56}

57

59 return Parent.getTypeId();

60}

61

65

69

71

73

75

78

79 switch (BT.getBuiltinType()) {

83 assert(Record.Value.isSignedIntN(BT.getLength() * 8));

84 int64_t N = Record.Value.getSExtValue();

85 switch (BT.getLength()) {

86 case 1:

87 return Variant{static_cast<int8_t>(N)};

88 case 2:

89 return Variant{static_cast<int16_t>(N)};

90 case 4:

91 return Variant{static_cast<int32_t>(N)};

92 case 8:

93 return Variant{static_cast<int64_t>(N)};

94 }

95 break;

96 }

101 switch (BT.getLength()) {

102 case 1:

104 case 2:

106 case 4:

108 case 8:

110 }

111 break;

112 }

116 return Variant{static_cast<bool>(U)};

117 }

118 default:

119 assert(false && "Invalid enumeration type");

120 break;

121 }

122

124}

assert(UImm &&(UImm !=~static_cast< T >(0)) &&"Invalid immediate!")

NativeRawSymbol(NativeSession &PDBSession, PDB_SymType Tag, SymIndexId SymbolId)

void dump(raw_ostream &OS, int Indent, PdbSymbolIdField ShowIdFields, PdbSymbolIdField RecurseIdFields) const override

PDB_LocType getLocationType() const override

Definition NativeSymbolEnumerator.cpp:66

bool isVolatileType() const override

Definition NativeSymbolEnumerator.cpp:72

SymIndexId getClassParentId() const override

Definition NativeSymbolEnumerator.cpp:48

const NativeTypeEnum & Parent

bool isUnalignedType() const override

Definition NativeSymbolEnumerator.cpp:74

NativeSymbolEnumerator(NativeSession &Session, SymIndexId Id, const NativeTypeEnum &Parent, codeview::EnumeratorRecord Record)

Definition NativeSymbolEnumerator.cpp:19

std::string getName() const override

Definition NativeSymbolEnumerator.cpp:54

Variant getValue() const override

Definition NativeSymbolEnumerator.cpp:76

SymIndexId getLexicalParentId() const override

Definition NativeSymbolEnumerator.cpp:52

SymIndexId getTypeId() const override

Definition NativeSymbolEnumerator.cpp:58

bool isConstType() const override

Definition NativeSymbolEnumerator.cpp:70

~NativeSymbolEnumerator() override

PDB_DataKind getDataKind() const override

Definition NativeSymbolEnumerator.cpp:62

void dump(raw_ostream &OS, int Indent, PdbSymbolIdField ShowIdFields, PdbSymbolIdField RecurseIdFields) const override

Definition NativeSymbolEnumerator.cpp:27

codeview::EnumeratorRecord Record

This class implements an extremely fast bulk output stream that can only output to a stream.

void dumpSymbolField(raw_ostream &OS, StringRef Name, T Value, int Indent)

PDB_SymType

These values correspond to the SymTagEnum enumeration, and are documented here: https://msdn....

PDB_LocType

These values correspond to the LocationType enumeration, and are documented here: https://msdn....

PDB_DataKind

These values correspond to the DataKind enumeration, and are documented here: https://msdn....

LLVM_ABI void dumpSymbolIdField(raw_ostream &OS, StringRef Name, SymIndexId Value, int Indent, const IPDBSession &Session, PdbSymbolIdField FieldId, PdbSymbolIdField ShowFlags, PdbSymbolIdField RecurseFlags)

This is an optimization pass for GlobalISel generic memory operations.

OutputIt move(R &&Range, OutputIt Out)

Provide wrappers to std::move which take ranges instead of having to pass begin/end explicitly.

Implement std::hash so that hash_code can be used in STL containers.