[Bug middle-end/48819] [4.7 regression] 350 execution failures in 64-bit libjava testsuite on SPARC
rguenth at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Apr 29 10:46:00 GMT 2011
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48819
--- Comment #5 from Richard Guenther <rguenth at gcc dot gnu.org> 2011-04-29 10:44:54 UTC ---
Issues may arise if build_int_cst is called with NULL_TREE and the value
is using all HOST_WIDE_INT bits (I suppose 64 on sparc-sun-solaris2?) but
integer_type_node has less precision.
Java maintainers, please go over build_int_cst (NULL_TREE, ...) users
and replace NULL_TREE with an appropriate type. Using size_int (...)
might be a good idea in some places (wtf get_tag_node ...).
I'm not sure what _CD_ArrayStore is.
If the patch helps the following should point to the bug in the Java frontend:
Index: tree.c
===================================================================
--- tree.c (revision 173151)
+++ tree.c (working copy)
@@ -1019,7 +1019,12 @@ build_int_cst (tree type, HOST_WIDE_INT
{
/* Support legacy code. */
if (!type)
- type = integer_type_node;
+ {
+ double_int a = shwi_to_double_int (low);
+ double_int b = double_int_sext (a, TYPE_PRECISION (integer_type_node));
+ gcc_assert (double_int_equal_p (a, b));
+ return build_int_cst_wide (integer_type_node, low, low < 0 ? -1 : 0);
+ }
return double_int_to_tree (type, shwi_to_double_int (low));
}
More information about the Gcc-bugs
mailing list