1 //===- PrettyBuiltinDumper.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 "PrettyBuiltinDumper.h"
11 #include "LinePrinter.h"
12 #include "llvm-pdbdump.h"
14 #include "llvm/DebugInfo/PDB/PDBSymbolTypeBuiltin.h"
17 using namespace llvm::pdb;
19 BuiltinDumper::BuiltinDumper(LinePrinter &P)
20 : PDBSymDumper(false), Printer(P) {}
22 void BuiltinDumper::start(const PDBSymbolTypeBuiltin &Symbol) {
23 WithColor(Printer, PDB_ColorItem::Type).get() << getTypeName(Symbol);
26 StringRef BuiltinDumper::getTypeName(const PDBSymbolTypeBuiltin &Symbol) {
27 PDB_BuiltinType Type = Symbol.getBuiltinType();
29 case PDB_BuiltinType::Float:
30 if (Symbol.getLength() == 4)
33 case PDB_BuiltinType::UInt:
34 switch (Symbol.getLength()) {
36 return "unsigned __int64";
38 return "unsigned int";
40 return "unsigned short";
42 return "unsigned char";
46 case PDB_BuiltinType::Int:
47 switch (Symbol.getLength()) {
59 case PDB_BuiltinType::Char:
61 case PDB_BuiltinType::WCharT:
63 case PDB_BuiltinType::Void:
65 case PDB_BuiltinType::Long:
67 case PDB_BuiltinType::ULong:
68 return "unsigned long";
69 case PDB_BuiltinType::Bool:
71 case PDB_BuiltinType::Currency:
73 case PDB_BuiltinType::Date:
75 case PDB_BuiltinType::Variant:
77 case PDB_BuiltinType::Complex:
79 case PDB_BuiltinType::Bitfield:
81 case PDB_BuiltinType::BSTR:
83 case PDB_BuiltinType::HResult:
85 case PDB_BuiltinType::BCD: