1*9880d681SAndroid Build Coastguard Worker //===- PDBSymDumper.cpp - ---------------------------------------*- C++ -*-===// 2*9880d681SAndroid Build Coastguard Worker // 3*9880d681SAndroid Build Coastguard Worker // The LLVM Compiler Infrastructure 4*9880d681SAndroid Build Coastguard Worker // 5*9880d681SAndroid Build Coastguard Worker // This file is distributed under the University of Illinois Open Source 6*9880d681SAndroid Build Coastguard Worker // License. See LICENSE.TXT for details. 7*9880d681SAndroid Build Coastguard Worker // 8*9880d681SAndroid Build Coastguard Worker //===----------------------------------------------------------------------===// 9*9880d681SAndroid Build Coastguard Worker 10*9880d681SAndroid Build Coastguard Worker #include "llvm/DebugInfo/PDB/PDBSymDumper.h" 11*9880d681SAndroid Build Coastguard Worker #include "llvm/Support/ErrorHandling.h" 12*9880d681SAndroid Build Coastguard Worker 13*9880d681SAndroid Build Coastguard Worker using namespace llvm; 14*9880d681SAndroid Build Coastguard Worker using namespace llvm::pdb; 15*9880d681SAndroid Build Coastguard Worker 16*9880d681SAndroid Build Coastguard Worker #define PDB_SYMDUMP_UNREACHABLE(Type) \ 17*9880d681SAndroid Build Coastguard Worker if (RequireImpl) \ 18*9880d681SAndroid Build Coastguard Worker llvm_unreachable("Attempt to dump " #Type " with no dump implementation"); 19*9880d681SAndroid Build Coastguard Worker PDBSymDumper(bool ShouldRequireImpl)20*9880d681SAndroid Build Coastguard WorkerPDBSymDumper::PDBSymDumper(bool ShouldRequireImpl) 21*9880d681SAndroid Build Coastguard Worker : RequireImpl(ShouldRequireImpl) {} 22*9880d681SAndroid Build Coastguard Worker ~PDBSymDumper()23*9880d681SAndroid Build Coastguard WorkerPDBSymDumper::~PDBSymDumper() {} 24*9880d681SAndroid Build Coastguard Worker dump(const PDBSymbolAnnotation & Symbol)25*9880d681SAndroid Build Coastguard Workervoid PDBSymDumper::dump(const PDBSymbolAnnotation &Symbol) { 26*9880d681SAndroid Build Coastguard Worker PDB_SYMDUMP_UNREACHABLE(PDBSymbolAnnotation) 27*9880d681SAndroid Build Coastguard Worker } 28*9880d681SAndroid Build Coastguard Worker dump(const PDBSymbolBlock & Symbol)29*9880d681SAndroid Build Coastguard Workervoid PDBSymDumper::dump(const PDBSymbolBlock &Symbol) { 30*9880d681SAndroid Build Coastguard Worker PDB_SYMDUMP_UNREACHABLE(PDBSymbolBlock) 31*9880d681SAndroid Build Coastguard Worker } 32*9880d681SAndroid Build Coastguard Worker dump(const PDBSymbolCompiland & Symbol)33*9880d681SAndroid Build Coastguard Workervoid PDBSymDumper::dump(const PDBSymbolCompiland &Symbol) { 34*9880d681SAndroid Build Coastguard Worker PDB_SYMDUMP_UNREACHABLE(PDBSymbolCompiland) 35*9880d681SAndroid Build Coastguard Worker } 36*9880d681SAndroid Build Coastguard Worker dump(const PDBSymbolCompilandDetails & Symbol)37*9880d681SAndroid Build Coastguard Workervoid PDBSymDumper::dump(const PDBSymbolCompilandDetails &Symbol) { 38*9880d681SAndroid Build Coastguard Worker PDB_SYMDUMP_UNREACHABLE(PDBSymbolCompilandDetails) 39*9880d681SAndroid Build Coastguard Worker } 40*9880d681SAndroid Build Coastguard Worker dump(const PDBSymbolCompilandEnv & Symbol)41*9880d681SAndroid Build Coastguard Workervoid PDBSymDumper::dump(const PDBSymbolCompilandEnv &Symbol) { 42*9880d681SAndroid Build Coastguard Worker PDB_SYMDUMP_UNREACHABLE(PDBSymbolCompilandEnv) 43*9880d681SAndroid Build Coastguard Worker } 44*9880d681SAndroid Build Coastguard Worker dump(const PDBSymbolCustom & Symbol)45*9880d681SAndroid Build Coastguard Workervoid PDBSymDumper::dump(const PDBSymbolCustom &Symbol) { 46*9880d681SAndroid Build Coastguard Worker PDB_SYMDUMP_UNREACHABLE(PDBSymbolCustom) 47*9880d681SAndroid Build Coastguard Worker } 48*9880d681SAndroid Build Coastguard Worker dump(const PDBSymbolData & Symbol)49*9880d681SAndroid Build Coastguard Workervoid PDBSymDumper::dump(const PDBSymbolData &Symbol) { 50*9880d681SAndroid Build Coastguard Worker PDB_SYMDUMP_UNREACHABLE(PDBSymbolData) 51*9880d681SAndroid Build Coastguard Worker } 52*9880d681SAndroid Build Coastguard Worker dump(const PDBSymbolExe & Symbol)53*9880d681SAndroid Build Coastguard Workervoid PDBSymDumper::dump(const PDBSymbolExe &Symbol) { 54*9880d681SAndroid Build Coastguard Worker PDB_SYMDUMP_UNREACHABLE(PDBSymbolExe) 55*9880d681SAndroid Build Coastguard Worker } 56*9880d681SAndroid Build Coastguard Worker dump(const PDBSymbolFunc & Symbol)57*9880d681SAndroid Build Coastguard Workervoid PDBSymDumper::dump(const PDBSymbolFunc &Symbol) { 58*9880d681SAndroid Build Coastguard Worker PDB_SYMDUMP_UNREACHABLE(PDBSymbolFunc) 59*9880d681SAndroid Build Coastguard Worker } 60*9880d681SAndroid Build Coastguard Worker dump(const PDBSymbolFuncDebugEnd & Symbol)61*9880d681SAndroid Build Coastguard Workervoid PDBSymDumper::dump(const PDBSymbolFuncDebugEnd &Symbol) { 62*9880d681SAndroid Build Coastguard Worker PDB_SYMDUMP_UNREACHABLE(PDBSymbolFuncDebugEnd) 63*9880d681SAndroid Build Coastguard Worker } 64*9880d681SAndroid Build Coastguard Worker dump(const PDBSymbolFuncDebugStart & Symbol)65*9880d681SAndroid Build Coastguard Workervoid PDBSymDumper::dump(const PDBSymbolFuncDebugStart &Symbol) { 66*9880d681SAndroid Build Coastguard Worker PDB_SYMDUMP_UNREACHABLE(PDBSymbolFuncDebugStart) 67*9880d681SAndroid Build Coastguard Worker } 68*9880d681SAndroid Build Coastguard Worker dump(const PDBSymbolLabel & Symbol)69*9880d681SAndroid Build Coastguard Workervoid PDBSymDumper::dump(const PDBSymbolLabel &Symbol) { 70*9880d681SAndroid Build Coastguard Worker PDB_SYMDUMP_UNREACHABLE(PDBSymbolLabel) 71*9880d681SAndroid Build Coastguard Worker } 72*9880d681SAndroid Build Coastguard Worker dump(const PDBSymbolPublicSymbol & Symbol)73*9880d681SAndroid Build Coastguard Workervoid PDBSymDumper::dump(const PDBSymbolPublicSymbol &Symbol) { 74*9880d681SAndroid Build Coastguard Worker PDB_SYMDUMP_UNREACHABLE(PDBSymbolPublicSymbol) 75*9880d681SAndroid Build Coastguard Worker } 76*9880d681SAndroid Build Coastguard Worker dump(const PDBSymbolThunk & Symbol)77*9880d681SAndroid Build Coastguard Workervoid PDBSymDumper::dump(const PDBSymbolThunk &Symbol) { 78*9880d681SAndroid Build Coastguard Worker PDB_SYMDUMP_UNREACHABLE(PDBSymbolThunk) 79*9880d681SAndroid Build Coastguard Worker } 80*9880d681SAndroid Build Coastguard Worker dump(const PDBSymbolTypeArray & Symbol)81*9880d681SAndroid Build Coastguard Workervoid PDBSymDumper::dump(const PDBSymbolTypeArray &Symbol) { 82*9880d681SAndroid Build Coastguard Worker PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeArray) 83*9880d681SAndroid Build Coastguard Worker } 84*9880d681SAndroid Build Coastguard Worker dump(const PDBSymbolTypeBaseClass & Symbol)85*9880d681SAndroid Build Coastguard Workervoid PDBSymDumper::dump(const PDBSymbolTypeBaseClass &Symbol) { 86*9880d681SAndroid Build Coastguard Worker PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeBaseClass) 87*9880d681SAndroid Build Coastguard Worker } 88*9880d681SAndroid Build Coastguard Worker dump(const PDBSymbolTypeBuiltin & Symbol)89*9880d681SAndroid Build Coastguard Workervoid PDBSymDumper::dump(const PDBSymbolTypeBuiltin &Symbol) { 90*9880d681SAndroid Build Coastguard Worker PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeBuiltin) 91*9880d681SAndroid Build Coastguard Worker } 92*9880d681SAndroid Build Coastguard Worker dump(const PDBSymbolTypeCustom & Symbol)93*9880d681SAndroid Build Coastguard Workervoid PDBSymDumper::dump(const PDBSymbolTypeCustom &Symbol) { 94*9880d681SAndroid Build Coastguard Worker PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeCustom) 95*9880d681SAndroid Build Coastguard Worker } 96*9880d681SAndroid Build Coastguard Worker dump(const PDBSymbolTypeDimension & Symbol)97*9880d681SAndroid Build Coastguard Workervoid PDBSymDumper::dump(const PDBSymbolTypeDimension &Symbol) { 98*9880d681SAndroid Build Coastguard Worker PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeDimension) 99*9880d681SAndroid Build Coastguard Worker } 100*9880d681SAndroid Build Coastguard Worker dump(const PDBSymbolTypeEnum & Symbol)101*9880d681SAndroid Build Coastguard Workervoid PDBSymDumper::dump(const PDBSymbolTypeEnum &Symbol) { 102*9880d681SAndroid Build Coastguard Worker PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeEnum) 103*9880d681SAndroid Build Coastguard Worker } 104*9880d681SAndroid Build Coastguard Worker dump(const PDBSymbolTypeFriend & Symbol)105*9880d681SAndroid Build Coastguard Workervoid PDBSymDumper::dump(const PDBSymbolTypeFriend &Symbol) { 106*9880d681SAndroid Build Coastguard Worker PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeFriend) 107*9880d681SAndroid Build Coastguard Worker } 108*9880d681SAndroid Build Coastguard Worker dump(const PDBSymbolTypeFunctionArg & Symbol)109*9880d681SAndroid Build Coastguard Workervoid PDBSymDumper::dump(const PDBSymbolTypeFunctionArg &Symbol) { 110*9880d681SAndroid Build Coastguard Worker PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeFunctionArg) 111*9880d681SAndroid Build Coastguard Worker } 112*9880d681SAndroid Build Coastguard Worker dump(const PDBSymbolTypeFunctionSig & Symbol)113*9880d681SAndroid Build Coastguard Workervoid PDBSymDumper::dump(const PDBSymbolTypeFunctionSig &Symbol) { 114*9880d681SAndroid Build Coastguard Worker PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeFunctionSig) 115*9880d681SAndroid Build Coastguard Worker } 116*9880d681SAndroid Build Coastguard Worker dump(const PDBSymbolTypeManaged & Symbol)117*9880d681SAndroid Build Coastguard Workervoid PDBSymDumper::dump(const PDBSymbolTypeManaged &Symbol) { 118*9880d681SAndroid Build Coastguard Worker PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeManaged) 119*9880d681SAndroid Build Coastguard Worker } 120*9880d681SAndroid Build Coastguard Worker dump(const PDBSymbolTypePointer & Symbol)121*9880d681SAndroid Build Coastguard Workervoid PDBSymDumper::dump(const PDBSymbolTypePointer &Symbol) { 122*9880d681SAndroid Build Coastguard Worker PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypePointer) 123*9880d681SAndroid Build Coastguard Worker } 124*9880d681SAndroid Build Coastguard Worker dump(const PDBSymbolTypeTypedef & Symbol)125*9880d681SAndroid Build Coastguard Workervoid PDBSymDumper::dump(const PDBSymbolTypeTypedef &Symbol) { 126*9880d681SAndroid Build Coastguard Worker PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeTypedef) 127*9880d681SAndroid Build Coastguard Worker } 128*9880d681SAndroid Build Coastguard Worker dump(const PDBSymbolTypeUDT & Symbol)129*9880d681SAndroid Build Coastguard Workervoid PDBSymDumper::dump(const PDBSymbolTypeUDT &Symbol) { 130*9880d681SAndroid Build Coastguard Worker PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeUDT) 131*9880d681SAndroid Build Coastguard Worker } 132*9880d681SAndroid Build Coastguard Worker dump(const PDBSymbolTypeVTable & Symbol)133*9880d681SAndroid Build Coastguard Workervoid PDBSymDumper::dump(const PDBSymbolTypeVTable &Symbol) { 134*9880d681SAndroid Build Coastguard Worker PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeVTable) 135*9880d681SAndroid Build Coastguard Worker } 136*9880d681SAndroid Build Coastguard Worker dump(const PDBSymbolTypeVTableShape & Symbol)137*9880d681SAndroid Build Coastguard Workervoid PDBSymDumper::dump(const PDBSymbolTypeVTableShape &Symbol) { 138*9880d681SAndroid Build Coastguard Worker PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeVTableShape) 139*9880d681SAndroid Build Coastguard Worker } 140*9880d681SAndroid Build Coastguard Worker dump(const PDBSymbolUnknown & Symbol)141*9880d681SAndroid Build Coastguard Workervoid PDBSymDumper::dump(const PDBSymbolUnknown &Symbol) { 142*9880d681SAndroid Build Coastguard Worker PDB_SYMDUMP_UNREACHABLE(PDBSymbolUnknown) 143*9880d681SAndroid Build Coastguard Worker } 144*9880d681SAndroid Build Coastguard Worker dump(const PDBSymbolUsingNamespace & Symbol)145*9880d681SAndroid Build Coastguard Workervoid PDBSymDumper::dump(const PDBSymbolUsingNamespace &Symbol) { 146*9880d681SAndroid Build Coastguard Worker PDB_SYMDUMP_UNREACHABLE(PDBSymbolUsingNamespace) 147*9880d681SAndroid Build Coastguard Worker } 148