1 | //===- PDBSymDumper.cpp - ---------------------------------------*- C++ -*-===// |
---|---|
2 | // |
3 | // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. |
4 | // See https://llvm.org/LICENSE.txt for license information. |
5 | // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
6 | // |
7 | //===----------------------------------------------------------------------===// |
8 | |
9 | #include "llvm/DebugInfo/PDB/PDBSymDumper.h" |
10 | #include "llvm/Support/ErrorHandling.h" |
11 | |
12 | using namespace llvm; |
13 | using namespace llvm::pdb; |
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() = default; |
23 | |
24 | void PDBSymDumper::dump(const PDBSymbolAnnotation &Symbol) { |
25 | PDB_SYMDUMP_UNREACHABLE(PDBSymbolAnnotation) |
26 | } |
27 | |
28 | void PDBSymDumper::dump(const PDBSymbolBlock &Symbol) { |
29 | PDB_SYMDUMP_UNREACHABLE(PDBSymbolBlock) |
30 | } |
31 | |
32 | void PDBSymDumper::dump(const PDBSymbolCompiland &Symbol) { |
33 | PDB_SYMDUMP_UNREACHABLE(PDBSymbolCompiland) |
34 | } |
35 | |
36 | void PDBSymDumper::dump(const PDBSymbolCompilandDetails &Symbol) { |
37 | PDB_SYMDUMP_UNREACHABLE(PDBSymbolCompilandDetails) |
38 | } |
39 | |
40 | void PDBSymDumper::dump(const PDBSymbolCompilandEnv &Symbol) { |
41 | PDB_SYMDUMP_UNREACHABLE(PDBSymbolCompilandEnv) |
42 | } |
43 | |
44 | void PDBSymDumper::dump(const PDBSymbolCustom &Symbol) { |
45 | PDB_SYMDUMP_UNREACHABLE(PDBSymbolCustom) |
46 | } |
47 | |
48 | void PDBSymDumper::dump(const PDBSymbolData &Symbol) { |
49 | PDB_SYMDUMP_UNREACHABLE(PDBSymbolData) |
50 | } |
51 | |
52 | void PDBSymDumper::dump(const PDBSymbolExe &Symbol) { |
53 | PDB_SYMDUMP_UNREACHABLE(PDBSymbolExe) |
54 | } |
55 | |
56 | void PDBSymDumper::dump(const PDBSymbolFunc &Symbol) { |
57 | PDB_SYMDUMP_UNREACHABLE(PDBSymbolFunc) |
58 | } |
59 | |
60 | void PDBSymDumper::dump(const PDBSymbolFuncDebugEnd &Symbol) { |
61 | PDB_SYMDUMP_UNREACHABLE(PDBSymbolFuncDebugEnd) |
62 | } |
63 | |
64 | void PDBSymDumper::dump(const PDBSymbolFuncDebugStart &Symbol) { |
65 | PDB_SYMDUMP_UNREACHABLE(PDBSymbolFuncDebugStart) |
66 | } |
67 | |
68 | void PDBSymDumper::dump(const PDBSymbolLabel &Symbol) { |
69 | PDB_SYMDUMP_UNREACHABLE(PDBSymbolLabel) |
70 | } |
71 | |
72 | void PDBSymDumper::dump(const PDBSymbolPublicSymbol &Symbol) { |
73 | PDB_SYMDUMP_UNREACHABLE(PDBSymbolPublicSymbol) |
74 | } |
75 | |
76 | void PDBSymDumper::dump(const PDBSymbolThunk &Symbol) { |
77 | PDB_SYMDUMP_UNREACHABLE(PDBSymbolThunk) |
78 | } |
79 | |
80 | void PDBSymDumper::dump(const PDBSymbolTypeArray &Symbol) { |
81 | PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeArray) |
82 | } |
83 | |
84 | void PDBSymDumper::dump(const PDBSymbolTypeBaseClass &Symbol) { |
85 | PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeBaseClass) |
86 | } |
87 | |
88 | void PDBSymDumper::dump(const PDBSymbolTypeBuiltin &Symbol) { |
89 | PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeBuiltin) |
90 | } |
91 | |
92 | void PDBSymDumper::dump(const PDBSymbolTypeCustom &Symbol) { |
93 | PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeCustom) |
94 | } |
95 | |
96 | void PDBSymDumper::dump(const PDBSymbolTypeDimension &Symbol) { |
97 | PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeDimension) |
98 | } |
99 | |
100 | void PDBSymDumper::dump(const PDBSymbolTypeEnum &Symbol) { |
101 | PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeEnum) |
102 | } |
103 | |
104 | void PDBSymDumper::dump(const PDBSymbolTypeFriend &Symbol) { |
105 | PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeFriend) |
106 | } |
107 | |
108 | void PDBSymDumper::dump(const PDBSymbolTypeFunctionArg &Symbol) { |
109 | PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeFunctionArg) |
110 | } |
111 | |
112 | void PDBSymDumper::dump(const PDBSymbolTypeFunctionSig &Symbol) { |
113 | PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeFunctionSig) |
114 | } |
115 | |
116 | void PDBSymDumper::dump(const PDBSymbolTypeManaged &Symbol) { |
117 | PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeManaged) |
118 | } |
119 | |
120 | void PDBSymDumper::dump(const PDBSymbolTypePointer &Symbol) { |
121 | PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypePointer) |
122 | } |
123 | |
124 | void PDBSymDumper::dump(const PDBSymbolTypeTypedef &Symbol) { |
125 | PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeTypedef) |
126 | } |
127 | |
128 | void PDBSymDumper::dump(const PDBSymbolTypeUDT &Symbol) { |
129 | PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeUDT) |
130 | } |
131 | |
132 | void PDBSymDumper::dump(const PDBSymbolTypeVTable &Symbol) { |
133 | PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeVTable) |
134 | } |
135 | |
136 | void PDBSymDumper::dump(const PDBSymbolTypeVTableShape &Symbol) { |
137 | PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeVTableShape) |
138 | } |
139 | |
140 | void PDBSymDumper::dump(const PDBSymbolUnknown &Symbol) { |
141 | PDB_SYMDUMP_UNREACHABLE(PDBSymbolUnknown) |
142 | } |
143 | |
144 | void PDBSymDumper::dump(const PDBSymbolUsingNamespace &Symbol) { |
145 | PDB_SYMDUMP_UNREACHABLE(PDBSymbolUsingNamespace) |
146 | } |
147 |