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.