From 4490f2dc1abb62b752577d02ce03623cd25dbe6f Mon Sep 17 00:00:00 2001 From: Zachary Turner Date: Thu, 26 Feb 2015 23:51:49 +0000 Subject: [PATCH] [llvm-pdbdump] Add missing files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@230704 91177308-0d34-0410-b5e6-96231b3b80d8 --- tools/llvm-pdbdump/BuiltinDumper.cpp | 80 ++++++++++++++++++++++++++++ tools/llvm-pdbdump/BuiltinDumper.h | 25 +++++++++ 2 files changed, 105 insertions(+) create mode 100644 tools/llvm-pdbdump/BuiltinDumper.cpp create mode 100644 tools/llvm-pdbdump/BuiltinDumper.h diff --git a/tools/llvm-pdbdump/BuiltinDumper.cpp b/tools/llvm-pdbdump/BuiltinDumper.cpp new file mode 100644 index 00000000000..753663fe155 --- /dev/null +++ b/tools/llvm-pdbdump/BuiltinDumper.cpp @@ -0,0 +1,80 @@ +//===- BuiltinDumper.cpp ---------------------------------------- *- C++ *-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#include "BuiltinDumper.h" +#include "llvm-pdbdump.h" + +#include "llvm/DebugInfo/PDB/PDBSymbolTypeBuiltin.h" + +using namespace llvm; + +BuiltinDumper::BuiltinDumper() : PDBSymDumper(false) {} + +void BuiltinDumper::start(const PDBSymbolTypeBuiltin &Symbol, + llvm::raw_ostream &OS) { + PDB_BuiltinType Type = Symbol.getBuiltinType(); + switch (Type) { + case PDB_BuiltinType::Float: + OS << ((Symbol.getLength() == 4) ? "float" : "double"); + break; + case PDB_BuiltinType::UInt: + OS << "unsigned"; + if (Symbol.getLength() == 8) + OS << " __int64"; + break; + case PDB_BuiltinType::Int: + OS << ((Symbol.getLength() == 4) ? "int" : "__int64"); + break; + case PDB_BuiltinType::Char: + OS << "char"; + break; + case PDB_BuiltinType::WCharT: + OS << "wchar_t"; + break; + case PDB_BuiltinType::Void: + OS << "void"; + break; + case PDB_BuiltinType::Long: + OS << "long"; + break; + case PDB_BuiltinType::ULong: + OS << "unsigned long"; + break; + case PDB_BuiltinType::Bool: + OS << "bool"; + break; + case PDB_BuiltinType::Currency: + OS << "CURRENCY"; + break; + case PDB_BuiltinType::Date: + OS << "DATE"; + break; + case PDB_BuiltinType::Variant: + OS << "VARIANT"; + break; + case PDB_BuiltinType::Complex: + OS << "complex"; + break; + case PDB_BuiltinType::Bitfield: + OS << "bitfield"; + break; + case PDB_BuiltinType::BSTR: + OS << "BSTR"; + break; + case PDB_BuiltinType::HResult: + OS << "HRESULT"; + break; + case PDB_BuiltinType::BCD: + OS << "HRESULT"; + break; + default: + OS << "(unknown builtin type)"; + break; + } +} diff --git a/tools/llvm-pdbdump/BuiltinDumper.h b/tools/llvm-pdbdump/BuiltinDumper.h new file mode 100644 index 00000000000..5e30fac779a --- /dev/null +++ b/tools/llvm-pdbdump/BuiltinDumper.h @@ -0,0 +1,25 @@ +//===- BuiltinDumper.h ---------------------------------------- *- C++ --*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_TOOLS_LLVMPDBDUMP_BUILTINDUMPER_H +#define LLVM_TOOLS_LLVMPDBDUMP_BUILTINDUMPER_H + +#include "llvm/DebugInfo/PDB/PDBSymDumper.h" + +namespace llvm { + +class BuiltinDumper : public PDBSymDumper { +public: + BuiltinDumper(); + + void start(const PDBSymbolTypeBuiltin &Symbol, llvm::raw_ostream &OS); +}; +} + +#endif -- 2.34.1