NativeTypeVTShape.h revision 343210
111740Sptbrunet//===- NativeTypeVTShape.h - info about virtual table shape ------*- C++-*-===// 211740Sptbrunet// 311740Sptbrunet// The LLVM Compiler Infrastructure 411740Sptbrunet// 511740Sptbrunet// This file is distributed under the University of Illinois Open Source 611740Sptbrunet// License. See LICENSE.TXT for details. 711740Sptbrunet// 811740Sptbrunet//===----------------------------------------------------------------------===// 911740Sptbrunet 1011740Sptbrunet#ifndef LLVM_DEBUGINFO_PDB_NATIVE_NATIVETYPEVTSHAPE_H 1111740Sptbrunet#define LLVM_DEBUGINFO_PDB_NATIVE_NATIVETYPEVTSHAPE_H 1211740Sptbrunet 1311740Sptbrunet#include "llvm/ADT/Optional.h" 1411740Sptbrunet#include "llvm/DebugInfo/CodeView/CodeView.h" 1511740Sptbrunet#include "llvm/DebugInfo/CodeView/TypeRecord.h" 1611740Sptbrunet#include "llvm/DebugInfo/PDB/Native/NativeRawSymbol.h" 1711740Sptbrunet#include "llvm/DebugInfo/PDB/Native/NativeSession.h" 1811740Sptbrunet 1911740Sptbrunetnamespace llvm { 2011740Sptbrunetnamespace pdb { 2111740Sptbrunet 2211740Sptbrunetclass NativeTypeVTShape : public NativeRawSymbol { 2311740Sptbrunetpublic: 2411740Sptbrunet // Create a pointer record for a non-simple type. 2511740Sptbrunet NativeTypeVTShape(NativeSession &Session, SymIndexId Id, 2611740Sptbrunet codeview::TypeIndex TI, codeview::VFTableShapeRecord SR); 2711740Sptbrunet 2811740Sptbrunet ~NativeTypeVTShape() override; 2911740Sptbrunet 3011740Sptbrunet void dump(raw_ostream &OS, int Indent, PdbSymbolIdField ShowIdFields, 3111740Sptbrunet PdbSymbolIdField RecurseIdFields) const override; 3211740Sptbrunet 3311740Sptbrunet bool isConstType() const override; 3411740Sptbrunet bool isVolatileType() const override; 3511740Sptbrunet bool isUnalignedType() const override; 3611740Sptbrunet uint32_t getCount() const override; 3711740Sptbrunet 3811740Sptbrunetprotected: 3911740Sptbrunet codeview::TypeIndex TI; 4011740Sptbrunet codeview::VFTableShapeRecord Record; 4111740Sptbrunet}; 4211740Sptbrunet 4311740Sptbrunet} // namespace pdb 4411740Sptbrunet} // namespace llvm 4511740Sptbrunet 4611740Sptbrunet#endif // LLVM_DEBUGINFO_PDB_NATIVE_NATIVETYPEVTSHAPE_H