reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced
    1
    2
    3
    4
    5
    6
    7
    8
    9
   10
   11
   12
   13
   14
   15
   16
   17
   18
   19
   20
   21
   22
   23
   24
   25
   26
   27
   28
   29
   30
   31
   32
   33
   34
   35
#include "llvm/DebugInfo/PDB/Native/NativeTypeVTShape.h"

using namespace llvm;
using namespace llvm::pdb;

// Create a pointer record for a non-simple type.
NativeTypeVTShape::NativeTypeVTShape(NativeSession &Session, SymIndexId Id,
                                     codeview::TypeIndex TI,
                                     codeview::VFTableShapeRecord SR)
    : NativeRawSymbol(Session, PDB_SymType::VTableShape, Id), TI(TI),
      Record(std::move(SR)) {}

NativeTypeVTShape::~NativeTypeVTShape() {}

void NativeTypeVTShape::dump(raw_ostream &OS, int Indent,
                             PdbSymbolIdField ShowIdFields,
                             PdbSymbolIdField RecurseIdFields) const {
  NativeRawSymbol::dump(OS, Indent, ShowIdFields, RecurseIdFields);

  dumpSymbolIdField(OS, "lexicalParentId", 0, Indent, Session,
                    PdbSymbolIdField::LexicalParent, ShowIdFields,
                    RecurseIdFields);
  dumpSymbolField(OS, "count", getCount(), Indent);
  dumpSymbolField(OS, "constType", isConstType(), Indent);
  dumpSymbolField(OS, "unalignedType", isUnalignedType(), Indent);
  dumpSymbolField(OS, "volatileType", isVolatileType(), Indent);
}

bool NativeTypeVTShape::isConstType() const { return false; }

bool NativeTypeVTShape::isVolatileType() const { return false; }

bool NativeTypeVTShape::isUnalignedType() const { return false; }

uint32_t NativeTypeVTShape::getCount() const { return Record.Slots.size(); }