[llvm] r193089 - DebugInfo: Hash DW_FORM_GNU_str_index as a string.

David Blaikie dblaikie at gmail.com
Mon Oct 21 09:37:23 PDT 2013


Author: dblaikie
Date: Mon Oct 21 11:37:22 2013
New Revision: 193089

URL: http://llvm.org/viewvc/llvm-project?rev=193089&view=rev
Log:
DebugInfo: Hash DW_FORM_GNU_str_index as a string.

Found while adding type safety to the various DWARF enumerations (form,
attribute, tag, etc) that caused Clang to warn on an incompletely
covered switch. Converting the comment to a default/unreachable
uncovered this case of an unsupported form encoding. Seems we were
skipping fission strings entirely.

Modified:
    llvm/trunk/lib/CodeGen/AsmPrinter/DIEHash.cpp
    llvm/trunk/test/DebugInfo/X86/fission-hash.ll

Modified: llvm/trunk/lib/CodeGen/AsmPrinter/DIEHash.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/DIEHash.cpp?rev=193089&r1=193088&r2=193089&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/AsmPrinter/DIEHash.cpp (original)
+++ llvm/trunk/lib/CodeGen/AsmPrinter/DIEHash.cpp Mon Oct 21 11:37:22 2013
@@ -230,6 +230,7 @@ void DIEHash::hashAttribute(AttrEntry At
   case dwarf::DW_FORM_string:
     llvm_unreachable(
         "Add support for DW_FORM_string if we ever start emitting them again");
+  case dwarf::DW_FORM_GNU_str_index:
   case dwarf::DW_FORM_strp:
     addULEB128(dwarf::DW_FORM_string);
     addString(cast<DIEString>(Value)->getString());
@@ -242,7 +243,8 @@ void DIEHash::hashAttribute(AttrEntry At
     addULEB128(dwarf::DW_FORM_sdata);
     addSLEB128((int64_t)cast<DIEInteger>(Value)->getValue());
     break;
-  // TODO: Add support for additional forms.
+  default:
+    llvm_unreachable("Add support for additional forms");
   }
 }
 

Modified: llvm/trunk/test/DebugInfo/X86/fission-hash.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/X86/fission-hash.ll?rev=193089&r1=193088&r2=193089&view=diff
==============================================================================
--- llvm/trunk/test/DebugInfo/X86/fission-hash.ll (original)
+++ llvm/trunk/test/DebugInfo/X86/fission-hash.ll Mon Oct 21 11:37:22 2013
@@ -3,8 +3,8 @@
 
 ; The source is an empty file.
 
-; CHECK: DW_AT_GNU_dwo_id [DW_FORM_data8] (0x63fc20b98dd69e2d)
-; CHECK: DW_AT_GNU_dwo_id [DW_FORM_data8] (0x63fc20b98dd69e2d)
+; CHECK: DW_AT_GNU_dwo_id [DW_FORM_data8] (0x0c1e629c9e5ada4f)
+; CHECK: DW_AT_GNU_dwo_id [DW_FORM_data8] (0x0c1e629c9e5ada4f)
 
 !llvm.dbg.cu = !{!0}
 !llvm.module.flags = !{!3}





More information about the llvm-commits mailing list