23 Class(
std::move(CR)), Tag(Class.getPointer()) {}
34 UnmodifiedType(&UnmodifiedType),
Modifiers(
std::move(Modifier)) {}
105 return Class->getSize();
107 return Union->getSize();
132 return (
Tag->
Options & ClassOptions::HasConstructorOrDestructor) !=
139 return (
Modifiers->Modifiers & ModifierOptions::Const) !=
147 return (
Tag->
Options & ClassOptions::HasOverloadedAssignmentOperator) !=
155 return (
Tag->
Options & ClassOptions::HasConversionOperator) !=
163 return (
Tag->
Options & ClassOptions::ContainsNestedClass) !=
171 return (
Tag->
Options & ClassOptions::HasOverloadedOperator) !=
212 return (
Modifiers->Modifiers & ModifierOptions::Unaligned) !=
219 return (
Modifiers->Modifiers & ModifierOptions::Volatile) !=
This class represents lattice values for constants.
bool isVolatileType() const override
bool isInterfaceUdt() const override
PDB_UdtType
These values correspond to the UdtKind enumeration, and are documented here: https://msdn.microsoft.com/en-us/library/wcstk66t.aspx.
SymIndexId getVirtualTableShapeId() const override
void dump(raw_ostream &OS, int Indent, PdbSymbolIdField ShowIdFields, PdbSymbolIdField RecurseIdFields) const override
void dump(raw_ostream &OS, int Indent, PdbSymbolIdField ShowIdFields, PdbSymbolIdField RecurseIdFields) const override
codeview::TypeIndex Index
StringRef getName() const
SymIndexId getLexicalParentId() const override
Optional< codeview::ClassRecord > Class
bool hasNestedTypes() const override
bool isConstType() const override
codeview::TagRecord * Tag
~NativeTypeUDT() override
SymIndexId getUnmodifiedTypeId() const override
bool isUnalignedType() const override
bool isScoped() const override
PDB_SymType
These values correspond to the SymTagEnum enumeration, and are documented here: https://msdn.microsoft.com/en-us/library/bkedss5f.aspx.
bool isRefUdt() const override
SymIndexId getSymIndexId() const override
bool isIntrinsic() const override
bool hasOverloadedOperator() const override
std::string getName() const override
void dumpSymbolField(raw_ostream &OS, StringRef Name, T Value, int Indent)
bool hasConstructor() const override
bool isPacked() const override
void dumpSymbolIdField(raw_ostream &OS, StringRef Name, SymIndexId Value, int Indent, const IPDBSession &Session, PdbSymbolIdField FieldId, PdbSymbolIdField ShowFlags, PdbSymbolIdField RecurseFlags)
Optional< codeview::UnionRecord > Union
bool isValueUdt() const override
#define llvm_unreachable(msg)
Marks that the current location is not supposed to be reachable.
bool hasCastOperator() const override
PDB_UdtType getUdtKind() const override
NativeTypeUDT(NativeSession &Session, SymIndexId Id, codeview::TypeIndex TI, codeview::ClassRecord Class)
bool isNested() const override
SymIndexId findSymbolByTypeIndex(codeview::TypeIndex TI)
uint64_t getLength() const override
NativeTypeUDT * UnmodifiedType
SymbolCache & getSymbolCache()
This class implements an extremely fast bulk output stream that can only output to a stream...
Optional< codeview::ModifierRecord > Modifiers
bool hasAssignmentOperator() const override