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