1 #include "llvm/DebugInfo/PDB/Native/NativeTypeVTShape.h" 2 3 using namespace llvm; 4 using namespace llvm::pdb; 5 6 // Create a pointer record for a non-simple type. 7 NativeTypeVTShape::NativeTypeVTShape(NativeSession &Session, SymIndexId Id, 8 codeview::TypeIndex TI, 9 codeview::VFTableShapeRecord SR) 10 : NativeRawSymbol(Session, PDB_SymType::VTableShape, Id), TI(TI), 11 Record(std::move(SR)) {} 12 13 NativeTypeVTShape::~NativeTypeVTShape() {} 14 15 void NativeTypeVTShape::dump(raw_ostream &OS, int Indent, 16 PdbSymbolIdField ShowIdFields, 17 PdbSymbolIdField RecurseIdFields) const { 18 NativeRawSymbol::dump(OS, Indent, ShowIdFields, RecurseIdFields); 19 20 dumpSymbolIdField(OS, "lexicalParentId", 0, Indent, Session, 21 PdbSymbolIdField::LexicalParent, ShowIdFields, 22 RecurseIdFields); 23 dumpSymbolField(OS, "count", getCount(), Indent); 24 dumpSymbolField(OS, "constType", isConstType(), Indent); 25 dumpSymbolField(OS, "unalignedType", isUnalignedType(), Indent); 26 dumpSymbolField(OS, "volatileType", isVolatileType(), Indent); 27 } 28 29 bool NativeTypeVTShape::isConstType() const { return false; } 30 31 bool NativeTypeVTShape::isVolatileType() const { return false; } 32 33 bool NativeTypeVTShape::isUnalignedType() const { return false; } 34 35 uint32_t NativeTypeVTShape::getCount() const { return Record.Slots.size(); } 36