File indexing completed on 2026-05-10 08:43:45
0001
0002
0003
0004
0005
0006
0007
0008
0009 #ifndef LLVM_DEBUGINFO_PDB_NATIVE_NATIVETYPEPOINTER_H
0010 #define LLVM_DEBUGINFO_PDB_NATIVE_NATIVETYPEPOINTER_H
0011
0012 #include "llvm/DebugInfo/CodeView/TypeIndex.h"
0013 #include "llvm/DebugInfo/CodeView/TypeRecord.h"
0014 #include "llvm/DebugInfo/PDB/IPDBRawSymbol.h"
0015 #include "llvm/DebugInfo/PDB/Native/NativeRawSymbol.h"
0016 #include "llvm/DebugInfo/PDB/PDBTypes.h"
0017
0018 namespace llvm {
0019 namespace pdb {
0020
0021 class NativeTypePointer : public NativeRawSymbol {
0022 public:
0023
0024 NativeTypePointer(NativeSession &Session, SymIndexId Id,
0025 codeview::TypeIndex TI);
0026
0027
0028 NativeTypePointer(NativeSession &Session, SymIndexId Id,
0029 codeview::TypeIndex TI, codeview::PointerRecord PR);
0030 ~NativeTypePointer() override;
0031
0032 void dump(raw_ostream &OS, int Indent, PdbSymbolIdField ShowIdFields,
0033 PdbSymbolIdField RecurseIdFields) const override;
0034
0035 SymIndexId getClassParentId() const override;
0036 bool isConstType() const override;
0037 uint64_t getLength() const override;
0038 bool isReference() const override;
0039 bool isRValueReference() const override;
0040 bool isPointerToDataMember() const override;
0041 bool isPointerToMemberFunction() const override;
0042 SymIndexId getTypeId() const override;
0043 bool isRestrictedType() const override;
0044 bool isVolatileType() const override;
0045 bool isUnalignedType() const override;
0046
0047 bool isSingleInheritance() const override;
0048 bool isMultipleInheritance() const override;
0049 bool isVirtualInheritance() const override;
0050
0051 protected:
0052 bool isMemberPointer() const;
0053 codeview::TypeIndex TI;
0054 std::optional<codeview::PointerRecord> Record;
0055 };
0056
0057 }
0058 }
0059
0060 #endif