summaryrefslogtreecommitdiffstats
path: root/llvm/lib/DebugInfo/CodeView
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/DebugInfo/CodeView')
-rw-r--r--llvm/lib/DebugInfo/CodeView/TypeDumper.cpp15
-rw-r--r--llvm/lib/DebugInfo/CodeView/TypeRecord.cpp4
2 files changed, 19 insertions, 0 deletions
diff --git a/llvm/lib/DebugInfo/CodeView/TypeDumper.cpp b/llvm/lib/DebugInfo/CodeView/TypeDumper.cpp
index 72e0e44ce26..74cb2d9e9c4 100644
--- a/llvm/lib/DebugInfo/CodeView/TypeDumper.cpp
+++ b/llvm/lib/DebugInfo/CodeView/TypeDumper.cpp
@@ -209,6 +209,7 @@ public:
#include "llvm/DebugInfo/CodeView/TypeRecords.def"
void visitUnknownMember(TypeLeafKind Leaf);
+ void visitUnknownType(TypeLeafKind Leaf, ArrayRef<uint8_t> LeafData);
void visitTypeBegin(TypeLeafKind Leaf, ArrayRef<uint8_t> LeafData);
void visitTypeEnd(TypeLeafKind Leaf, ArrayRef<uint8_t> LeafData);
@@ -493,6 +494,13 @@ void CVTypeDumperImpl::visitModifier(TypeLeafKind Leaf, ModifierRecord &Mod) {
Name = CVTD.saveName(TypeName);
}
+void CVTypeDumperImpl::visitBitField(TypeLeafKind Leaf,
+ BitFieldRecord &BitField) {
+ printTypeIndex("Type", BitField.getType());
+ W.printNumber("BitSize", BitField.getBitSize());
+ W.printNumber("BitOffset", BitField.getBitOffset());
+}
+
void CVTypeDumperImpl::visitVFTableShape(TypeLeafKind Leaf,
VFTableShapeRecord &Shape) {
W.printNumber("VFEntryCount", Shape.getEntryCount());
@@ -538,6 +546,13 @@ void CVTypeDumperImpl::visitUnknownMember(TypeLeafKind Leaf) {
W.printHex("UnknownMember", unsigned(Leaf));
}
+void CVTypeDumperImpl::visitUnknownType(TypeLeafKind Leaf,
+ ArrayRef<uint8_t> RecordData) {
+ DictScope S(W, "UnknownType");
+ W.printEnum("Kind", uint16_t(Leaf), makeArrayRef(LeafTypeNames));
+ W.printNumber("Length", uint32_t(RecordData.size()));
+}
+
void CVTypeDumperImpl::visitNestedType(TypeLeafKind Leaf,
NestedTypeRecord &Nested) {
DictScope S(W, "NestedType");
diff --git a/llvm/lib/DebugInfo/CodeView/TypeRecord.cpp b/llvm/lib/DebugInfo/CodeView/TypeRecord.cpp
index 57cd5b7e264..e9782978535 100644
--- a/llvm/lib/DebugInfo/CodeView/TypeRecord.cpp
+++ b/llvm/lib/DebugInfo/CodeView/TypeRecord.cpp
@@ -105,6 +105,10 @@ bool EnumRecord::remapTypeIndices(ArrayRef<TypeIndex> IndexMap) {
return Success;
}
+bool BitFieldRecord::remapTypeIndices(ArrayRef<TypeIndex> IndexMap) {
+ return remapIndex(IndexMap, Type);
+}
+
bool VFTableShapeRecord::remapTypeIndices(ArrayRef<TypeIndex> IndexMap) {
return true;
}
OpenPOWER on IntegriCloud