1bd336e44SZachary Turner //===- PrettyFunctionDumper.h --------------------------------- *- C++ --*-===// 2bd336e44SZachary Turner // 3*2946cd70SChandler Carruth // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4*2946cd70SChandler Carruth // See https://llvm.org/LICENSE.txt for license information. 5*2946cd70SChandler Carruth // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6bd336e44SZachary Turner // 7bd336e44SZachary Turner //===----------------------------------------------------------------------===// 8bd336e44SZachary Turner 9bd336e44SZachary Turner #ifndef LLVM_TOOLS_LLVMPDBDUMP_PRETTYFUNCTIONDUMPER_H 10bd336e44SZachary Turner #define LLVM_TOOLS_LLVMPDBDUMP_PRETTYFUNCTIONDUMPER_H 11bd336e44SZachary Turner 12bd336e44SZachary Turner #include "llvm/DebugInfo/PDB/PDBSymDumper.h" 13bd336e44SZachary Turner 14bd336e44SZachary Turner namespace llvm { 15bd336e44SZachary Turner namespace pdb { 16bd336e44SZachary Turner class LinePrinter; 17bd336e44SZachary Turner 18bd336e44SZachary Turner class FunctionDumper : public PDBSymDumper { 19bd336e44SZachary Turner public: 20bd336e44SZachary Turner FunctionDumper(LinePrinter &P); 21bd336e44SZachary Turner 22bd336e44SZachary Turner enum class PointerType { None, Pointer, Reference }; 23bd336e44SZachary Turner 24bd336e44SZachary Turner void start(const PDBSymbolTypeFunctionSig &Symbol, const char *Name, 25bd336e44SZachary Turner PointerType Pointer); 26bd336e44SZachary Turner void start(const PDBSymbolFunc &Symbol, PointerType Pointer); 27bd336e44SZachary Turner 28bd336e44SZachary Turner void dump(const PDBSymbolTypeArray &Symbol) override; 29bd336e44SZachary Turner void dump(const PDBSymbolTypeBuiltin &Symbol) override; 30bd336e44SZachary Turner void dump(const PDBSymbolTypeEnum &Symbol) override; 31bd336e44SZachary Turner void dump(const PDBSymbolTypeFunctionArg &Symbol) override; 32bd336e44SZachary Turner void dump(const PDBSymbolTypePointer &Symbol) override; 33bd336e44SZachary Turner void dump(const PDBSymbolTypeTypedef &Symbol) override; 34bd336e44SZachary Turner void dump(const PDBSymbolTypeUDT &Symbol) override; 35bd336e44SZachary Turner 36bd336e44SZachary Turner private: 37bd336e44SZachary Turner LinePrinter &Printer; 38bd336e44SZachary Turner }; 39bd336e44SZachary Turner } 40bd336e44SZachary Turner } 41bd336e44SZachary Turner 42bd336e44SZachary Turner #endif 43