[llvm-commits] [llvm] r139777 - /llvm/trunk/lib/DebugInfo/DWARFAbbreviationDeclaration.cpp

Benjamin Kramer benny.kra at googlemail.com
Wed Sep 14 21:00:58 PDT 2011


Author: d0k
Date: Wed Sep 14 23:00:58 2011
New Revision: 139777

URL: http://llvm.org/viewvc/llvm-project?rev=139777&view=rev
Log:
DWARF: Fail gracefully when encountering unknown values in an abbrev.

Modified:
    llvm/trunk/lib/DebugInfo/DWARFAbbreviationDeclaration.cpp

Modified: llvm/trunk/lib/DebugInfo/DWARFAbbreviationDeclaration.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/DWARFAbbreviationDeclaration.cpp?rev=139777&r1=139776&r2=139777&view=diff
==============================================================================
--- llvm/trunk/lib/DebugInfo/DWARFAbbreviationDeclaration.cpp (original)
+++ llvm/trunk/lib/DebugInfo/DWARFAbbreviationDeclaration.cpp Wed Sep 14 23:00:58 2011
@@ -47,11 +47,16 @@
 }
 
 void DWARFAbbreviationDeclaration::dump(raw_ostream &OS) const {
-  OS << '[' << getCode() << "] " << TagString(getTag()) << "\tDW_CHILDREN_"
+  const char *tagString = TagString(getTag());
+  OS << '[' << getCode() << "] " << (tagString ? tagString : "DW_TAG_Unknown")
+     << "\tDW_CHILDREN_"
      << (hasChildren() ? "yes" : "no") << '\n';
-  for (unsigned i = 0, e = Attributes.size(); i != e; ++i)
-    OS << '\t' << AttributeString(Attributes[i].getAttribute())
-       << '\t' << FormEncodingString(Attributes[i].getForm()) << '\n';
+  for (unsigned i = 0, e = Attributes.size(); i != e; ++i) {
+    const char *attrString = AttributeString(Attributes[i].getAttribute());
+    const char *formString = FormEncodingString(Attributes[i].getForm());
+    OS << '\t' << (attrString ? attrString : "DW_AT_Unknown")
+       << '\t' << (formString ? formString : "DW_FORM_Unknown") << '\n';
+  }
   OS << '\n';
 }
 





More information about the llvm-commits mailing list