31 Record(
std::move(Record)) {}
84 case SimpleTypeMode::NearPointer:
85 case SimpleTypeMode::FarPointer:
86 case SimpleTypeMode::HugePointer:
88 case SimpleTypeMode::NearPointer32:
89 case SimpleTypeMode::FarPointer32:
91 case SimpleTypeMode::NearPointer64:
93 case SimpleTypeMode::NearPointer128:
96 assert(
false &&
"invalid simple type mode!");
111 return Record->getMode() == PointerMode::LValueReference;
117 return Record->getMode() == PointerMode::RValueReference;
123 return Record->getMode() == PointerMode::PointerToDataMember;
129 return Record->getMode() == PointerMode::PointerToMemberFunction;
141 return (
Record->getOptions() & PointerOptions::Restrict) !=
148 return (
Record->getOptions() & PointerOptions::Volatile) !=
155 return (
Record->getOptions() & PointerOptions::Unaligned) !=
170 PointerToMemberRepresentation::SingleInheritanceData,
171 PointerToMemberRepresentation::SingleInheritanceFunction);
179 PointerToMemberRepresentation::MultipleInheritanceData,
180 PointerToMemberRepresentation::MultipleInheritanceFunction);
188 PointerToMemberRepresentation::VirtualInheritanceData,
189 PointerToMemberRepresentation::VirtualInheritanceFunction);
NativeTypePointer(NativeSession &Session, SymIndexId Id, codeview::TypeIndex TI)
uint64_t getLength() const override
TypeIndex makeDirect() const
bool isUnalignedType() const override
This class represents lattice values for constants.
void dump(raw_ostream &OS, int Indent, PdbSymbolIdField ShowIdFields, PdbSymbolIdField RecurseIdFields) const override
SimpleTypeMode getSimpleMode() const
SymIndexId getTypeId() const override
bool isMemberPointer() const
~NativeTypePointer() override
Class to represent pointers.
PDB_SymType
These values correspond to the SymTagEnum enumeration, and are documented here: https://msdn.microsoft.com/en-us/library/bkedss5f.aspx.
PointerToMemberRepresentation getRepresentation() const
void dumpSymbolField(raw_ostream &OS, StringRef Name, T Value, int Indent)
void dumpSymbolIdField(raw_ostream &OS, StringRef Name, SymIndexId Value, int Indent, const IPDBSession &Session, PdbSymbolIdField FieldId, PdbSymbolIdField ShowFlags, PdbSymbolIdField RecurseFlags)
bool isMultipleInheritance() const override
bool isRestrictedType() const override
SymIndexId getClassParentId() const override
bool isVirtualInheritance() const override
bool isReference() const override
bool isRValueReference() const override
SymIndexId findSymbolByTypeIndex(codeview::TypeIndex TI)
static bool isInheritanceKind(const MemberPointerInfo &MPI, PointerToMemberRepresentation P1, PointerToMemberRepresentation P2)
SymbolCache & getSymbolCache()
PointerToMemberRepresentation
Equivalent to CV_pmtype_e.
bool isConstType() const override
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
bool isVolatileType() const override
bool isSingleInheritance() const override
bool isPointerToDataMember() const override
This class implements an extremely fast bulk output stream that can only output to a stream...
bool isPointerToMemberFunction() const override
void dump(raw_ostream &OS, int Indent, PdbSymbolIdField ShowIdFields, PdbSymbolIdField RecurseIdFields) const override