blob: 4f00358878c94678e39e04fccac7c4a39d0e40f7 [file] [log] [blame]
Zachary Turner29c69102015-02-23 05:58:34 +00001//===- VariableDumper.h - PDBSymDumper implementation for types -*- 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#ifndef LLVM_TOOLS_LLVMPDBDUMP_VARIABLEDUMPER_H
11#define LLVM_TOOLS_LLVMPDBDUMP_VARIABLEDUMPER_H
12
13#include "llvm/DebugInfo/PDB/PDBSymDumper.h"
Zachary Turner29c69102015-02-23 05:58:34 +000014
15namespace llvm {
16
Mehdi Aminib550cb12016-04-18 09:17:29 +000017class StringRef;
Zachary Turnerec28fc32016-05-04 20:32:13 +000018
19namespace pdb {
20
Zachary Turner2d11c202015-02-27 09:15:59 +000021class LinePrinter;
22
Zachary Turner29c69102015-02-23 05:58:34 +000023class VariableDumper : public PDBSymDumper {
24public:
Zachary Turner2d11c202015-02-27 09:15:59 +000025 VariableDumper(LinePrinter &P);
Zachary Turner29c69102015-02-23 05:58:34 +000026
Zachary Turnerb52d08d2015-03-01 06:51:29 +000027 void start(const PDBSymbolData &Var);
Zachary Turner29c69102015-02-23 05:58:34 +000028
Zachary Turnerb52d08d2015-03-01 06:51:29 +000029 void dump(const PDBSymbolTypeBuiltin &Symbol) override;
30 void dump(const PDBSymbolTypeEnum &Symbol) override;
31 void dump(const PDBSymbolTypeFunctionSig &Symbol) override;
32 void dump(const PDBSymbolTypePointer &Symbol) override;
33 void dump(const PDBSymbolTypeTypedef &Symbol) override;
34 void dump(const PDBSymbolTypeUDT &Symbol) override;
Zachary Turner29c69102015-02-23 05:58:34 +000035
36private:
Zachary Turnerb52d08d2015-03-01 06:51:29 +000037 void dumpSymbolTypeAndName(const PDBSymbol &Type, StringRef Name);
38 bool tryDumpFunctionPointer(const PDBSymbol &Type, StringRef Name);
Zachary Turner2d11c202015-02-27 09:15:59 +000039
40 LinePrinter &Printer;
Zachary Turner29c69102015-02-23 05:58:34 +000041};
42}
Zachary Turnerec28fc32016-05-04 20:32:13 +000043}
Zachary Turner29c69102015-02-23 05:58:34 +000044#endif