LLVM: lib/DebugInfo/PDB/Native/NativeTypeUDT.cpp Source File (original) (raw)
1
2
3
4
5
6
7
8
14
15using namespace llvm;
18
23
28
34
36
40
42
46 RecurseIdFields);
50 RecurseIdFields);
53 Indent);
71}
72
76
77 return std::string(Tag->getName());
78}
79
81
88
92
94 return Session.getSymbolCache().findSymbolByTypeIndex(Class->VTableShape);
95
96 return 0;
97}
98
102
104 return Class->getSize();
105
106 return Union->getSize();
107}
108
112
113 switch (Tag->Kind) {
114 case TypeRecordKind::Class:
116 case TypeRecordKind::Union:
118 case TypeRecordKind::Struct:
120 case TypeRecordKind::Interface:
122 default:
124 }
125}
126
134
141
149
157
165
173
175
182
189
196
198
205
207
214
NativeRawSymbol(NativeSession &PDBSession, PDB_SymType Tag, SymIndexId SymbolId)
void dump(raw_ostream &OS, int Indent, PdbSymbolIdField ShowIdFields, PdbSymbolIdField RecurseIdFields) const override
PDB_UdtType getUdtKind() const override
Definition NativeTypeUDT.cpp:109
SymIndexId getVirtualTableShapeId() const override
Definition NativeTypeUDT.cpp:89
bool hasNestedTypes() const override
Definition NativeTypeUDT.cpp:158
bool isPacked() const override
Definition NativeTypeUDT.cpp:190
bool isRefUdt() const override
Definition NativeTypeUDT.cpp:197
bool isUnalignedType() const override
Definition NativeTypeUDT.cpp:208
uint64_t getLength() const override
Definition NativeTypeUDT.cpp:99
bool isVolatileType() const override
Definition NativeTypeUDT.cpp:215
bool isValueUdt() const override
Definition NativeTypeUDT.cpp:206
void dump(raw_ostream &OS, int Indent, PdbSymbolIdField ShowIdFields, PdbSymbolIdField RecurseIdFields) const override
Definition NativeTypeUDT.cpp:37
bool isScoped() const override
Definition NativeTypeUDT.cpp:199
NativeTypeUDT * UnmodifiedType
~NativeTypeUDT() override
SymIndexId getUnmodifiedTypeId() const override
Definition NativeTypeUDT.cpp:82
NativeTypeUDT(NativeSession &Session, SymIndexId Id, codeview::TypeIndex TI, codeview::ClassRecord Class)
Definition NativeTypeUDT.cpp:19
SymIndexId getLexicalParentId() const override
Definition NativeTypeUDT.cpp:80
std::optional< codeview::UnionRecord > Union
std::optional< codeview::ClassRecord > Class
bool hasAssignmentOperator() const override
Definition NativeTypeUDT.cpp:142
bool hasCastOperator() const override
Definition NativeTypeUDT.cpp:150
std::optional< codeview::ModifierRecord > Modifiers
codeview::TagRecord * Tag
bool hasConstructor() const override
Definition NativeTypeUDT.cpp:127
std::string getName() const override
Definition NativeTypeUDT.cpp:73
codeview::TypeIndex Index
bool isConstType() const override
Definition NativeTypeUDT.cpp:135
bool hasOverloadedOperator() const override
Definition NativeTypeUDT.cpp:166
bool isNested() const override
Definition NativeTypeUDT.cpp:183
bool isIntrinsic() const override
Definition NativeTypeUDT.cpp:176
bool isInterfaceUdt() const override
Definition NativeTypeUDT.cpp:174
This class implements an extremely fast bulk output stream that can only output to a stream.
#define llvm_unreachable(msg)
Marks that the current location is not supposed to be reachable.
@ HasConstructorOrDestructor
@ HasOverloadedAssignmentOperator
void dumpSymbolField(raw_ostream &OS, StringRef Name, T Value, int Indent)
PDB_UdtType
These values correspond to the UdtKind enumeration, and are documented here: https://msdn....
PDB_SymType
These values correspond to the SymTagEnum 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.