Fix pr20078.
[oota-llvm.git] / lib / DebugInfo / DWARFDebugInfoEntry.cpp
index 2e7a54aeb858b7c7001e3136829ad003433f7d9f..aaca666be84d7337fa0310f249ee0fd8f18afcec 100644 (file)
@@ -86,7 +86,19 @@ void DWARFDebugInfoEntryMinimal::dumpAttribute(raw_ostream &OS,
     return;
 
   OS << "\t(";
-  formValue.dump(OS, u);
+  
+  const char *Name = nullptr;
+  if (Optional<uint64_t> Val = formValue.getAsUnsignedConstant())
+    Name = AttributeValueString(attr, *Val);
+
+  if (Name) {
+    OS << Name;
+  } else if (attr == DW_AT_decl_line || attr == DW_AT_call_line) {
+    OS << *formValue.getAsUnsignedConstant();
+  } else {
+    formValue.dump(OS, u);
+  }
+
   OS << ")\n";
 }