1 //===- PDBSymDumper.cpp - ---------------------------------------*- 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 #include "llvm/DebugInfo/PDB/PDBSymDumper.h" 11 #include "llvm/Support/ErrorHandling.h" 12 13 using namespace llvm; 14 15 #define PDB_SYMDUMP_UNREACHABLE(Type) \ 16 if (RequireImpl) \ 17 llvm_unreachable("Attempt to dump " #Type " with no dump implementation"); 18 19 PDBSymDumper::PDBSymDumper(bool ShouldRequireImpl) 20 : RequireImpl(ShouldRequireImpl) {} 21 22 PDBSymDumper::~PDBSymDumper() {} 23 24 void PDBSymDumper::dump(const PDBSymbolAnnotation &Symbol, raw_ostream &OS, 25 int Indent) { 26 PDB_SYMDUMP_UNREACHABLE(PDBSymbolAnnotation) 27 } 28 29 void PDBSymDumper::dump(const PDBSymbolBlock &Symbol, raw_ostream &OS, 30 int Indent) { 31 PDB_SYMDUMP_UNREACHABLE(PDBSymbolBlock) 32 } 33 34 void PDBSymDumper::dump(const PDBSymbolCompiland &Symbol, raw_ostream &OS, 35 int Indent) { 36 PDB_SYMDUMP_UNREACHABLE(PDBSymbolCompiland) 37 } 38 39 void PDBSymDumper::dump(const PDBSymbolCompilandDetails &Symbol, 40 raw_ostream &OS, int Indent) { 41 PDB_SYMDUMP_UNREACHABLE(PDBSymbolCompilandDetails) 42 } 43 44 void PDBSymDumper::dump(const PDBSymbolCompilandEnv &Symbol, raw_ostream &OS, 45 int Indent) { 46 PDB_SYMDUMP_UNREACHABLE(PDBSymbolCompilandEnv) 47 } 48 49 void PDBSymDumper::dump(const PDBSymbolCustom &Symbol, raw_ostream &OS, 50 int Indent) { 51 PDB_SYMDUMP_UNREACHABLE(PDBSymbolCustom) 52 } 53 54 void PDBSymDumper::dump(const PDBSymbolData &Symbol, raw_ostream &OS, 55 int Indent) { 56 PDB_SYMDUMP_UNREACHABLE(PDBSymbolData) 57 } 58 59 void PDBSymDumper::dump(const PDBSymbolExe &Symbol, raw_ostream &OS, 60 int Indent) { 61 PDB_SYMDUMP_UNREACHABLE(PDBSymbolExe) 62 } 63 64 void PDBSymDumper::dump(const PDBSymbolFunc &Symbol, raw_ostream &OS, 65 int Indent) { 66 PDB_SYMDUMP_UNREACHABLE(PDBSymbolFunc) 67 } 68 69 void PDBSymDumper::dump(const PDBSymbolFuncDebugEnd &Symbol, raw_ostream &OS, 70 int Indent) { 71 PDB_SYMDUMP_UNREACHABLE(PDBSymbolFuncDebugEnd) 72 } 73 74 void PDBSymDumper::dump(const PDBSymbolFuncDebugStart &Symbol, raw_ostream &OS, 75 int Indent) { 76 PDB_SYMDUMP_UNREACHABLE(PDBSymbolFuncDebugStart) 77 } 78 79 void PDBSymDumper::dump(const PDBSymbolLabel &Symbol, raw_ostream &OS, 80 int Indent) { 81 PDB_SYMDUMP_UNREACHABLE(PDBSymbolLabel) 82 } 83 84 void PDBSymDumper::dump(const PDBSymbolPublicSymbol &Symbol, raw_ostream &OS, 85 int Indent) { 86 PDB_SYMDUMP_UNREACHABLE(PDBSymbolPublicSymbol) 87 } 88 89 void PDBSymDumper::dump(const PDBSymbolThunk &Symbol, raw_ostream &OS, 90 int Indent) { 91 PDB_SYMDUMP_UNREACHABLE(PDBSymbolThunk) 92 } 93 94 void PDBSymDumper::dump(const PDBSymbolTypeArray &Symbol, raw_ostream &OS, 95 int Indent) { 96 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeArray) 97 } 98 99 void PDBSymDumper::dump(const PDBSymbolTypeBaseClass &Symbol, raw_ostream &OS, 100 int Indent) { 101 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeBaseClass) 102 } 103 104 void PDBSymDumper::dump(const PDBSymbolTypeBuiltin &Symbol, raw_ostream &OS, 105 int Indent) { 106 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeBuiltin) 107 } 108 109 void PDBSymDumper::dump(const PDBSymbolTypeCustom &Symbol, raw_ostream &OS, 110 int Indent) { 111 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeCustom) 112 } 113 114 void PDBSymDumper::dump(const PDBSymbolTypeDimension &Symbol, raw_ostream &OS, 115 int Indent) { 116 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeDimension) 117 } 118 119 void PDBSymDumper::dump(const PDBSymbolTypeEnum &Symbol, raw_ostream &OS, 120 int Indent) { 121 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeEnum) 122 } 123 124 void PDBSymDumper::dump(const PDBSymbolTypeFriend &Symbol, raw_ostream &OS, 125 int Indent) { 126 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeFriend) 127 } 128 129 void PDBSymDumper::dump(const PDBSymbolTypeFunctionArg &Symbol, raw_ostream &OS, 130 int Indent) { 131 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeFunctionArg) 132 } 133 134 void PDBSymDumper::dump(const PDBSymbolTypeFunctionSig &Symbol, raw_ostream &OS, 135 int Indent) { 136 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeFunctionSig) 137 } 138 139 void PDBSymDumper::dump(const PDBSymbolTypeManaged &Symbol, raw_ostream &OS, 140 int Indent) { 141 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeManaged) 142 } 143 144 void PDBSymDumper::dump(const PDBSymbolTypePointer &Symbol, raw_ostream &OS, 145 int Indent) { 146 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypePointer) 147 } 148 149 void PDBSymDumper::dump(const PDBSymbolTypeTypedef &Symbol, raw_ostream &OS, 150 int Indent) { 151 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeTypedef) 152 } 153 154 void PDBSymDumper::dump(const PDBSymbolTypeUDT &Symbol, raw_ostream &OS, 155 int Indent) { 156 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeUDT) 157 } 158 159 void PDBSymDumper::dump(const PDBSymbolTypeVTable &Symbol, raw_ostream &OS, 160 int Indent) { 161 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeVTable) 162 } 163 164 void PDBSymDumper::dump(const PDBSymbolTypeVTableShape &Symbol, raw_ostream &OS, 165 int Indent) { 166 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeVTableShape) 167 } 168 169 void PDBSymDumper::dump(const PDBSymbolUnknown &Symbol, raw_ostream &OS, 170 int Indent) { 171 PDB_SYMDUMP_UNREACHABLE(PDBSymbolUnknown) 172 } 173 174 void PDBSymDumper::dump(const PDBSymbolUsingNamespace &Symbol, raw_ostream &OS, 175 int Indent) { 176 PDB_SYMDUMP_UNREACHABLE(PDBSymbolUsingNamespace) 177 } 178