summaryrefslogtreecommitdiff
path: root/lib/DebugInfo/PDB/PDBExtras.cpp
diff options
context:
space:
mode:
authorZachary Turner <zturner@google.com>2016-02-17 21:13:15 +0000
committerZachary Turner <zturner@google.com>2016-02-17 21:13:15 +0000
commitb1d416923e1698d2847f16ed065ae1c41149632d (patch)
tree7cf76150c2040230357356486170d962a240f357 /lib/DebugInfo/PDB/PDBExtras.cpp
parent432a2b022d9c10bb3949f9efa2e82d6995633982 (diff)
[DebugInfoPDB] Teach Variant to support string types.
The IDiaSymbol::getValue() method returns a variant. Until now, I had never encountered a string value, so the Variant wrapper did not support VT_BSTR. Now we have need to support string values, so this patch just adds support for one extra type to Variant. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@261152 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/DebugInfo/PDB/PDBExtras.cpp')
-rw-r--r--lib/DebugInfo/PDB/PDBExtras.cpp25
1 files changed, 14 insertions, 11 deletions
diff --git a/lib/DebugInfo/PDB/PDBExtras.cpp b/lib/DebugInfo/PDB/PDBExtras.cpp
index 29c0c32601d..52328db42c1 100644
--- a/lib/DebugInfo/PDB/PDBExtras.cpp
+++ b/lib/DebugInfo/PDB/PDBExtras.cpp
@@ -284,37 +284,40 @@ raw_ostream &llvm::operator<<(raw_ostream &OS, const PDB_UniqueId &Id) {
raw_ostream &llvm::operator<<(raw_ostream &OS, const Variant &Value) {
switch (Value.Type) {
case PDB_VariantType::Bool:
- OS << (Value.Bool ? "true" : "false");
+ OS << (Value.Value.Bool ? "true" : "false");
break;
case PDB_VariantType::Double:
- OS << Value.Double;
+ OS << Value.Value.Double;
break;
case PDB_VariantType::Int16:
- OS << Value.Int16;
+ OS << Value.Value.Int16;
break;
case PDB_VariantType::Int32:
- OS << Value.Int32;
+ OS << Value.Value.Int32;
break;
case PDB_VariantType::Int64:
- OS << Value.Int64;
+ OS << Value.Value.Int64;
break;
case PDB_VariantType::Int8:
- OS << static_cast<int>(Value.Int8);
+ OS << static_cast<int>(Value.Value.Int8);
break;
case PDB_VariantType::Single:
- OS << Value.Single;
+ OS << Value.Value.Single;
break;
case PDB_VariantType::UInt16:
- OS << Value.Double;
+ OS << Value.Value.Double;
break;
case PDB_VariantType::UInt32:
- OS << Value.UInt32;
+ OS << Value.Value.UInt32;
break;
case PDB_VariantType::UInt64:
- OS << Value.UInt64;
+ OS << Value.Value.UInt64;
break;
case PDB_VariantType::UInt8:
- OS << static_cast<unsigned>(Value.UInt8);
+ OS << static_cast<unsigned>(Value.Value.UInt8);
+ break;
+ case PDB_VariantType::String:
+ OS << Value.Value.String;
break;
default:
OS << Value.Type;