diff options
author | Eric Christopher <echristo@gmail.com> | 2013-07-22 21:54:33 +0000 |
---|---|---|
committer | Eric Christopher <echristo@gcc.gnu.org> | 2013-07-22 21:54:33 +0000 |
commit | 75a418785a223a0efa41824bf55826271a4ddde6 (patch) | |
tree | 4dde03da694b2ad00265488cda73bcc32342639b /gcc/dwarf2out.c | |
parent | 38ae58ca9fd17ebf4fe679fe7a91472f5d6c37b1 (diff) | |
download | gcc-75a418785a223a0efa41824bf55826271a4ddde6.zip gcc-75a418785a223a0efa41824bf55826271a4ddde6.tar.gz gcc-75a418785a223a0efa41824bf55826271a4ddde6.tar.bz2 |
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
Diffstat (limited to 'gcc/dwarf2out.c')
-rw-r--r-- | gcc/dwarf2out.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c index c341763..87f9644 100644 --- a/gcc/dwarf2out.c +++ b/gcc/dwarf2out.c @@ -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]); |