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