1 //===- PDBSymDumper.cpp - ---------------------------------------*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 #include "llvm/DebugInfo/PDB/PDBSymDumper.h"
11 #include "llvm/Support/ErrorHandling.h"
15 #define PDB_SYMDUMP_UNREACHABLE(Type) \
17 llvm_unreachable("Attempt to dump " #Type " with no dump implementation");
19 PDBSymDumper::PDBSymDumper(bool ShouldRequireImpl)
20 : RequireImpl(ShouldRequireImpl) {}
22 PDBSymDumper::~PDBSymDumper() {}
24 void PDBSymDumper::dump(const PDBSymbolAnnotation &Symbol, raw_ostream &OS,
26 PDB_SYMDUMP_UNREACHABLE(PDBSymbolAnnotation)
29 void PDBSymDumper::dump(const PDBSymbolBlock &Symbol, raw_ostream &OS,
31 PDB_SYMDUMP_UNREACHABLE(PDBSymbolBlock)
34 void PDBSymDumper::dump(const PDBSymbolCompiland &Symbol, raw_ostream &OS,
36 PDB_SYMDUMP_UNREACHABLE(PDBSymbolCompiland)
39 void PDBSymDumper::dump(const PDBSymbolCompilandDetails &Symbol,
40 raw_ostream &OS, int Indent) {
41 PDB_SYMDUMP_UNREACHABLE(PDBSymbolCompilandDetails)
44 void PDBSymDumper::dump(const PDBSymbolCompilandEnv &Symbol, raw_ostream &OS,
46 PDB_SYMDUMP_UNREACHABLE(PDBSymbolCompilandEnv)
49 void PDBSymDumper::dump(const PDBSymbolCustom &Symbol, raw_ostream &OS,
51 PDB_SYMDUMP_UNREACHABLE(PDBSymbolCustom)
54 void PDBSymDumper::dump(const PDBSymbolData &Symbol, raw_ostream &OS,
56 PDB_SYMDUMP_UNREACHABLE(PDBSymbolData)
59 void PDBSymDumper::dump(const PDBSymbolExe &Symbol, raw_ostream &OS,
61 PDB_SYMDUMP_UNREACHABLE(PDBSymbolExe)
64 void PDBSymDumper::dump(const PDBSymbolFunc &Symbol, raw_ostream &OS,
66 PDB_SYMDUMP_UNREACHABLE(PDBSymbolFunc)
69 void PDBSymDumper::dump(const PDBSymbolFuncDebugEnd &Symbol, raw_ostream &OS,
71 PDB_SYMDUMP_UNREACHABLE(PDBSymbolFuncDebugEnd)
74 void PDBSymDumper::dump(const PDBSymbolFuncDebugStart &Symbol, raw_ostream &OS,
76 PDB_SYMDUMP_UNREACHABLE(PDBSymbolFuncDebugStart)
79 void PDBSymDumper::dump(const PDBSymbolLabel &Symbol, raw_ostream &OS,
81 PDB_SYMDUMP_UNREACHABLE(PDBSymbolLabel)
84 void PDBSymDumper::dump(const PDBSymbolPublicSymbol &Symbol, raw_ostream &OS,
86 PDB_SYMDUMP_UNREACHABLE(PDBSymbolPublicSymbol)
89 void PDBSymDumper::dump(const PDBSymbolThunk &Symbol, raw_ostream &OS,
91 PDB_SYMDUMP_UNREACHABLE(PDBSymbolThunk)
94 void PDBSymDumper::dump(const PDBSymbolTypeArray &Symbol, raw_ostream &OS,
96 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeArray)
99 void PDBSymDumper::dump(const PDBSymbolTypeBaseClass &Symbol, raw_ostream &OS,
101 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeBaseClass)
104 void PDBSymDumper::dump(const PDBSymbolTypeBuiltin &Symbol, raw_ostream &OS,
106 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeBuiltin)
109 void PDBSymDumper::dump(const PDBSymbolTypeCustom &Symbol, raw_ostream &OS,
111 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeCustom)
114 void PDBSymDumper::dump(const PDBSymbolTypeDimension &Symbol, raw_ostream &OS,
116 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeDimension)
119 void PDBSymDumper::dump(const PDBSymbolTypeEnum &Symbol, raw_ostream &OS,
121 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeEnum)
124 void PDBSymDumper::dump(const PDBSymbolTypeFriend &Symbol, raw_ostream &OS,
126 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeFriend)
129 void PDBSymDumper::dump(const PDBSymbolTypeFunctionArg &Symbol, raw_ostream &OS,
131 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeFunctionArg)
134 void PDBSymDumper::dump(const PDBSymbolTypeFunctionSig &Symbol, raw_ostream &OS,
136 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeFunctionSig)
139 void PDBSymDumper::dump(const PDBSymbolTypeManaged &Symbol, raw_ostream &OS,
141 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeManaged)
144 void PDBSymDumper::dump(const PDBSymbolTypePointer &Symbol, raw_ostream &OS,
146 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypePointer)
149 void PDBSymDumper::dump(const PDBSymbolTypeTypedef &Symbol, raw_ostream &OS,
151 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeTypedef)
154 void PDBSymDumper::dump(const PDBSymbolTypeUDT &Symbol, raw_ostream &OS,
156 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeUDT)
159 void PDBSymDumper::dump(const PDBSymbolTypeVTable &Symbol, raw_ostream &OS,
161 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeVTable)
164 void PDBSymDumper::dump(const PDBSymbolTypeVTableShape &Symbol, raw_ostream &OS,
166 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeVTableShape)
169 void PDBSymDumper::dump(const PDBSymbolUnknown &Symbol, raw_ostream &OS,
171 PDB_SYMDUMP_UNREACHABLE(PDBSymbolUnknown)
174 void PDBSymDumper::dump(const PDBSymbolUsingNamespace &Symbol, raw_ostream &OS,
176 PDB_SYMDUMP_UNREACHABLE(PDBSymbolUsingNamespace)