NativeTypeVTShape.h revision 353358
1218887Sdim//===- NativeTypeVTShape.h - info about virtual table shape ------*- C++-*-===//
2218887Sdim//
3218887Sdim// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4218887Sdim// See https://llvm.org/LICENSE.txt for license information.
5218887Sdim// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6218887Sdim//
7218887Sdim//===----------------------------------------------------------------------===//
8218887Sdim
9218887Sdim#ifndef LLVM_DEBUGINFO_PDB_NATIVE_NATIVETYPEVTSHAPE_H
10218887Sdim#define LLVM_DEBUGINFO_PDB_NATIVE_NATIVETYPEVTSHAPE_H
11218887Sdim
12218887Sdim#include "llvm/ADT/Optional.h"
13218887Sdim#include "llvm/DebugInfo/CodeView/CodeView.h"
14218887Sdim#include "llvm/DebugInfo/CodeView/TypeRecord.h"
15218887Sdim#include "llvm/DebugInfo/PDB/Native/NativeRawSymbol.h"
16218887Sdim#include "llvm/DebugInfo/PDB/Native/NativeSession.h"
17218887Sdim
18226890Sdimnamespace llvm {
19218887Sdimnamespace pdb {
20252723Sdim
21218887Sdimclass NativeTypeVTShape : public NativeRawSymbol {
22218887Sdimpublic:
23218887Sdim  // Create a pointer record for a non-simple type.
24218887Sdim  NativeTypeVTShape(NativeSession &Session, SymIndexId Id,
25218887Sdim                    codeview::TypeIndex TI, codeview::VFTableShapeRecord SR);
26218887Sdim
27218887Sdim  ~NativeTypeVTShape() override;
28218887Sdim
29245431Sdim  void dump(raw_ostream &OS, int Indent, PdbSymbolIdField ShowIdFields,
30218887Sdim            PdbSymbolIdField RecurseIdFields) const override;
31218887Sdim
32218887Sdim  bool isConstType() const override;
33218887Sdim  bool isVolatileType() const override;
34218887Sdim  bool isUnalignedType() const override;
35218887Sdim  uint32_t getCount() const override;
36218887Sdim
37218887Sdimprotected:
38252723Sdim  codeview::TypeIndex TI;
39252723Sdim  codeview::VFTableShapeRecord Record;
40252723Sdim};
41252723Sdim
42252723Sdim} // namespace pdb
43252723Sdim} // namespace llvm
44252723Sdim
45252723Sdim#endif // LLVM_DEBUGINFO_PDB_NATIVE_NATIVETYPEVTSHAPE_H