1//===- PrettyTypeDumper.h - PDBSymDumper implementation for types *- C++ *-===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8
9#ifndef LLVM_TOOLS_LLVMPDBDUMP_PRETTYTYPEDUMPER_H
10#define LLVM_TOOLS_LLVMPDBDUMP_PRETTYTYPEDUMPER_H
11
12#include "llvm/DebugInfo/PDB/PDBSymDumper.h"
13
14namespace llvm {
15namespace pdb {
16class LinePrinter;
17class ClassLayout;
18
19class TypeDumper : public PDBSymDumper {
20public:
21 TypeDumper(LinePrinter &P);
22
23 void start(const PDBSymbolExe &Exe);
24
25 void dump(const PDBSymbolTypeEnum &Symbol) override;
26 void dump(const PDBSymbolTypeTypedef &Symbol) override;
27 void dump(const PDBSymbolTypeFunctionSig &Symbol) override;
28 void dump(const PDBSymbolTypeArray &Symbol) override;
29 void dump(const PDBSymbolTypeBuiltin &Symbol) override;
30 void dump(const PDBSymbolTypePointer &Symbol) override;
31 void dump(const PDBSymbolTypeVTableShape &Symbol) override;
32 void dump(const PDBSymbolTypeUDT &Symbol) override;
33
34 void dumpClassLayout(const ClassLayout &Class);
35
36private:
37 LinePrinter &Printer;
38};
39}
40}
41#endif
42

source code of llvm/tools/llvm-pdbutil/PrettyTypeDumper.h