diff options
author | Jakub Jelinek <jakub@redhat.com> | 2011-10-03 22:09:56 +0200 |
---|---|---|
committer | Ian Lance Taylor <ian@gcc.gnu.org> | 2011-10-03 20:09:56 +0000 |
commit | 7617c0fdfb4ca6f833aaa84239924e1c7e156297 (patch) | |
tree | 888d28fcfa033ade41f546726d6cf136d8232083 | |
parent | 586747fca1b7a1faf6df62a0fb749976978fbee0 (diff) | |
download | gcc-7617c0fdfb4ca6f833aaa84239924e1c7e156297.zip gcc-7617c0fdfb4ca6f833aaa84239924e1c7e156297.tar.gz gcc-7617c0fdfb4ca6f833aaa84239924e1c7e156297.tar.bz2 |
godump.c (go_output_typedef): Support printing enum values that don't fit in a signed HOST_WIDE_INT.
* godump.c (go_output_typedef): Support printing enum values that
don't fit in a signed HOST_WIDE_INT.
Co-Authored-By: Ian Lance Taylor <iant@google.com>
From-SVN: r179477
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/godump.c | 17 |
2 files changed, 20 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 74839b7..2874c05 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2011-10-03 Jakub Jelinek <jakub@redhat.com> + Ian Lance Taylor <iant@google.com> + + * godump.c (go_output_typedef): Support printing enum values that + don't fit in a signed HOST_WIDE_INT. + 2011-10-03 Anatoly Sokolov <aesok@post.ru> * config/cris/cris.c (cris_output_addr_const_extra): Make static. diff --git a/gcc/godump.c b/gcc/godump.c index 11cd329..f9f767c 100644 --- a/gcc/godump.c +++ b/gcc/godump.c @@ -920,9 +920,20 @@ go_output_typedef (struct godump_container *container, tree decl) if (*slot == NULL) { *slot = CONST_CAST (char *, name); - fprintf (go_dump_file, - "const _%s = " HOST_WIDE_INT_PRINT_DEC "\n", - name, tree_low_cst (TREE_VALUE (element), 0)); + fprintf (go_dump_file, "const _%s = ", name); + if (host_integerp (TREE_VALUE (element), 0)) + fprintf (go_dump_file, HOST_WIDE_INT_PRINT_DEC, + tree_low_cst (TREE_VALUE (element), 0)); + else if (host_integerp (TREE_VALUE (element), 1)) + fprintf (go_dump_file, HOST_WIDE_INT_PRINT_UNSIGNED, + ((unsigned HOST_WIDE_INT) + tree_low_cst (TREE_VALUE (element), 1))); + else + fprintf (go_dump_file, HOST_WIDE_INT_PRINT_DOUBLE_HEX, + ((unsigned HOST_WIDE_INT) + TREE_INT_CST_HIGH (TREE_VALUE (element))), + TREE_INT_CST_LOW (TREE_VALUE (element))); + fprintf (go_dump_file, "\n"); } } pointer_set_insert (container->decls_seen, TREE_TYPE (decl)); |