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

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
This commit is contained in:
Eric Christopher 2013-07-22 21:54:33 +00:00 committed by Eric Christopher
parent 38ae58ca9f
commit 75a418785a
2 changed files with 16 additions and 2 deletions

View 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.

View 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]);