summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-pdbdump/PrettyBuiltinDumper.cpp
diff options
context:
space:
mode:
authorZachary Turner <zturner@google.com>2017-01-11 00:35:43 +0000
committerZachary Turner <zturner@google.com>2017-01-11 00:35:43 +0000
commita9054ddd9ccf8d1a94b4c2a8966bcf44874311ae (patch)
tree73ac0a5c658355fa30ae9ed3ddce06efa8d0e2d8 /llvm/tools/llvm-pdbdump/PrettyBuiltinDumper.cpp
parentc640b76db50f5b0593ddd4a2387ffb93296d266f (diff)
downloadbcm5719-llvm-a9054ddd9ccf8d1a94b4c2a8966bcf44874311ae.tar.gz
bcm5719-llvm-a9054ddd9ccf8d1a94b4c2a8966bcf44874311ae.zip
[CodeView/PDB] Rename a bunch of files.
We were starting to get some name clashes between llvm-pdbdump and the common CodeView framework, so I took this opportunity to rename a bunch of files to more accurately describe their usage. This also helps in llvm-pdbdump to distinguish between different files and whether they are used for pretty dump mode or raw dump mode. llvm-svn: 291627
Diffstat (limited to 'llvm/tools/llvm-pdbdump/PrettyBuiltinDumper.cpp')
-rw-r--r--llvm/tools/llvm-pdbdump/PrettyBuiltinDumper.cpp90
1 files changed, 90 insertions, 0 deletions
diff --git a/llvm/tools/llvm-pdbdump/PrettyBuiltinDumper.cpp b/llvm/tools/llvm-pdbdump/PrettyBuiltinDumper.cpp
new file mode 100644
index 00000000000..f866132aa88
--- /dev/null
+++ b/llvm/tools/llvm-pdbdump/PrettyBuiltinDumper.cpp
@@ -0,0 +1,90 @@
+//===- PrettyBuiltinDumper.cpp ---------------------------------- *- C++ *-===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#include "PrettyBuiltinDumper.h"
+#include "LinePrinter.h"
+#include "llvm-pdbdump.h"
+
+#include "llvm/DebugInfo/PDB/PDBSymbolTypeBuiltin.h"
+
+using namespace llvm;
+using namespace llvm::pdb;
+
+BuiltinDumper::BuiltinDumper(LinePrinter &P)
+ : PDBSymDumper(false), Printer(P) {}
+
+void BuiltinDumper::start(const PDBSymbolTypeBuiltin &Symbol) {
+ WithColor(Printer, PDB_ColorItem::Type).get() << getTypeName(Symbol);
+}
+
+StringRef BuiltinDumper::getTypeName(const PDBSymbolTypeBuiltin &Symbol) {
+ PDB_BuiltinType Type = Symbol.getBuiltinType();
+ switch (Type) {
+ case PDB_BuiltinType::Float:
+ if (Symbol.getLength() == 4)
+ return "float";
+ return "double";
+ case PDB_BuiltinType::UInt:
+ switch (Symbol.getLength()) {
+ case 8:
+ return "unsigned __int64";
+ case 4:
+ return "unsigned int";
+ case 2:
+ return "unsigned short";
+ case 1:
+ return "unsigned char";
+ default:
+ return "unsigned";
+ }
+ case PDB_BuiltinType::Int:
+ switch (Symbol.getLength()) {
+ case 8:
+ return "__int64";
+ case 4:
+ return "int";
+ case 2:
+ return "short";
+ case 1:
+ return "char";
+ default:
+ return "int";
+ }
+ case PDB_BuiltinType::Char:
+ return "char";
+ case PDB_BuiltinType::WCharT:
+ return "wchar_t";
+ case PDB_BuiltinType::Void:
+ return "void";
+ case PDB_BuiltinType::Long:
+ return "long";
+ case PDB_BuiltinType::ULong:
+ return "unsigned long";
+ case PDB_BuiltinType::Bool:
+ return "bool";
+ case PDB_BuiltinType::Currency:
+ return "CURRENCY";
+ case PDB_BuiltinType::Date:
+ return "DATE";
+ case PDB_BuiltinType::Variant:
+ return "VARIANT";
+ case PDB_BuiltinType::Complex:
+ return "complex";
+ case PDB_BuiltinType::Bitfield:
+ return "bitfield";
+ case PDB_BuiltinType::BSTR:
+ return "BSTR";
+ case PDB_BuiltinType::HResult:
+ return "HRESULT";
+ case PDB_BuiltinType::BCD:
+ return "HRESULT";
+ default:
+ return "void";
+ }
+}
OpenPOWER on IntegriCloud