blob: 43270540f4534af89237c05a53831157deca21ec [file] [log] [blame]
Zachary Turneraa57c0a2015-02-26 23:51:49 +00001//===- BuiltinDumper.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 "BuiltinDumper.h"
Zachary Turner2d11c202015-02-27 09:15:59 +000011#include "LinePrinter.h"
Zachary Turneraa57c0a2015-02-26 23:51:49 +000012#include "llvm-pdbdump.h"
13
14#include "llvm/DebugInfo/PDB/PDBSymbolTypeBuiltin.h"
15
16using namespace llvm;
17
Zachary Turner2d11c202015-02-27 09:15:59 +000018BuiltinDumper::BuiltinDumper(LinePrinter &P)
19 : PDBSymDumper(false), Printer(P) {}
Zachary Turneraa57c0a2015-02-26 23:51:49 +000020
Zachary Turnerb52d08d2015-03-01 06:51:29 +000021void BuiltinDumper::start(const PDBSymbolTypeBuiltin &Symbol) {
Rui Ueyamaf4acad32015-11-03 20:16:18 +000022 WithColor(Printer, PDB_ColorItem::Type).get() << getTypeName(Symbol);
23}
24
25StringRef BuiltinDumper::getTypeName(const PDBSymbolTypeBuiltin &Symbol) {
Zachary Turneraa57c0a2015-02-26 23:51:49 +000026 PDB_BuiltinType Type = Symbol.getBuiltinType();
27 switch (Type) {
28 case PDB_BuiltinType::Float:
Zachary Turner2d11c202015-02-27 09:15:59 +000029 if (Symbol.getLength() == 4)
Rui Ueyamaf4acad32015-11-03 20:16:18 +000030 return "float";
31 return "double";
Zachary Turneraa57c0a2015-02-26 23:51:49 +000032 case PDB_BuiltinType::UInt:
Zachary Turneraa57c0a2015-02-26 23:51:49 +000033 if (Symbol.getLength() == 8)
Rui Ueyamaf4acad32015-11-03 20:16:18 +000034 return "unsigned __int64";
35 return "unsigned";
Zachary Turneraa57c0a2015-02-26 23:51:49 +000036 case PDB_BuiltinType::Int:
Zachary Turner2d11c202015-02-27 09:15:59 +000037 if (Symbol.getLength() == 4)
Rui Ueyamaf4acad32015-11-03 20:16:18 +000038 return "int";
39 return "__int64";
Zachary Turneraa57c0a2015-02-26 23:51:49 +000040 case PDB_BuiltinType::Char:
Rui Ueyamaf4acad32015-11-03 20:16:18 +000041 return "char";
Zachary Turneraa57c0a2015-02-26 23:51:49 +000042 case PDB_BuiltinType::WCharT:
Rui Ueyamaf4acad32015-11-03 20:16:18 +000043 return "wchar_t";
Zachary Turneraa57c0a2015-02-26 23:51:49 +000044 case PDB_BuiltinType::Void:
Rui Ueyamaf4acad32015-11-03 20:16:18 +000045 return "void";
Zachary Turneraa57c0a2015-02-26 23:51:49 +000046 case PDB_BuiltinType::Long:
Rui Ueyamaf4acad32015-11-03 20:16:18 +000047 return "long";
Zachary Turneraa57c0a2015-02-26 23:51:49 +000048 case PDB_BuiltinType::ULong:
Rui Ueyamaf4acad32015-11-03 20:16:18 +000049 return "unsigned long";
Zachary Turneraa57c0a2015-02-26 23:51:49 +000050 case PDB_BuiltinType::Bool:
Rui Ueyamaf4acad32015-11-03 20:16:18 +000051 return "bool";
Zachary Turneraa57c0a2015-02-26 23:51:49 +000052 case PDB_BuiltinType::Currency:
Rui Ueyamaf4acad32015-11-03 20:16:18 +000053 return "CURRENCY";
Zachary Turneraa57c0a2015-02-26 23:51:49 +000054 case PDB_BuiltinType::Date:
Rui Ueyamaf4acad32015-11-03 20:16:18 +000055 return "DATE";
Zachary Turneraa57c0a2015-02-26 23:51:49 +000056 case PDB_BuiltinType::Variant:
Rui Ueyamaf4acad32015-11-03 20:16:18 +000057 return "VARIANT";
Zachary Turneraa57c0a2015-02-26 23:51:49 +000058 case PDB_BuiltinType::Complex:
Rui Ueyamaf4acad32015-11-03 20:16:18 +000059 return "complex";
Zachary Turneraa57c0a2015-02-26 23:51:49 +000060 case PDB_BuiltinType::Bitfield:
Rui Ueyamaf4acad32015-11-03 20:16:18 +000061 return "bitfield";
Zachary Turneraa57c0a2015-02-26 23:51:49 +000062 case PDB_BuiltinType::BSTR:
Rui Ueyamaf4acad32015-11-03 20:16:18 +000063 return "BSTR";
Zachary Turneraa57c0a2015-02-26 23:51:49 +000064 case PDB_BuiltinType::HResult:
Rui Ueyamaf4acad32015-11-03 20:16:18 +000065 return "HRESULT";
Zachary Turneraa57c0a2015-02-26 23:51:49 +000066 case PDB_BuiltinType::BCD:
Rui Ueyamaf4acad32015-11-03 20:16:18 +000067 return "HRESULT";
Zachary Turneraa57c0a2015-02-26 23:51:49 +000068 default:
Rui Ueyamaf4acad32015-11-03 20:16:18 +000069 return "void";
Zachary Turneraa57c0a2015-02-26 23:51:49 +000070 }
71}