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