Add support for DW_FORM_dataN and DW_FORM_udata to the DIE hashing
[oota-llvm.git] / lib / CodeGen / AsmPrinter / DIEHash.cpp
index f0ab38c3d4ea37e970983b30c118b7e769b22324..1322743247eea959713259b7eb4594dabb425808 100644 (file)
@@ -119,6 +119,9 @@ void DIEHash::collectAttributes(DIE *Die, DIEAttrs &Attrs) {
     case dwarf::DW_AT_name:
       COLLECT_ATTR(DW_AT_name);
       break;
+    case dwarf::DW_AT_language:
+      COLLECT_ATTR(DW_AT_language);
+      break;
     default:
       break;
     }
@@ -145,6 +148,13 @@ void DIEHash::hashAttribute(AttrEntry Attr) {
   case dwarf::DW_FORM_strp:
     addString(cast<DIEString>(Value)->getString());
     break;
+  case dwarf::DW_FORM_data1:
+  case dwarf::DW_FORM_data2:
+  case dwarf::DW_FORM_data4:
+  case dwarf::DW_FORM_data8:
+  case dwarf::DW_FORM_udata:
+    addULEB128(cast<DIEInteger>(Value)->getValue());
+    break;
   }
 }
 
@@ -159,6 +169,7 @@ void DIEHash::hashAttributes(const DIEAttrs &Attrs) {
 
   // FIXME: Add the rest.
   ADD_ATTR(Attrs.DW_AT_name);
+  ADD_ATTR(Attrs.DW_AT_language);
 }
 
 // Add all of the attributes for \param Die to the hash.