dwarf2out.c (die_odr_checksum): New function to use CHECKSUM_ macros and ULEB128...
authorEric Christopher <echristo@gmail.com>
Mon, 22 Jul 2013 21:54:33 +0000 (21:54 +0000)
committerEric Christopher <echristo@gcc.gnu.org>
Mon, 22 Jul 2013 21:54:33 +0000 (21:54 +0000)
2013-07-22  Eric Christopher  <echristo@gmail.com>

    * dwarf2out.c (die_odr_checksum): New function to use
    CHECKSUM_ macros and ULEB128 for DIE tag.
    (generate_type_signature): Use.

From-SVN: r201148

gcc/ChangeLog
gcc/dwarf2out.c

index 6999d3f..8613ff5 100644 (file)
@@ -1,3 +1,9 @@
+2013-07-22  Eric Christopher  <echristo@gmail.com>
+
+       * dwarf2out.c (die_odr_checksum): New function to use
+       CHECKSUM_ macros and ULEB128 for DIE tag.
+       (generate_type_signature): Use.
+       
 2013-07-22  Eric Botcazou  <ebotcazou@adacore.com>
 
        * config.gcc (sparc*-*-*): Accept leon3 processor.
index c341763..87f9644 100644 (file)
@@ -6103,6 +6103,14 @@ die_checksum_ordered (dw_die_ref die, struct md5_ctx *ctx, int *mark)
   CHECKSUM_ULEB128 (0);
 }
 
+/* Add a type name and tag to a hash.  */
+static void
+die_odr_checksum (int tag, const char *name, md5_ctx *ctx)
+{
+  CHECKSUM_ULEB128 (tag);
+  CHECKSUM_STRING (name);
+}
+
 #undef CHECKSUM
 #undef CHECKSUM_STRING
 #undef CHECKSUM_ATTR
@@ -6143,8 +6151,8 @@ generate_type_signature (dw_die_ref die, comdat_type_node *type_node)
       if (parent != NULL)
         checksum_die_context (parent, &ctx);
 
-      md5_process_bytes (&die->die_tag, sizeof (die->die_tag), &ctx);
-      md5_process_bytes (name, strlen (name) + 1, &ctx);
+      /* Checksum the current DIE. */
+      die_odr_checksum (die->die_tag, name, &ctx);
       md5_finish_ctx (&ctx, checksum);
 
       add_AT_data8 (type_node->root_die, DW_AT_GNU_odr_signature, &checksum[8]);