blob: 2f819312e54e665f878ee81b39da7ca47c31c497 [file] [log] [blame]
Zachary Turner9a818ad2015-02-22 22:03:38 +00001//===- PDBSymDumper.cpp - ---------------------------------------*- C++ -*-===//
2//
3// The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
10#include "llvm/DebugInfo/PDB/PDBSymDumper.h"
11#include "llvm/Support/ErrorHandling.h"
12
13using namespace llvm;
Zachary Turnerec28fc32016-05-04 20:32:13 +000014using namespace llvm::pdb;
Zachary Turner9a818ad2015-02-22 22:03:38 +000015
16#define PDB_SYMDUMP_UNREACHABLE(Type) \
17 if (RequireImpl) \
18 llvm_unreachable("Attempt to dump " #Type " with no dump implementation");
19
20PDBSymDumper::PDBSymDumper(bool ShouldRequireImpl)
21 : RequireImpl(ShouldRequireImpl) {}
22
Eugene Zelenko570e39a2016-11-23 23:16:32 +000023PDBSymDumper::~PDBSymDumper() = default;
Zachary Turner9a818ad2015-02-22 22:03:38 +000024
Zachary Turnerb52d08d2015-03-01 06:51:29 +000025void PDBSymDumper::dump(const PDBSymbolAnnotation &Symbol) {
Zachary Turner9a818ad2015-02-22 22:03:38 +000026 PDB_SYMDUMP_UNREACHABLE(PDBSymbolAnnotation)
27}
28
Zachary Turnerb52d08d2015-03-01 06:51:29 +000029void PDBSymDumper::dump(const PDBSymbolBlock &Symbol) {
Zachary Turner9a818ad2015-02-22 22:03:38 +000030 PDB_SYMDUMP_UNREACHABLE(PDBSymbolBlock)
31}
32
Zachary Turnerb52d08d2015-03-01 06:51:29 +000033void PDBSymDumper::dump(const PDBSymbolCompiland &Symbol) {
Zachary Turner9a818ad2015-02-22 22:03:38 +000034 PDB_SYMDUMP_UNREACHABLE(PDBSymbolCompiland)
35}
36
Zachary Turnerb52d08d2015-03-01 06:51:29 +000037void PDBSymDumper::dump(const PDBSymbolCompilandDetails &Symbol) {
Zachary Turner9a818ad2015-02-22 22:03:38 +000038 PDB_SYMDUMP_UNREACHABLE(PDBSymbolCompilandDetails)
39}
40
Zachary Turnerb52d08d2015-03-01 06:51:29 +000041void PDBSymDumper::dump(const PDBSymbolCompilandEnv &Symbol) {
Zachary Turner9a818ad2015-02-22 22:03:38 +000042 PDB_SYMDUMP_UNREACHABLE(PDBSymbolCompilandEnv)
43}
44
Zachary Turnerb52d08d2015-03-01 06:51:29 +000045void PDBSymDumper::dump(const PDBSymbolCustom &Symbol) {
Zachary Turner9a818ad2015-02-22 22:03:38 +000046 PDB_SYMDUMP_UNREACHABLE(PDBSymbolCustom)
47}
48
Zachary Turnerb52d08d2015-03-01 06:51:29 +000049void PDBSymDumper::dump(const PDBSymbolData &Symbol) {
Zachary Turner9a818ad2015-02-22 22:03:38 +000050 PDB_SYMDUMP_UNREACHABLE(PDBSymbolData)
51}
52
Zachary Turnerb52d08d2015-03-01 06:51:29 +000053void PDBSymDumper::dump(const PDBSymbolExe &Symbol) {
Zachary Turner9a818ad2015-02-22 22:03:38 +000054 PDB_SYMDUMP_UNREACHABLE(PDBSymbolExe)
55}
56
Zachary Turnerb52d08d2015-03-01 06:51:29 +000057void PDBSymDumper::dump(const PDBSymbolFunc &Symbol) {
Zachary Turner9a818ad2015-02-22 22:03:38 +000058 PDB_SYMDUMP_UNREACHABLE(PDBSymbolFunc)
59}
60
Zachary Turnerb52d08d2015-03-01 06:51:29 +000061void PDBSymDumper::dump(const PDBSymbolFuncDebugEnd &Symbol) {
Zachary Turner9a818ad2015-02-22 22:03:38 +000062 PDB_SYMDUMP_UNREACHABLE(PDBSymbolFuncDebugEnd)
63}
64
Zachary Turnerb52d08d2015-03-01 06:51:29 +000065void PDBSymDumper::dump(const PDBSymbolFuncDebugStart &Symbol) {
Zachary Turner9a818ad2015-02-22 22:03:38 +000066 PDB_SYMDUMP_UNREACHABLE(PDBSymbolFuncDebugStart)
67}
68
Zachary Turnerb52d08d2015-03-01 06:51:29 +000069void PDBSymDumper::dump(const PDBSymbolLabel &Symbol) {
Zachary Turner9a818ad2015-02-22 22:03:38 +000070 PDB_SYMDUMP_UNREACHABLE(PDBSymbolLabel)
71}
72
Zachary Turnerb52d08d2015-03-01 06:51:29 +000073void PDBSymDumper::dump(const PDBSymbolPublicSymbol &Symbol) {
Zachary Turner9a818ad2015-02-22 22:03:38 +000074 PDB_SYMDUMP_UNREACHABLE(PDBSymbolPublicSymbol)
75}
76
Zachary Turnerb52d08d2015-03-01 06:51:29 +000077void PDBSymDumper::dump(const PDBSymbolThunk &Symbol) {
Zachary Turner9a818ad2015-02-22 22:03:38 +000078 PDB_SYMDUMP_UNREACHABLE(PDBSymbolThunk)
79}
80
Zachary Turnerb52d08d2015-03-01 06:51:29 +000081void PDBSymDumper::dump(const PDBSymbolTypeArray &Symbol) {
Zachary Turner9a818ad2015-02-22 22:03:38 +000082 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeArray)
83}
84
Zachary Turnerb52d08d2015-03-01 06:51:29 +000085void PDBSymDumper::dump(const PDBSymbolTypeBaseClass &Symbol) {
Zachary Turner9a818ad2015-02-22 22:03:38 +000086 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeBaseClass)
87}
88
Zachary Turnerb52d08d2015-03-01 06:51:29 +000089void PDBSymDumper::dump(const PDBSymbolTypeBuiltin &Symbol) {
Zachary Turner9a818ad2015-02-22 22:03:38 +000090 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeBuiltin)
91}
92
Zachary Turnerb52d08d2015-03-01 06:51:29 +000093void PDBSymDumper::dump(const PDBSymbolTypeCustom &Symbol) {
Zachary Turner9a818ad2015-02-22 22:03:38 +000094 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeCustom)
95}
96
Zachary Turnerb52d08d2015-03-01 06:51:29 +000097void PDBSymDumper::dump(const PDBSymbolTypeDimension &Symbol) {
Zachary Turner9a818ad2015-02-22 22:03:38 +000098 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeDimension)
99}
100
Zachary Turnerb52d08d2015-03-01 06:51:29 +0000101void PDBSymDumper::dump(const PDBSymbolTypeEnum &Symbol) {
Zachary Turner9a818ad2015-02-22 22:03:38 +0000102 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeEnum)
103}
104
Zachary Turnerb52d08d2015-03-01 06:51:29 +0000105void PDBSymDumper::dump(const PDBSymbolTypeFriend &Symbol) {
Zachary Turner9a818ad2015-02-22 22:03:38 +0000106 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeFriend)
107}
108
Zachary Turnerb52d08d2015-03-01 06:51:29 +0000109void PDBSymDumper::dump(const PDBSymbolTypeFunctionArg &Symbol) {
Zachary Turner9a818ad2015-02-22 22:03:38 +0000110 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeFunctionArg)
111}
112
Zachary Turnerb52d08d2015-03-01 06:51:29 +0000113void PDBSymDumper::dump(const PDBSymbolTypeFunctionSig &Symbol) {
Zachary Turner9a818ad2015-02-22 22:03:38 +0000114 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeFunctionSig)
115}
116
Zachary Turnerb52d08d2015-03-01 06:51:29 +0000117void PDBSymDumper::dump(const PDBSymbolTypeManaged &Symbol) {
Zachary Turner9a818ad2015-02-22 22:03:38 +0000118 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeManaged)
119}
120
Zachary Turnerb52d08d2015-03-01 06:51:29 +0000121void PDBSymDumper::dump(const PDBSymbolTypePointer &Symbol) {
Zachary Turner9a818ad2015-02-22 22:03:38 +0000122 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypePointer)
123}
124
Zachary Turnerb52d08d2015-03-01 06:51:29 +0000125void PDBSymDumper::dump(const PDBSymbolTypeTypedef &Symbol) {
Zachary Turner9a818ad2015-02-22 22:03:38 +0000126 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeTypedef)
127}
128
Zachary Turnerb52d08d2015-03-01 06:51:29 +0000129void PDBSymDumper::dump(const PDBSymbolTypeUDT &Symbol) {
Zachary Turner9a818ad2015-02-22 22:03:38 +0000130 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeUDT)
131}
132
Zachary Turnerb52d08d2015-03-01 06:51:29 +0000133void PDBSymDumper::dump(const PDBSymbolTypeVTable &Symbol) {
Zachary Turner9a818ad2015-02-22 22:03:38 +0000134 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeVTable)
135}
136
Zachary Turnerb52d08d2015-03-01 06:51:29 +0000137void PDBSymDumper::dump(const PDBSymbolTypeVTableShape &Symbol) {
Zachary Turner9a818ad2015-02-22 22:03:38 +0000138 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeVTableShape)
139}
140
Zachary Turnerb52d08d2015-03-01 06:51:29 +0000141void PDBSymDumper::dump(const PDBSymbolUnknown &Symbol) {
Zachary Turner9a818ad2015-02-22 22:03:38 +0000142 PDB_SYMDUMP_UNREACHABLE(PDBSymbolUnknown)
143}
144
Zachary Turnerb52d08d2015-03-01 06:51:29 +0000145void PDBSymDumper::dump(const PDBSymbolUsingNamespace &Symbol) {
Zachary Turner9a818ad2015-02-22 22:03:38 +0000146 PDB_SYMDUMP_UNREACHABLE(PDBSymbolUsingNamespace)
147}