1 //===- PrettyClassDefinitionDumper.h ----------------------------*- C++ -*-===// 2 // 3 // The LLVM Compiler Infrastructure 4 // 5 // This file is distributed under the University of Illinois Open Source 6 // License. See LICENSE.TXT for details. 7 // 8 //===----------------------------------------------------------------------===// 9 10 #ifndef LLVM_TOOLS_LLVMPDBDUMP_PRETTYCLASSDEFINITIONDUMPER_H 11 #define LLVM_TOOLS_LLVMPDBDUMP_PRETTYCLASSDEFINITIONDUMPER_H 12 13 #include "llvm/ADT/BitVector.h" 14 15 #include "llvm/DebugInfo/PDB/PDBSymDumper.h" 16 #include "llvm/DebugInfo/PDB/PDBSymbolData.h" 17 #include "llvm/DebugInfo/PDB/PDBSymbolFunc.h" 18 19 #include <list> 20 #include <memory> 21 #include <unordered_map> 22 23 namespace llvm { 24 class BitVector; 25 26 namespace pdb { 27 28 class ClassLayout; 29 class LinePrinter; 30 31 class ClassDefinitionDumper : public PDBSymDumper { 32 public: 33 ClassDefinitionDumper(LinePrinter &P); 34 35 void start(const PDBSymbolTypeUDT &Class); 36 void start(const ClassLayout &Class); 37 38 private: 39 void prettyPrintClassIntro(const ClassLayout &Class); 40 void prettyPrintClassOutro(const ClassLayout &Class); 41 42 LinePrinter &Printer; 43 bool DumpedAnything = false; 44 }; 45 } 46 } 47 #endif 48