xref: /llvm-project/llvm/lib/DebugInfo/PDB/PDBSymDumper.cpp (revision 2946cd701067404b99c39fb29dc9c74bd7193eb3)
19a818ad1SZachary Turner //===- PDBSymDumper.cpp - ---------------------------------------*- C++ -*-===//
29a818ad1SZachary Turner //
3*2946cd70SChandler Carruth // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4*2946cd70SChandler Carruth // See https://llvm.org/LICENSE.txt for license information.
5*2946cd70SChandler Carruth // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
69a818ad1SZachary Turner //
79a818ad1SZachary Turner //===----------------------------------------------------------------------===//
89a818ad1SZachary Turner 
99a818ad1SZachary Turner #include "llvm/DebugInfo/PDB/PDBSymDumper.h"
109a818ad1SZachary Turner #include "llvm/Support/ErrorHandling.h"
119a818ad1SZachary Turner 
129a818ad1SZachary Turner using namespace llvm;
13ec28fc34SZachary Turner using namespace llvm::pdb;
149a818ad1SZachary Turner 
159a818ad1SZachary Turner #define PDB_SYMDUMP_UNREACHABLE(Type)                                          \
169a818ad1SZachary Turner   if (RequireImpl)                                                             \
179a818ad1SZachary Turner     llvm_unreachable("Attempt to dump " #Type " with no dump implementation");
189a818ad1SZachary Turner 
PDBSymDumper(bool ShouldRequireImpl)199a818ad1SZachary Turner PDBSymDumper::PDBSymDumper(bool ShouldRequireImpl)
209a818ad1SZachary Turner     : RequireImpl(ShouldRequireImpl) {}
219a818ad1SZachary Turner 
22570e39a2SEugene Zelenko PDBSymDumper::~PDBSymDumper() = default;
239a818ad1SZachary Turner 
dump(const PDBSymbolAnnotation & Symbol)24b52d08d9SZachary Turner void PDBSymDumper::dump(const PDBSymbolAnnotation &Symbol) {
259a818ad1SZachary Turner   PDB_SYMDUMP_UNREACHABLE(PDBSymbolAnnotation)
269a818ad1SZachary Turner }
279a818ad1SZachary Turner 
dump(const PDBSymbolBlock & Symbol)28b52d08d9SZachary Turner void PDBSymDumper::dump(const PDBSymbolBlock &Symbol) {
299a818ad1SZachary Turner   PDB_SYMDUMP_UNREACHABLE(PDBSymbolBlock)
309a818ad1SZachary Turner }
319a818ad1SZachary Turner 
dump(const PDBSymbolCompiland & Symbol)32b52d08d9SZachary Turner void PDBSymDumper::dump(const PDBSymbolCompiland &Symbol) {
339a818ad1SZachary Turner   PDB_SYMDUMP_UNREACHABLE(PDBSymbolCompiland)
349a818ad1SZachary Turner }
359a818ad1SZachary Turner 
dump(const PDBSymbolCompilandDetails & Symbol)36b52d08d9SZachary Turner void PDBSymDumper::dump(const PDBSymbolCompilandDetails &Symbol) {
379a818ad1SZachary Turner   PDB_SYMDUMP_UNREACHABLE(PDBSymbolCompilandDetails)
389a818ad1SZachary Turner }
399a818ad1SZachary Turner 
dump(const PDBSymbolCompilandEnv & Symbol)40b52d08d9SZachary Turner void PDBSymDumper::dump(const PDBSymbolCompilandEnv &Symbol) {
419a818ad1SZachary Turner   PDB_SYMDUMP_UNREACHABLE(PDBSymbolCompilandEnv)
429a818ad1SZachary Turner }
439a818ad1SZachary Turner 
dump(const PDBSymbolCustom & Symbol)44b52d08d9SZachary Turner void PDBSymDumper::dump(const PDBSymbolCustom &Symbol) {
459a818ad1SZachary Turner   PDB_SYMDUMP_UNREACHABLE(PDBSymbolCustom)
469a818ad1SZachary Turner }
479a818ad1SZachary Turner 
dump(const PDBSymbolData & Symbol)48b52d08d9SZachary Turner void PDBSymDumper::dump(const PDBSymbolData &Symbol) {
499a818ad1SZachary Turner   PDB_SYMDUMP_UNREACHABLE(PDBSymbolData)
509a818ad1SZachary Turner }
519a818ad1SZachary Turner 
dump(const PDBSymbolExe & Symbol)52b52d08d9SZachary Turner void PDBSymDumper::dump(const PDBSymbolExe &Symbol) {
539a818ad1SZachary Turner   PDB_SYMDUMP_UNREACHABLE(PDBSymbolExe)
549a818ad1SZachary Turner }
559a818ad1SZachary Turner 
dump(const PDBSymbolFunc & Symbol)56b52d08d9SZachary Turner void PDBSymDumper::dump(const PDBSymbolFunc &Symbol) {
579a818ad1SZachary Turner   PDB_SYMDUMP_UNREACHABLE(PDBSymbolFunc)
589a818ad1SZachary Turner }
599a818ad1SZachary Turner 
dump(const PDBSymbolFuncDebugEnd & Symbol)60b52d08d9SZachary Turner void PDBSymDumper::dump(const PDBSymbolFuncDebugEnd &Symbol) {
619a818ad1SZachary Turner   PDB_SYMDUMP_UNREACHABLE(PDBSymbolFuncDebugEnd)
629a818ad1SZachary Turner }
639a818ad1SZachary Turner 
dump(const PDBSymbolFuncDebugStart & Symbol)64b52d08d9SZachary Turner void PDBSymDumper::dump(const PDBSymbolFuncDebugStart &Symbol) {
659a818ad1SZachary Turner   PDB_SYMDUMP_UNREACHABLE(PDBSymbolFuncDebugStart)
669a818ad1SZachary Turner }
679a818ad1SZachary Turner 
dump(const PDBSymbolLabel & Symbol)68b52d08d9SZachary Turner void PDBSymDumper::dump(const PDBSymbolLabel &Symbol) {
699a818ad1SZachary Turner   PDB_SYMDUMP_UNREACHABLE(PDBSymbolLabel)
709a818ad1SZachary Turner }
719a818ad1SZachary Turner 
dump(const PDBSymbolPublicSymbol & Symbol)72b52d08d9SZachary Turner void PDBSymDumper::dump(const PDBSymbolPublicSymbol &Symbol) {
739a818ad1SZachary Turner   PDB_SYMDUMP_UNREACHABLE(PDBSymbolPublicSymbol)
749a818ad1SZachary Turner }
759a818ad1SZachary Turner 
dump(const PDBSymbolThunk & Symbol)76b52d08d9SZachary Turner void PDBSymDumper::dump(const PDBSymbolThunk &Symbol) {
779a818ad1SZachary Turner   PDB_SYMDUMP_UNREACHABLE(PDBSymbolThunk)
789a818ad1SZachary Turner }
799a818ad1SZachary Turner 
dump(const PDBSymbolTypeArray & Symbol)80b52d08d9SZachary Turner void PDBSymDumper::dump(const PDBSymbolTypeArray &Symbol) {
819a818ad1SZachary Turner   PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeArray)
829a818ad1SZachary Turner }
839a818ad1SZachary Turner 
dump(const PDBSymbolTypeBaseClass & Symbol)84b52d08d9SZachary Turner void PDBSymDumper::dump(const PDBSymbolTypeBaseClass &Symbol) {
859a818ad1SZachary Turner   PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeBaseClass)
869a818ad1SZachary Turner }
879a818ad1SZachary Turner 
dump(const PDBSymbolTypeBuiltin & Symbol)88b52d08d9SZachary Turner void PDBSymDumper::dump(const PDBSymbolTypeBuiltin &Symbol) {
899a818ad1SZachary Turner   PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeBuiltin)
909a818ad1SZachary Turner }
919a818ad1SZachary Turner 
dump(const PDBSymbolTypeCustom & Symbol)92b52d08d9SZachary Turner void PDBSymDumper::dump(const PDBSymbolTypeCustom &Symbol) {
939a818ad1SZachary Turner   PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeCustom)
949a818ad1SZachary Turner }
959a818ad1SZachary Turner 
dump(const PDBSymbolTypeDimension & Symbol)96b52d08d9SZachary Turner void PDBSymDumper::dump(const PDBSymbolTypeDimension &Symbol) {
979a818ad1SZachary Turner   PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeDimension)
989a818ad1SZachary Turner }
999a818ad1SZachary Turner 
dump(const PDBSymbolTypeEnum & Symbol)100b52d08d9SZachary Turner void PDBSymDumper::dump(const PDBSymbolTypeEnum &Symbol) {
1019a818ad1SZachary Turner   PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeEnum)
1029a818ad1SZachary Turner }
1039a818ad1SZachary Turner 
dump(const PDBSymbolTypeFriend & Symbol)104b52d08d9SZachary Turner void PDBSymDumper::dump(const PDBSymbolTypeFriend &Symbol) {
1059a818ad1SZachary Turner   PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeFriend)
1069a818ad1SZachary Turner }
1079a818ad1SZachary Turner 
dump(const PDBSymbolTypeFunctionArg & Symbol)108b52d08d9SZachary Turner void PDBSymDumper::dump(const PDBSymbolTypeFunctionArg &Symbol) {
1099a818ad1SZachary Turner   PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeFunctionArg)
1109a818ad1SZachary Turner }
1119a818ad1SZachary Turner 
dump(const PDBSymbolTypeFunctionSig & Symbol)112b52d08d9SZachary Turner void PDBSymDumper::dump(const PDBSymbolTypeFunctionSig &Symbol) {
1139a818ad1SZachary Turner   PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeFunctionSig)
1149a818ad1SZachary Turner }
1159a818ad1SZachary Turner 
dump(const PDBSymbolTypeManaged & Symbol)116b52d08d9SZachary Turner void PDBSymDumper::dump(const PDBSymbolTypeManaged &Symbol) {
1179a818ad1SZachary Turner   PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeManaged)
1189a818ad1SZachary Turner }
1199a818ad1SZachary Turner 
dump(const PDBSymbolTypePointer & Symbol)120b52d08d9SZachary Turner void PDBSymDumper::dump(const PDBSymbolTypePointer &Symbol) {
1219a818ad1SZachary Turner   PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypePointer)
1229a818ad1SZachary Turner }
1239a818ad1SZachary Turner 
dump(const PDBSymbolTypeTypedef & Symbol)124b52d08d9SZachary Turner void PDBSymDumper::dump(const PDBSymbolTypeTypedef &Symbol) {
1259a818ad1SZachary Turner   PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeTypedef)
1269a818ad1SZachary Turner }
1279a818ad1SZachary Turner 
dump(const PDBSymbolTypeUDT & Symbol)128b52d08d9SZachary Turner void PDBSymDumper::dump(const PDBSymbolTypeUDT &Symbol) {
1299a818ad1SZachary Turner   PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeUDT)
1309a818ad1SZachary Turner }
1319a818ad1SZachary Turner 
dump(const PDBSymbolTypeVTable & Symbol)132b52d08d9SZachary Turner void PDBSymDumper::dump(const PDBSymbolTypeVTable &Symbol) {
1339a818ad1SZachary Turner   PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeVTable)
1349a818ad1SZachary Turner }
1359a818ad1SZachary Turner 
dump(const PDBSymbolTypeVTableShape & Symbol)136b52d08d9SZachary Turner void PDBSymDumper::dump(const PDBSymbolTypeVTableShape &Symbol) {
1379a818ad1SZachary Turner   PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeVTableShape)
1389a818ad1SZachary Turner }
1399a818ad1SZachary Turner 
dump(const PDBSymbolUnknown & Symbol)140b52d08d9SZachary Turner void PDBSymDumper::dump(const PDBSymbolUnknown &Symbol) {
1419a818ad1SZachary Turner   PDB_SYMDUMP_UNREACHABLE(PDBSymbolUnknown)
1429a818ad1SZachary Turner }
1439a818ad1SZachary Turner 
dump(const PDBSymbolUsingNamespace & Symbol)144b52d08d9SZachary Turner void PDBSymDumper::dump(const PDBSymbolUsingNamespace &Symbol) {
1459a818ad1SZachary Turner   PDB_SYMDUMP_UNREACHABLE(PDBSymbolUsingNamespace)
1469a818ad1SZachary Turner }
147