LLVM: lib/DebugInfo/PDB/Native/NativeTypePointer.cpp Source File (original) (raw)
1
2
3
4
5
6
7
8
11
13
14#include
15
16using namespace llvm;
19
26
32
34
39
43 RecurseIdFields);
44 }
47 RecurseIdFields);
54 Indent);
65 }
68}
69
78
81 return Record->getSize();
82
83 switch (TI.getSimpleMode()) {
87 return 2;
90 return 4;
92 return 8;
94 return 16;
95 default:
96 assert(false && "invalid simple type mode!");
97 }
98 return 0;
99}
100
102
104
105 return Session.getSymbolCache().findSymbolByTypeIndex(Referent);
106}
107
113
119
125
131
137
144
151
158
164
167 return false;
169 Record->getMemberInfo(),
172}
173
176 return false;
178 Record->getMemberInfo(),
181}
182
185 return false;
187 Record->getMemberInfo(),
190}
191
assert(UImm &&(UImm !=~static_cast< T >(0)) &&"Invalid immediate!")
static bool isInheritanceKind(const MemberPointerInfo &MPI, PointerToMemberRepresentation P1, PointerToMemberRepresentation P2)
Definition NativeTypePointer.cpp:159
PointerToMemberRepresentation getRepresentation() const
NativeRawSymbol(NativeSession &PDBSession, PDB_SymType Tag, SymIndexId SymbolId)
void dump(raw_ostream &OS, int Indent, PdbSymbolIdField ShowIdFields, PdbSymbolIdField RecurseIdFields) const override
SymIndexId getTypeId() const override
Definition NativeTypePointer.cpp:101
bool isPointerToDataMember() const override
Definition NativeTypePointer.cpp:120
void dump(raw_ostream &OS, int Indent, PdbSymbolIdField ShowIdFields, PdbSymbolIdField RecurseIdFields) const override
Definition NativeTypePointer.cpp:35
bool isPointerToMemberFunction() const override
Definition NativeTypePointer.cpp:126
SymIndexId getClassParentId() const override
Definition NativeTypePointer.cpp:70
~NativeTypePointer() override
bool isReference() const override
Definition NativeTypePointer.cpp:108
bool isVirtualInheritance() const override
Definition NativeTypePointer.cpp:183
bool isConstType() const override
Definition NativeTypePointer.cpp:132
bool isSingleInheritance() const override
Definition NativeTypePointer.cpp:165
bool isMultipleInheritance() const override
Definition NativeTypePointer.cpp:174
bool isMemberPointer() const
Definition NativeTypePointer.cpp:192
bool isRValueReference() const override
Definition NativeTypePointer.cpp:114
NativeTypePointer(NativeSession &Session, SymIndexId Id, codeview::TypeIndex TI)
Definition NativeTypePointer.cpp:20
bool isUnalignedType() const override
Definition NativeTypePointer.cpp:152
bool isVolatileType() const override
Definition NativeTypePointer.cpp:145
uint64_t getLength() const override
Definition NativeTypePointer.cpp:79
std::optional< codeview::PointerRecord > Record
bool isRestrictedType() const override
Definition NativeTypePointer.cpp:138
This class implements an extremely fast bulk output stream that can only output to a stream.
@ PointerToMemberFunction
PointerToMemberRepresentation
Equivalent to CV_pmtype_e.
@ MultipleInheritanceData
@ SingleInheritanceFunction
@ VirtualInheritanceFunction
@ MultipleInheritanceFunction
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....
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.