summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZachary Turner <zturner@google.com>2018-10-01 22:39:19 +0000
committerZachary Turner <zturner@google.com>2018-10-01 22:39:19 +0000
commit93fc255b0c001cd5318c8903edfb0b36ed33f28e (patch)
treedd43c2af4f86a700072f285fdc91dbc2be72669a
parent4979eab40f9bbf690b8732f60fcad82b41694a5b (diff)
[PDB] Add support for more kinds of PDB Sym Tags.
DIA SDK is returning several new sym tag types, so we update the enumeration and printing code to support these.
-rw-r--r--llvm/include/llvm/DebugInfo/PDB/PDBTypes.h12
-rw-r--r--llvm/lib/DebugInfo/PDB/PDBExtras.cpp14
2 files changed, 25 insertions, 1 deletions
diff --git a/llvm/include/llvm/DebugInfo/PDB/PDBTypes.h b/llvm/include/llvm/DebugInfo/PDB/PDBTypes.h
index d1d7be6e6ed..6247018ce0f 100644
--- a/llvm/include/llvm/DebugInfo/PDB/PDBTypes.h
+++ b/llvm/include/llvm/DebugInfo/PDB/PDBTypes.h
@@ -210,6 +210,18 @@ enum class PDB_SymType {
CustomType,
ManagedType,
Dimension,
+ CallSite,
+ InlineSite,
+ BaseInterface,
+ VectorType,
+ MatrixType,
+ HLSLType,
+ Caller,
+ Callee,
+ Export,
+ HeapAllocationSite,
+ CoffGroup,
+ Inlinee,
Max
};
diff --git a/llvm/lib/DebugInfo/PDB/PDBExtras.cpp b/llvm/lib/DebugInfo/PDB/PDBExtras.cpp
index f3bd21dd8c4..0d8af232cd9 100644
--- a/llvm/lib/DebugInfo/PDB/PDBExtras.cpp
+++ b/llvm/lib/DebugInfo/PDB/PDBExtras.cpp
@@ -229,8 +229,20 @@ raw_ostream &llvm::pdb::operator<<(raw_ostream &OS, const PDB_SymType &Tag) {
CASE_OUTPUT_ENUM_CLASS_NAME(PDB_SymType, CustomType, OS)
CASE_OUTPUT_ENUM_CLASS_NAME(PDB_SymType, ManagedType, OS)
CASE_OUTPUT_ENUM_CLASS_NAME(PDB_SymType, Dimension, OS)
+ CASE_OUTPUT_ENUM_CLASS_NAME(PDB_SymType, CallSite, OS)
+ CASE_OUTPUT_ENUM_CLASS_NAME(PDB_SymType, InlineSite, OS)
+ CASE_OUTPUT_ENUM_CLASS_NAME(PDB_SymType, BaseInterface, OS)
+ CASE_OUTPUT_ENUM_CLASS_NAME(PDB_SymType, VectorType, OS)
+ CASE_OUTPUT_ENUM_CLASS_NAME(PDB_SymType, MatrixType, OS)
+ CASE_OUTPUT_ENUM_CLASS_NAME(PDB_SymType, HLSLType, OS)
+ CASE_OUTPUT_ENUM_CLASS_NAME(PDB_SymType, Caller, OS)
+ CASE_OUTPUT_ENUM_CLASS_NAME(PDB_SymType, Callee, OS)
+ CASE_OUTPUT_ENUM_CLASS_NAME(PDB_SymType, Export, OS)
+ CASE_OUTPUT_ENUM_CLASS_NAME(PDB_SymType, HeapAllocationSite, OS)
+ CASE_OUTPUT_ENUM_CLASS_NAME(PDB_SymType, CoffGroup, OS)
+ CASE_OUTPUT_ENUM_CLASS_NAME(PDB_SymType, Inlinee, OS)
default:
- OS << "Unknown";
+ OS << "Unknown SymTag " << uint32_t(Tag);
}
return OS;
}