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"
14 using namespace llvm::pdb;
16 #define PDB_SYMDUMP_UNREACHABLE(Type) \
18 llvm_unreachable("Attempt to dump " #Type " with no dump implementation");
20 PDBSymDumper::PDBSymDumper(bool ShouldRequireImpl)
21 : RequireImpl(ShouldRequireImpl) {}
23 PDBSymDumper::~PDBSymDumper() = default;
25 void PDBSymDumper::dump(const PDBSymbolAnnotation &Symbol) {
26 PDB_SYMDUMP_UNREACHABLE(PDBSymbolAnnotation)
29 void PDBSymDumper::dump(const PDBSymbolBlock &Symbol) {
30 PDB_SYMDUMP_UNREACHABLE(PDBSymbolBlock)
33 void PDBSymDumper::dump(const PDBSymbolCompiland &Symbol) {
34 PDB_SYMDUMP_UNREACHABLE(PDBSymbolCompiland)
37 void PDBSymDumper::dump(const PDBSymbolCompilandDetails &Symbol) {
38 PDB_SYMDUMP_UNREACHABLE(PDBSymbolCompilandDetails)
41 void PDBSymDumper::dump(const PDBSymbolCompilandEnv &Symbol) {
42 PDB_SYMDUMP_UNREACHABLE(PDBSymbolCompilandEnv)
45 void PDBSymDumper::dump(const PDBSymbolCustom &Symbol) {
46 PDB_SYMDUMP_UNREACHABLE(PDBSymbolCustom)
49 void PDBSymDumper::dump(const PDBSymbolData &Symbol) {
50 PDB_SYMDUMP_UNREACHABLE(PDBSymbolData)
53 void PDBSymDumper::dump(const PDBSymbolExe &Symbol) {
54 PDB_SYMDUMP_UNREACHABLE(PDBSymbolExe)
57 void PDBSymDumper::dump(const PDBSymbolFunc &Symbol) {
58 PDB_SYMDUMP_UNREACHABLE(PDBSymbolFunc)
61 void PDBSymDumper::dump(const PDBSymbolFuncDebugEnd &Symbol) {
62 PDB_SYMDUMP_UNREACHABLE(PDBSymbolFuncDebugEnd)
65 void PDBSymDumper::dump(const PDBSymbolFuncDebugStart &Symbol) {
66 PDB_SYMDUMP_UNREACHABLE(PDBSymbolFuncDebugStart)
69 void PDBSymDumper::dump(const PDBSymbolLabel &Symbol) {
70 PDB_SYMDUMP_UNREACHABLE(PDBSymbolLabel)
73 void PDBSymDumper::dump(const PDBSymbolPublicSymbol &Symbol) {
74 PDB_SYMDUMP_UNREACHABLE(PDBSymbolPublicSymbol)
77 void PDBSymDumper::dump(const PDBSymbolThunk &Symbol) {
78 PDB_SYMDUMP_UNREACHABLE(PDBSymbolThunk)
81 void PDBSymDumper::dump(const PDBSymbolTypeArray &Symbol) {
82 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeArray)
85 void PDBSymDumper::dump(const PDBSymbolTypeBaseClass &Symbol) {
86 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeBaseClass)
89 void PDBSymDumper::dump(const PDBSymbolTypeBuiltin &Symbol) {
90 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeBuiltin)
93 void PDBSymDumper::dump(const PDBSymbolTypeCustom &Symbol) {
94 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeCustom)
97 void PDBSymDumper::dump(const PDBSymbolTypeDimension &Symbol) {
98 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeDimension)
101 void PDBSymDumper::dump(const PDBSymbolTypeEnum &Symbol) {
102 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeEnum)
105 void PDBSymDumper::dump(const PDBSymbolTypeFriend &Symbol) {
106 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeFriend)
109 void PDBSymDumper::dump(const PDBSymbolTypeFunctionArg &Symbol) {
110 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeFunctionArg)
113 void PDBSymDumper::dump(const PDBSymbolTypeFunctionSig &Symbol) {
114 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeFunctionSig)
117 void PDBSymDumper::dump(const PDBSymbolTypeManaged &Symbol) {
118 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeManaged)
121 void PDBSymDumper::dump(const PDBSymbolTypePointer &Symbol) {
122 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypePointer)
125 void PDBSymDumper::dump(const PDBSymbolTypeTypedef &Symbol) {
126 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeTypedef)
129 void PDBSymDumper::dump(const PDBSymbolTypeUDT &Symbol) {
130 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeUDT)
133 void PDBSymDumper::dump(const PDBSymbolTypeVTable &Symbol) {
134 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeVTable)
137 void PDBSymDumper::dump(const PDBSymbolTypeVTableShape &Symbol) {
138 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeVTableShape)
141 void PDBSymDumper::dump(const PDBSymbolUnknown &Symbol) {
142 PDB_SYMDUMP_UNREACHABLE(PDBSymbolUnknown)
145 void PDBSymDumper::dump(const PDBSymbolUsingNamespace &Symbol) {
146 PDB_SYMDUMP_UNREACHABLE(PDBSymbolUsingNamespace)