Home | History | Annotate | Download | only in PDB
      1 //===- 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 
     13 using namespace llvm;
     14 using namespace llvm::pdb;
     15 
     16 #define PDB_SYMDUMP_UNREACHABLE(Type)                                          \
     17   if (RequireImpl)                                                             \
     18     llvm_unreachable("Attempt to dump " #Type " with no dump implementation");
     19 
     20 PDBSymDumper::PDBSymDumper(bool ShouldRequireImpl)
     21     : RequireImpl(ShouldRequireImpl) {}
     22 
     23 PDBSymDumper::~PDBSymDumper() {}
     24 
     25 void PDBSymDumper::dump(const PDBSymbolAnnotation &Symbol) {
     26   PDB_SYMDUMP_UNREACHABLE(PDBSymbolAnnotation)
     27 }
     28 
     29 void PDBSymDumper::dump(const PDBSymbolBlock &Symbol) {
     30   PDB_SYMDUMP_UNREACHABLE(PDBSymbolBlock)
     31 }
     32 
     33 void PDBSymDumper::dump(const PDBSymbolCompiland &Symbol) {
     34   PDB_SYMDUMP_UNREACHABLE(PDBSymbolCompiland)
     35 }
     36 
     37 void PDBSymDumper::dump(const PDBSymbolCompilandDetails &Symbol) {
     38   PDB_SYMDUMP_UNREACHABLE(PDBSymbolCompilandDetails)
     39 }
     40 
     41 void PDBSymDumper::dump(const PDBSymbolCompilandEnv &Symbol) {
     42   PDB_SYMDUMP_UNREACHABLE(PDBSymbolCompilandEnv)
     43 }
     44 
     45 void PDBSymDumper::dump(const PDBSymbolCustom &Symbol) {
     46   PDB_SYMDUMP_UNREACHABLE(PDBSymbolCustom)
     47 }
     48 
     49 void PDBSymDumper::dump(const PDBSymbolData &Symbol) {
     50   PDB_SYMDUMP_UNREACHABLE(PDBSymbolData)
     51 }
     52 
     53 void PDBSymDumper::dump(const PDBSymbolExe &Symbol) {
     54   PDB_SYMDUMP_UNREACHABLE(PDBSymbolExe)
     55 }
     56 
     57 void PDBSymDumper::dump(const PDBSymbolFunc &Symbol) {
     58   PDB_SYMDUMP_UNREACHABLE(PDBSymbolFunc)
     59 }
     60 
     61 void PDBSymDumper::dump(const PDBSymbolFuncDebugEnd &Symbol) {
     62   PDB_SYMDUMP_UNREACHABLE(PDBSymbolFuncDebugEnd)
     63 }
     64 
     65 void PDBSymDumper::dump(const PDBSymbolFuncDebugStart &Symbol) {
     66   PDB_SYMDUMP_UNREACHABLE(PDBSymbolFuncDebugStart)
     67 }
     68 
     69 void PDBSymDumper::dump(const PDBSymbolLabel &Symbol) {
     70   PDB_SYMDUMP_UNREACHABLE(PDBSymbolLabel)
     71 }
     72 
     73 void PDBSymDumper::dump(const PDBSymbolPublicSymbol &Symbol) {
     74   PDB_SYMDUMP_UNREACHABLE(PDBSymbolPublicSymbol)
     75 }
     76 
     77 void PDBSymDumper::dump(const PDBSymbolThunk &Symbol) {
     78   PDB_SYMDUMP_UNREACHABLE(PDBSymbolThunk)
     79 }
     80 
     81 void PDBSymDumper::dump(const PDBSymbolTypeArray &Symbol) {
     82   PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeArray)
     83 }
     84 
     85 void PDBSymDumper::dump(const PDBSymbolTypeBaseClass &Symbol) {
     86   PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeBaseClass)
     87 }
     88 
     89 void PDBSymDumper::dump(const PDBSymbolTypeBuiltin &Symbol) {
     90   PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeBuiltin)
     91 }
     92 
     93 void PDBSymDumper::dump(const PDBSymbolTypeCustom &Symbol) {
     94   PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeCustom)
     95 }
     96 
     97 void PDBSymDumper::dump(const PDBSymbolTypeDimension &Symbol) {
     98   PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeDimension)
     99 }
    100 
    101 void PDBSymDumper::dump(const PDBSymbolTypeEnum &Symbol) {
    102   PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeEnum)
    103 }
    104 
    105 void PDBSymDumper::dump(const PDBSymbolTypeFriend &Symbol) {
    106   PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeFriend)
    107 }
    108 
    109 void PDBSymDumper::dump(const PDBSymbolTypeFunctionArg &Symbol) {
    110   PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeFunctionArg)
    111 }
    112 
    113 void PDBSymDumper::dump(const PDBSymbolTypeFunctionSig &Symbol) {
    114   PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeFunctionSig)
    115 }
    116 
    117 void PDBSymDumper::dump(const PDBSymbolTypeManaged &Symbol) {
    118   PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeManaged)
    119 }
    120 
    121 void PDBSymDumper::dump(const PDBSymbolTypePointer &Symbol) {
    122   PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypePointer)
    123 }
    124 
    125 void PDBSymDumper::dump(const PDBSymbolTypeTypedef &Symbol) {
    126   PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeTypedef)
    127 }
    128 
    129 void PDBSymDumper::dump(const PDBSymbolTypeUDT &Symbol) {
    130   PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeUDT)
    131 }
    132 
    133 void PDBSymDumper::dump(const PDBSymbolTypeVTable &Symbol) {
    134   PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeVTable)
    135 }
    136 
    137 void PDBSymDumper::dump(const PDBSymbolTypeVTableShape &Symbol) {
    138   PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeVTableShape)
    139 }
    140 
    141 void PDBSymDumper::dump(const PDBSymbolUnknown &Symbol) {
    142   PDB_SYMDUMP_UNREACHABLE(PDBSymbolUnknown)
    143 }
    144 
    145 void PDBSymDumper::dump(const PDBSymbolUsingNamespace &Symbol) {
    146   PDB_SYMDUMP_UNREACHABLE(PDBSymbolUsingNamespace)
    147 }
    148