1343171Sdim#include "llvm/DebugInfo/PDB/Native/NativeTypeVTShape.h"
2343171Sdim
3343171Sdimusing namespace llvm;
4343171Sdimusing namespace llvm::pdb;
5343171Sdim
6343171Sdim// Create a pointer record for a non-simple type.
7343171SdimNativeTypeVTShape::NativeTypeVTShape(NativeSession &Session, SymIndexId Id,
8343171Sdim                                     codeview::TypeIndex TI,
9343171Sdim                                     codeview::VFTableShapeRecord SR)
10343171Sdim    : NativeRawSymbol(Session, PDB_SymType::VTableShape, Id), TI(TI),
11343171Sdim      Record(std::move(SR)) {}
12343171Sdim
13343171SdimNativeTypeVTShape::~NativeTypeVTShape() {}
14343171Sdim
15343171Sdimvoid NativeTypeVTShape::dump(raw_ostream &OS, int Indent,
16343171Sdim                             PdbSymbolIdField ShowIdFields,
17343171Sdim                             PdbSymbolIdField RecurseIdFields) const {
18343171Sdim  NativeRawSymbol::dump(OS, Indent, ShowIdFields, RecurseIdFields);
19343171Sdim
20343171Sdim  dumpSymbolIdField(OS, "lexicalParentId", 0, Indent, Session,
21343171Sdim                    PdbSymbolIdField::LexicalParent, ShowIdFields,
22343171Sdim                    RecurseIdFields);
23343171Sdim  dumpSymbolField(OS, "count", getCount(), Indent);
24343171Sdim  dumpSymbolField(OS, "constType", isConstType(), Indent);
25343171Sdim  dumpSymbolField(OS, "unalignedType", isUnalignedType(), Indent);
26343171Sdim  dumpSymbolField(OS, "volatileType", isVolatileType(), Indent);
27343171Sdim}
28343171Sdim
29343171Sdimbool NativeTypeVTShape::isConstType() const { return false; }
30343171Sdim
31343171Sdimbool NativeTypeVTShape::isVolatileType() const { return false; }
32343171Sdim
33343171Sdimbool NativeTypeVTShape::isUnalignedType() const { return false; }
34343171Sdim
35343171Sdimuint32_t NativeTypeVTShape::getCount() const { return Record.Slots.size(); }
36