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 using namespace llvm::pdb; 15 16 #define PDB_SYMDUMP_UNREACHABLE(Type) \ 17 if (RequireImpl) \ 18 llvm_unreachable("Attempt to dump " #Type " with no dump implementation"); 19 20 PDBSymDumper::PDBSymDumper(bool ShouldRequireImpl) 21 : RequireImpl(ShouldRequireImpl) {} 22 23 PDBSymDumper::~PDBSymDumper() {} 24 25 void PDBSymDumper::dump(const PDBSymbolAnnotation &Symbol) { 26 PDB_SYMDUMP_UNREACHABLE(PDBSymbolAnnotation) 27 } 28 29 void PDBSymDumper::dump(const PDBSymbolBlock &Symbol) { 30 PDB_SYMDUMP_UNREACHABLE(PDBSymbolBlock) 31 } 32 33 void PDBSymDumper::dump(const PDBSymbolCompiland &Symbol) { 34 PDB_SYMDUMP_UNREACHABLE(PDBSymbolCompiland) 35 } 36 37 void PDBSymDumper::dump(const PDBSymbolCompilandDetails &Symbol) { 38 PDB_SYMDUMP_UNREACHABLE(PDBSymbolCompilandDetails) 39 } 40 41 void PDBSymDumper::dump(const PDBSymbolCompilandEnv &Symbol) { 42 PDB_SYMDUMP_UNREACHABLE(PDBSymbolCompilandEnv) 43 } 44 45 void PDBSymDumper::dump(const PDBSymbolCustom &Symbol) { 46 PDB_SYMDUMP_UNREACHABLE(PDBSymbolCustom) 47 } 48 49 void PDBSymDumper::dump(const PDBSymbolData &Symbol) { 50 PDB_SYMDUMP_UNREACHABLE(PDBSymbolData) 51 } 52 53 void PDBSymDumper::dump(const PDBSymbolExe &Symbol) { 54 PDB_SYMDUMP_UNREACHABLE(PDBSymbolExe) 55 } 56 57 void PDBSymDumper::dump(const PDBSymbolFunc &Symbol) { 58 PDB_SYMDUMP_UNREACHABLE(PDBSymbolFunc) 59 } 60 61 void PDBSymDumper::dump(const PDBSymbolFuncDebugEnd &Symbol) { 62 PDB_SYMDUMP_UNREACHABLE(PDBSymbolFuncDebugEnd) 63 } 64 65 void PDBSymDumper::dump(const PDBSymbolFuncDebugStart &Symbol) { 66 PDB_SYMDUMP_UNREACHABLE(PDBSymbolFuncDebugStart) 67 } 68 69 void PDBSymDumper::dump(const PDBSymbolLabel &Symbol) { 70 PDB_SYMDUMP_UNREACHABLE(PDBSymbolLabel) 71 } 72 73 void PDBSymDumper::dump(const PDBSymbolPublicSymbol &Symbol) { 74 PDB_SYMDUMP_UNREACHABLE(PDBSymbolPublicSymbol) 75 } 76 77 void PDBSymDumper::dump(const PDBSymbolThunk &Symbol) { 78 PDB_SYMDUMP_UNREACHABLE(PDBSymbolThunk) 79 } 80 81 void PDBSymDumper::dump(const PDBSymbolTypeArray &Symbol) { 82 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeArray) 83 } 84 85 void PDBSymDumper::dump(const PDBSymbolTypeBaseClass &Symbol) { 86 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeBaseClass) 87 } 88 89 void PDBSymDumper::dump(const PDBSymbolTypeBuiltin &Symbol) { 90 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeBuiltin) 91 } 92 93 void PDBSymDumper::dump(const PDBSymbolTypeCustom &Symbol) { 94 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeCustom) 95 } 96 97 void PDBSymDumper::dump(const PDBSymbolTypeDimension &Symbol) { 98 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeDimension) 99 } 100 101 void PDBSymDumper::dump(const PDBSymbolTypeEnum &Symbol) { 102 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeEnum) 103 } 104 105 void PDBSymDumper::dump(const PDBSymbolTypeFriend &Symbol) { 106 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeFriend) 107 } 108 109 void PDBSymDumper::dump(const PDBSymbolTypeFunctionArg &Symbol) { 110 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeFunctionArg) 111 } 112 113 void PDBSymDumper::dump(const PDBSymbolTypeFunctionSig &Symbol) { 114 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeFunctionSig) 115 } 116 117 void PDBSymDumper::dump(const PDBSymbolTypeManaged &Symbol) { 118 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeManaged) 119 } 120 121 void PDBSymDumper::dump(const PDBSymbolTypePointer &Symbol) { 122 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypePointer) 123 } 124 125 void PDBSymDumper::dump(const PDBSymbolTypeTypedef &Symbol) { 126 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeTypedef) 127 } 128 129 void PDBSymDumper::dump(const PDBSymbolTypeUDT &Symbol) { 130 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeUDT) 131 } 132 133 void PDBSymDumper::dump(const PDBSymbolTypeVTable &Symbol) { 134 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeVTable) 135 } 136 137 void PDBSymDumper::dump(const PDBSymbolTypeVTableShape &Symbol) { 138 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeVTableShape) 139 } 140 141 void PDBSymDumper::dump(const PDBSymbolUnknown &Symbol) { 142 PDB_SYMDUMP_UNREACHABLE(PDBSymbolUnknown) 143 } 144 145 void PDBSymDumper::dump(const PDBSymbolUsingNamespace &Symbol) { 146 PDB_SYMDUMP_UNREACHABLE(PDBSymbolUsingNamespace) 147 } 148