LLVM  15.0.0git
NativeTypeVTShape.cpp
Go to the documentation of this file.
5 
6 using namespace llvm;
7 using namespace llvm::pdb;
8 
9 // Create a pointer record for a non-simple type.
13  : NativeRawSymbol(Session, PDB_SymType::VTableShape, Id), TI(TI),
14  Record(std::move(SR)) {}
15 
17 
18 void NativeTypeVTShape::dump(raw_ostream &OS, int Indent,
19  PdbSymbolIdField ShowIdFields,
20  PdbSymbolIdField RecurseIdFields) const {
21  NativeRawSymbol::dump(OS, Indent, ShowIdFields, RecurseIdFields);
22 
23  dumpSymbolIdField(OS, "lexicalParentId", 0, Indent, Session,
24  PdbSymbolIdField::LexicalParent, ShowIdFields,
25  RecurseIdFields);
26  dumpSymbolField(OS, "count", getCount(), Indent);
27  dumpSymbolField(OS, "constType", isConstType(), Indent);
28  dumpSymbolField(OS, "unalignedType", isUnalignedType(), Indent);
29  dumpSymbolField(OS, "volatileType", isVolatileType(), Indent);
30 }
31 
32 bool NativeTypeVTShape::isConstType() const { return false; }
33 
34 bool NativeTypeVTShape::isVolatileType() const { return false; }
35 
36 bool NativeTypeVTShape::isUnalignedType() const { return false; }
37 
38 uint32_t NativeTypeVTShape::getCount() const { return Record.Slots.size(); }
llvm
This is an optimization pass for GlobalISel generic memory operations.
Definition: AddressRanges.h:17
llvm::codeview::VFTableShapeRecord
Definition: TypeRecord.h:553
llvm::pdb::NativeTypeVTShape::dump
void dump(raw_ostream &OS, int Indent, PdbSymbolIdField ShowIdFields, PdbSymbolIdField RecurseIdFields) const override
Definition: NativeTypeVTShape.cpp:18
llvm::pdb::PDB_SymType
PDB_SymType
These values correspond to the SymTagEnum enumeration, and are documented here: https://msdn....
Definition: PDBTypes.h:243
llvm::pdb::NativeTypeVTShape::isUnalignedType
bool isUnalignedType() const override
Definition: NativeTypeVTShape.cpp:36
llvm::pdb::PdbSymbolIdField::LexicalParent
@ LexicalParent
llvm::raw_ostream
This class implements an extremely fast bulk output stream that can only output to a stream.
Definition: raw_ostream.h:54
llvm::pdb::NativeTypeVTShape::isVolatileType
bool isVolatileType() const override
Definition: NativeTypeVTShape.cpp:34
llvm::pdb::PDB_SymType::VTableShape
@ VTableShape
llvm::pdb
Definition: ConcreteSymbolEnumerator.h:20
llvm::pdb::NativeTypeVTShape::~NativeTypeVTShape
~NativeTypeVTShape() override
llvm::pdb::dumpSymbolField
void dumpSymbolField(raw_ostream &OS, StringRef Name, T Value, int Indent)
Definition: PDBExtras.h:47
llvm::pdb::dumpSymbolIdField
void dumpSymbolIdField(raw_ostream &OS, StringRef Name, SymIndexId Value, int Indent, const IPDBSession &Session, PdbSymbolIdField FieldId, PdbSymbolIdField ShowFlags, PdbSymbolIdField RecurseFlags)
Definition: PDBSymbol.cpp:202
IPDBEnumChildren.h
llvm::move
OutputIt move(R &&Range, OutputIt Out)
Provide wrappers to std::move which take ranges instead of having to pass begin/end explicitly.
Definition: STLExtras.h:1663
llvm::Record
Definition: Record.h:1508
llvm::pdb::NativeTypeVTShape::NativeTypeVTShape
NativeTypeVTShape(NativeSession &Session, SymIndexId Id, codeview::TypeIndex TI, codeview::VFTableShapeRecord SR)
Definition: NativeTypeVTShape.cpp:10
NativeTypeVTShape.h
llvm::pdb::NativeTypeVTShape::isConstType
bool isConstType() const override
Definition: NativeTypeVTShape.cpp:32
llvm::pdb::NativeTypeVTShape::getCount
uint32_t getCount() const override
Definition: NativeTypeVTShape.cpp:38
uint32_t
std
Definition: BitVector.h:851
llvm::pdb::NativeRawSymbol::dump
void dump(raw_ostream &OS, int Indent, PdbSymbolIdField ShowIdFields, PdbSymbolIdField RecurseIdFields) const override
Definition: NativeRawSymbol.cpp:21
llvm::pdb::NativeSession
Definition: NativeSession.h:32
llvm::pdb::PdbSymbolIdField
PdbSymbolIdField
Definition: IPDBRawSymbol.h:24
PDBExtras.h
llvm::codeview::TypeIndex
A 32-bit type reference.
Definition: TypeIndex.h:96
llvm::pdb::NativeRawSymbol::Session
NativeSession & Session
Definition: NativeRawSymbol.h:232
llvm::AMDGPU::VGPRIndexMode::Id
Id
Definition: SIDefines.h:235
llvm::pdb::NativeRawSymbol
Definition: NativeRawSymbol.h:21
NativeSession.h