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 TurnerPDBSymDumper::PDBSymDumper(bool ShouldRequireImpl) 209a818ad1SZachary Turner : RequireImpl(ShouldRequireImpl) {} 219a818ad1SZachary Turner 22570e39a2SEugene Zelenko PDBSymDumper::~PDBSymDumper() = default; 239a818ad1SZachary Turner dump(const PDBSymbolAnnotation & Symbol)24b52d08d9SZachary Turnervoid PDBSymDumper::dump(const PDBSymbolAnnotation &Symbol) { 259a818ad1SZachary Turner PDB_SYMDUMP_UNREACHABLE(PDBSymbolAnnotation) 269a818ad1SZachary Turner } 279a818ad1SZachary Turner dump(const PDBSymbolBlock & Symbol)28b52d08d9SZachary Turnervoid PDBSymDumper::dump(const PDBSymbolBlock &Symbol) { 299a818ad1SZachary Turner PDB_SYMDUMP_UNREACHABLE(PDBSymbolBlock) 309a818ad1SZachary Turner } 319a818ad1SZachary Turner dump(const PDBSymbolCompiland & Symbol)32b52d08d9SZachary Turnervoid PDBSymDumper::dump(const PDBSymbolCompiland &Symbol) { 339a818ad1SZachary Turner PDB_SYMDUMP_UNREACHABLE(PDBSymbolCompiland) 349a818ad1SZachary Turner } 359a818ad1SZachary Turner dump(const PDBSymbolCompilandDetails & Symbol)36b52d08d9SZachary Turnervoid PDBSymDumper::dump(const PDBSymbolCompilandDetails &Symbol) { 379a818ad1SZachary Turner PDB_SYMDUMP_UNREACHABLE(PDBSymbolCompilandDetails) 389a818ad1SZachary Turner } 399a818ad1SZachary Turner dump(const PDBSymbolCompilandEnv & Symbol)40b52d08d9SZachary Turnervoid PDBSymDumper::dump(const PDBSymbolCompilandEnv &Symbol) { 419a818ad1SZachary Turner PDB_SYMDUMP_UNREACHABLE(PDBSymbolCompilandEnv) 429a818ad1SZachary Turner } 439a818ad1SZachary Turner dump(const PDBSymbolCustom & Symbol)44b52d08d9SZachary Turnervoid PDBSymDumper::dump(const PDBSymbolCustom &Symbol) { 459a818ad1SZachary Turner PDB_SYMDUMP_UNREACHABLE(PDBSymbolCustom) 469a818ad1SZachary Turner } 479a818ad1SZachary Turner dump(const PDBSymbolData & Symbol)48b52d08d9SZachary Turnervoid PDBSymDumper::dump(const PDBSymbolData &Symbol) { 499a818ad1SZachary Turner PDB_SYMDUMP_UNREACHABLE(PDBSymbolData) 509a818ad1SZachary Turner } 519a818ad1SZachary Turner dump(const PDBSymbolExe & Symbol)52b52d08d9SZachary Turnervoid PDBSymDumper::dump(const PDBSymbolExe &Symbol) { 539a818ad1SZachary Turner PDB_SYMDUMP_UNREACHABLE(PDBSymbolExe) 549a818ad1SZachary Turner } 559a818ad1SZachary Turner dump(const PDBSymbolFunc & Symbol)56b52d08d9SZachary Turnervoid PDBSymDumper::dump(const PDBSymbolFunc &Symbol) { 579a818ad1SZachary Turner PDB_SYMDUMP_UNREACHABLE(PDBSymbolFunc) 589a818ad1SZachary Turner } 599a818ad1SZachary Turner dump(const PDBSymbolFuncDebugEnd & Symbol)60b52d08d9SZachary Turnervoid PDBSymDumper::dump(const PDBSymbolFuncDebugEnd &Symbol) { 619a818ad1SZachary Turner PDB_SYMDUMP_UNREACHABLE(PDBSymbolFuncDebugEnd) 629a818ad1SZachary Turner } 639a818ad1SZachary Turner dump(const PDBSymbolFuncDebugStart & Symbol)64b52d08d9SZachary Turnervoid PDBSymDumper::dump(const PDBSymbolFuncDebugStart &Symbol) { 659a818ad1SZachary Turner PDB_SYMDUMP_UNREACHABLE(PDBSymbolFuncDebugStart) 669a818ad1SZachary Turner } 679a818ad1SZachary Turner dump(const PDBSymbolLabel & Symbol)68b52d08d9SZachary Turnervoid PDBSymDumper::dump(const PDBSymbolLabel &Symbol) { 699a818ad1SZachary Turner PDB_SYMDUMP_UNREACHABLE(PDBSymbolLabel) 709a818ad1SZachary Turner } 719a818ad1SZachary Turner dump(const PDBSymbolPublicSymbol & Symbol)72b52d08d9SZachary Turnervoid PDBSymDumper::dump(const PDBSymbolPublicSymbol &Symbol) { 739a818ad1SZachary Turner PDB_SYMDUMP_UNREACHABLE(PDBSymbolPublicSymbol) 749a818ad1SZachary Turner } 759a818ad1SZachary Turner dump(const PDBSymbolThunk & Symbol)76b52d08d9SZachary Turnervoid PDBSymDumper::dump(const PDBSymbolThunk &Symbol) { 779a818ad1SZachary Turner PDB_SYMDUMP_UNREACHABLE(PDBSymbolThunk) 789a818ad1SZachary Turner } 799a818ad1SZachary Turner dump(const PDBSymbolTypeArray & Symbol)80b52d08d9SZachary Turnervoid PDBSymDumper::dump(const PDBSymbolTypeArray &Symbol) { 819a818ad1SZachary Turner PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeArray) 829a818ad1SZachary Turner } 839a818ad1SZachary Turner dump(const PDBSymbolTypeBaseClass & Symbol)84b52d08d9SZachary Turnervoid PDBSymDumper::dump(const PDBSymbolTypeBaseClass &Symbol) { 859a818ad1SZachary Turner PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeBaseClass) 869a818ad1SZachary Turner } 879a818ad1SZachary Turner dump(const PDBSymbolTypeBuiltin & Symbol)88b52d08d9SZachary Turnervoid PDBSymDumper::dump(const PDBSymbolTypeBuiltin &Symbol) { 899a818ad1SZachary Turner PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeBuiltin) 909a818ad1SZachary Turner } 919a818ad1SZachary Turner dump(const PDBSymbolTypeCustom & Symbol)92b52d08d9SZachary Turnervoid PDBSymDumper::dump(const PDBSymbolTypeCustom &Symbol) { 939a818ad1SZachary Turner PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeCustom) 949a818ad1SZachary Turner } 959a818ad1SZachary Turner dump(const PDBSymbolTypeDimension & Symbol)96b52d08d9SZachary Turnervoid PDBSymDumper::dump(const PDBSymbolTypeDimension &Symbol) { 979a818ad1SZachary Turner PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeDimension) 989a818ad1SZachary Turner } 999a818ad1SZachary Turner dump(const PDBSymbolTypeEnum & Symbol)100b52d08d9SZachary Turnervoid PDBSymDumper::dump(const PDBSymbolTypeEnum &Symbol) { 1019a818ad1SZachary Turner PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeEnum) 1029a818ad1SZachary Turner } 1039a818ad1SZachary Turner dump(const PDBSymbolTypeFriend & Symbol)104b52d08d9SZachary Turnervoid PDBSymDumper::dump(const PDBSymbolTypeFriend &Symbol) { 1059a818ad1SZachary Turner PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeFriend) 1069a818ad1SZachary Turner } 1079a818ad1SZachary Turner dump(const PDBSymbolTypeFunctionArg & Symbol)108b52d08d9SZachary Turnervoid PDBSymDumper::dump(const PDBSymbolTypeFunctionArg &Symbol) { 1099a818ad1SZachary Turner PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeFunctionArg) 1109a818ad1SZachary Turner } 1119a818ad1SZachary Turner dump(const PDBSymbolTypeFunctionSig & Symbol)112b52d08d9SZachary Turnervoid PDBSymDumper::dump(const PDBSymbolTypeFunctionSig &Symbol) { 1139a818ad1SZachary Turner PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeFunctionSig) 1149a818ad1SZachary Turner } 1159a818ad1SZachary Turner dump(const PDBSymbolTypeManaged & Symbol)116b52d08d9SZachary Turnervoid PDBSymDumper::dump(const PDBSymbolTypeManaged &Symbol) { 1179a818ad1SZachary Turner PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeManaged) 1189a818ad1SZachary Turner } 1199a818ad1SZachary Turner dump(const PDBSymbolTypePointer & Symbol)120b52d08d9SZachary Turnervoid PDBSymDumper::dump(const PDBSymbolTypePointer &Symbol) { 1219a818ad1SZachary Turner PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypePointer) 1229a818ad1SZachary Turner } 1239a818ad1SZachary Turner dump(const PDBSymbolTypeTypedef & Symbol)124b52d08d9SZachary Turnervoid PDBSymDumper::dump(const PDBSymbolTypeTypedef &Symbol) { 1259a818ad1SZachary Turner PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeTypedef) 1269a818ad1SZachary Turner } 1279a818ad1SZachary Turner dump(const PDBSymbolTypeUDT & Symbol)128b52d08d9SZachary Turnervoid PDBSymDumper::dump(const PDBSymbolTypeUDT &Symbol) { 1299a818ad1SZachary Turner PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeUDT) 1309a818ad1SZachary Turner } 1319a818ad1SZachary Turner dump(const PDBSymbolTypeVTable & Symbol)132b52d08d9SZachary Turnervoid PDBSymDumper::dump(const PDBSymbolTypeVTable &Symbol) { 1339a818ad1SZachary Turner PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeVTable) 1349a818ad1SZachary Turner } 1359a818ad1SZachary Turner dump(const PDBSymbolTypeVTableShape & Symbol)136b52d08d9SZachary Turnervoid PDBSymDumper::dump(const PDBSymbolTypeVTableShape &Symbol) { 1379a818ad1SZachary Turner PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeVTableShape) 1389a818ad1SZachary Turner } 1399a818ad1SZachary Turner dump(const PDBSymbolUnknown & Symbol)140b52d08d9SZachary Turnervoid PDBSymDumper::dump(const PDBSymbolUnknown &Symbol) { 1419a818ad1SZachary Turner PDB_SYMDUMP_UNREACHABLE(PDBSymbolUnknown) 1429a818ad1SZachary Turner } 1439a818ad1SZachary Turner dump(const PDBSymbolUsingNamespace & Symbol)144b52d08d9SZachary Turnervoid PDBSymDumper::dump(const PDBSymbolUsingNamespace &Symbol) { 1459a818ad1SZachary Turner PDB_SYMDUMP_UNREACHABLE(PDBSymbolUsingNamespace) 1469a818ad1SZachary Turner } 147