Subversion Repositories QNX 8.QNX8 LLVM/Clang compiler suite

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
14 pmbaty 1
//===- PDBSymDumper.h - base interface for PDB symbol dumper *- C++ -----*-===//
2
//
3
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
// See https://llvm.org/LICENSE.txt for license information.
5
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
//
7
//===----------------------------------------------------------------------===//
8
 
9
#ifndef LLVM_DEBUGINFO_PDB_PDBSYMDUMPER_H
10
#define LLVM_DEBUGINFO_PDB_PDBSYMDUMPER_H
11
 
12
#include "PDBTypes.h"
13
 
14
namespace llvm {
15
 
16
class raw_ostream;
17
namespace pdb {
18
 
19
class PDBSymDumper {
20
public:
21
  PDBSymDumper(bool ShouldRequireImpl);
22
  virtual ~PDBSymDumper();
23
 
24
  virtual void dump(const PDBSymbolAnnotation &Symbol);
25
  virtual void dump(const PDBSymbolBlock &Symbol);
26
  virtual void dump(const PDBSymbolCompiland &Symbol);
27
  virtual void dump(const PDBSymbolCompilandDetails &Symbol);
28
  virtual void dump(const PDBSymbolCompilandEnv &Symbol);
29
  virtual void dump(const PDBSymbolCustom &Symbol);
30
  virtual void dump(const PDBSymbolData &Symbol);
31
  virtual void dump(const PDBSymbolExe &Symbol);
32
  virtual void dump(const PDBSymbolFunc &Symbol);
33
  virtual void dump(const PDBSymbolFuncDebugEnd &Symbol);
34
  virtual void dump(const PDBSymbolFuncDebugStart &Symbol);
35
  virtual void dump(const PDBSymbolLabel &Symbol);
36
  virtual void dump(const PDBSymbolPublicSymbol &Symbol);
37
  virtual void dump(const PDBSymbolThunk &Symbol);
38
  virtual void dump(const PDBSymbolTypeArray &Symbol);
39
  virtual void dump(const PDBSymbolTypeBaseClass &Symbol);
40
  virtual void dump(const PDBSymbolTypeBuiltin &Symbol);
41
  virtual void dump(const PDBSymbolTypeCustom &Symbol);
42
  virtual void dump(const PDBSymbolTypeDimension &Symbol);
43
  virtual void dump(const PDBSymbolTypeEnum &Symbol);
44
  virtual void dump(const PDBSymbolTypeFriend &Symbol);
45
  virtual void dump(const PDBSymbolTypeFunctionArg &Symbol);
46
  virtual void dump(const PDBSymbolTypeFunctionSig &Symbol);
47
  virtual void dump(const PDBSymbolTypeManaged &Symbol);
48
  virtual void dump(const PDBSymbolTypePointer &Symbol);
49
  virtual void dump(const PDBSymbolTypeTypedef &Symbol);
50
  virtual void dump(const PDBSymbolTypeUDT &Symbol);
51
  virtual void dump(const PDBSymbolTypeVTable &Symbol);
52
  virtual void dump(const PDBSymbolTypeVTableShape &Symbol);
53
  virtual void dump(const PDBSymbolUnknown &Symbol);
54
  virtual void dump(const PDBSymbolUsingNamespace &Symbol);
55
 
56
  virtual void dumpRight(const PDBSymbolTypeArray &Symbol) {}
57
  virtual void dumpRight(const PDBSymbolTypeBaseClass &Symbol) {}
58
  virtual void dumpRight(const PDBSymbolTypeBuiltin &Symbol) {}
59
  virtual void dumpRight(const PDBSymbolTypeCustom &Symbol) {}
60
  virtual void dumpRight(const PDBSymbolTypeDimension &Symbol) {}
61
  virtual void dumpRight(const PDBSymbolTypeEnum &Symbol) {}
62
  virtual void dumpRight(const PDBSymbolTypeFriend &Symbol) {}
63
  virtual void dumpRight(const PDBSymbolTypeFunctionArg &Symbol) {}
64
  virtual void dumpRight(const PDBSymbolTypeFunctionSig &Symbol) {}
65
  virtual void dumpRight(const PDBSymbolTypeManaged &Symbol) {}
66
  virtual void dumpRight(const PDBSymbolTypePointer &Symbol) {}
67
  virtual void dumpRight(const PDBSymbolTypeTypedef &Symbol) {}
68
  virtual void dumpRight(const PDBSymbolTypeUDT &Symbol) {}
69
  virtual void dumpRight(const PDBSymbolTypeVTable &Symbol) {}
70
  virtual void dumpRight(const PDBSymbolTypeVTableShape &Symbol) {}
71
 
72
private:
73
  bool RequireImpl;
74
};
75
}
76
}
77
 
78
#endif