1 //===- BuiltinDumper.cpp ---------------------------------------- *- C++ *-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 #include "BuiltinDumper.h"
11 #include "LinePrinter.h"
12 #include "llvm-pdbdump.h"
14 #include "llvm/DebugInfo/PDB/PDBSymbolTypeBuiltin.h"
18 BuiltinDumper::BuiltinDumper(LinePrinter &P)
19 : PDBSymDumper(false), Printer(P) {}
21 void BuiltinDumper::start(const PDBSymbolTypeBuiltin &Symbol) {
22 WithColor(Printer, PDB_ColorItem::Type).get() << getTypeName(Symbol);
25 StringRef BuiltinDumper::getTypeName(const PDBSymbolTypeBuiltin &Symbol) {
26 PDB_BuiltinType Type = Symbol.getBuiltinType();
28 case PDB_BuiltinType::Float:
29 if (Symbol.getLength() == 4)
32 case PDB_BuiltinType::UInt:
33 if (Symbol.getLength() == 8)
34 return "unsigned __int64";
36 case PDB_BuiltinType::Int:
37 if (Symbol.getLength() == 4)
40 case PDB_BuiltinType::Char:
42 case PDB_BuiltinType::WCharT:
44 case PDB_BuiltinType::Void:
46 case PDB_BuiltinType::Long:
48 case PDB_BuiltinType::ULong:
49 return "unsigned long";
50 case PDB_BuiltinType::Bool:
52 case PDB_BuiltinType::Currency:
54 case PDB_BuiltinType::Date:
56 case PDB_BuiltinType::Variant:
58 case PDB_BuiltinType::Complex:
60 case PDB_BuiltinType::Bitfield:
62 case PDB_BuiltinType::BSTR:
64 case PDB_BuiltinType::HResult:
66 case PDB_BuiltinType::BCD: