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;
135 return (
Record->getOptions() & PointerOptions::Const) != PointerOptions::None;
141 return (
Record->getOptions() & PointerOptions::Restrict) !=
142 PointerOptions::None;
148 return (
Record->getOptions() & PointerOptions::Volatile) !=
149 PointerOptions::None;
155 return (
Record->getOptions() & PointerOptions::Unaligned) !=
156 PointerOptions::None;
170 PointerToMemberRepresentation::SingleInheritanceData,
171 PointerToMemberRepresentation::SingleInheritanceFunction);
179 PointerToMemberRepresentation::MultipleInheritanceData,
180 PointerToMemberRepresentation::MultipleInheritanceFunction);
188 PointerToMemberRepresentation::VirtualInheritanceData,
189 PointerToMemberRepresentation::VirtualInheritanceFunction);
static bool isInheritanceKind(const MemberPointerInfo &MPI, PointerToMemberRepresentation P1, PointerToMemberRepresentation P2)
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
Class to represent pointers.
PointerToMemberRepresentation getRepresentation() const
SimpleTypeMode getSimpleMode() const
TypeIndex makeDirect() const
void dump(raw_ostream &OS, int Indent, PdbSymbolIdField ShowIdFields, PdbSymbolIdField RecurseIdFields) const override
SymbolCache & getSymbolCache()
SymIndexId getTypeId() const override
bool isPointerToDataMember() const override
void dump(raw_ostream &OS, int Indent, PdbSymbolIdField ShowIdFields, PdbSymbolIdField RecurseIdFields) const override
bool isPointerToMemberFunction() const override
SymIndexId getClassParentId() const override
~NativeTypePointer() override
bool isReference() const override
bool isVirtualInheritance() const override
bool isConstType() const override
bool isSingleInheritance() const override
bool isMultipleInheritance() const override
bool isMemberPointer() const
bool isRValueReference() const override
NativeTypePointer(NativeSession &Session, SymIndexId Id, codeview::TypeIndex TI)
bool isUnalignedType() const override
bool isVolatileType() const override
uint64_t getLength() const override
bool isRestrictedType() const override
SymIndexId findSymbolByTypeIndex(codeview::TypeIndex TI) const
This class implements an extremely fast bulk output stream that can only output to a stream.
PointerToMemberRepresentation
Equivalent to CV_pmtype_e.
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....
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.