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
This commit is contained in:
Jakub Jelinek 2011-10-03 22:09:56 +02:00 committed by Ian Lance Taylor
parent 586747fca1
commit 7617c0fdfb
2 changed files with 20 additions and 3 deletions

View File

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

View File

@ -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));