NativeTypeVTShape.h revision 343171
1132718Skan//===- NativeTypeVTShape.h - info about virtual table shape ------*- C++-*-===// 2169689Skan// 3132718Skan// The LLVM Compiler Infrastructure 4132718Skan// 5132718Skan// This file is distributed under the University of Illinois Open Source 6132718Skan// License. See LICENSE.TXT for details. 7132718Skan// 8132718Skan//===----------------------------------------------------------------------===// 9132718Skan 10132718Skan#ifndef LLVM_DEBUGINFO_PDB_NATIVE_NATIVETYPEVTSHAPE_H 11132718Skan#define LLVM_DEBUGINFO_PDB_NATIVE_NATIVETYPEVTSHAPE_H 12132718Skan 13132718Skan#include "llvm/ADT/Optional.h" 14132718Skan#include "llvm/DebugInfo/CodeView/CodeView.h" 15132718Skan#include "llvm/DebugInfo/CodeView/TypeRecord.h" 16132718Skan#include "llvm/DebugInfo/PDB/Native/NativeRawSymbol.h" 17132718Skan#include "llvm/DebugInfo/PDB/Native/NativeSession.h" 18169689Skan 19169689Skannamespace llvm { 20132718Skannamespace pdb { 21132718Skan 22132718Skanclass NativeTypeVTShape : public NativeRawSymbol { 23132718Skanpublic: 24132718Skan // Create a pointer record for a non-simple type. 25132718Skan NativeTypeVTShape(NativeSession &Session, SymIndexId Id, 26132718Skan codeview::TypeIndex TI, codeview::VFTableShapeRecord SR); 27169689Skan 28132718Skan ~NativeTypeVTShape() override; 29132718Skan 30132718Skan void dump(raw_ostream &OS, int Indent, PdbSymbolIdField ShowIdFields, 31132718Skan PdbSymbolIdField RecurseIdFields) const override; 32132718Skan 33169689Skan bool isConstType() const override; 34132718Skan bool isVolatileType() const override; 35132718Skan bool isUnalignedType() const override; 36169689Skan uint32_t getCount() const override; 37132718Skan 38132718Skanprotected: 39132718Skan codeview::TypeIndex TI; 40132718Skan codeview::VFTableShapeRecord Record; 41132718Skan}; 42132718Skan 43132718Skan} // namespace pdb 44132718Skan} // namespace llvm 45132718Skan 46132718Skan#endif // LLVM_DEBUGINFO_PDB_NATIVE_NATIVETYPEVTSHAPE_H