summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoraph <aph@138bc75d-0d04-0410-961f-82ee72b054a4>2004-03-15 14:15:09 +0000
committeraph <aph@138bc75d-0d04-0410-961f-82ee72b054a4>2004-03-15 14:15:09 +0000
commit4cf8321fc8bda51da00a3810c1e9ca4c35f2408a (patch)
tree2e3e9a7701b78ac4926ee8312dbc2db3b3db8c7b
parentad46e1873a202fcf965730df59d18ee8e8c4de50 (diff)
downloadppe42-gcc-4cf8321fc8bda51da00a3810c1e9ca4c35f2408a.tar.gz
ppe42-gcc-4cf8321fc8bda51da00a3810c1e9ca4c35f2408a.zip
2004-03-12 Andrew Haley <aph@redhat.com>
PR java/14551 * typeck.c (convert): Clear TREE_OVERFLOW after an integer conversion. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@79493 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/java/ChangeLog6
-rw-r--r--gcc/java/typeck.c9
2 files changed, 14 insertions, 1 deletions
diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog
index 8b462313f59..f080725a1e2 100644
--- a/gcc/java/ChangeLog
+++ b/gcc/java/ChangeLog
@@ -1,3 +1,9 @@
+2004-03-12 Andrew Haley <aph@redhat.com>
+
+ PR java/14551
+ * typeck.c (convert): Clear TREE_OVERFLOW after an integer
+ conversion.
+
2004-02-29 Roger Sayle <roger@eyesopen.com>
* jcf-parse.c (java_parse_file): Handle the case that input_filename
diff --git a/gcc/java/typeck.c b/gcc/java/typeck.c
index 7537c6c4332..d52afd23562 100644
--- a/gcc/java/typeck.c
+++ b/gcc/java/typeck.c
@@ -137,7 +137,14 @@ convert (tree type, tree expr)
&& TARGET_FLOAT_FORMAT == IEEE_FLOAT_FORMAT)
return fold (convert_ieee_real_to_integer (type, expr));
else
- return fold (convert_to_integer (type, expr));
+ {
+ /* fold very helpfully sets the overflow status if a type
+ overflows in a narrowing integer conversion, but Java
+ doesn't care. */
+ tree tmp = fold (convert_to_integer (type, expr));
+ TREE_OVERFLOW (tmp) = 0;
+ return tmp;
+ }
}
if (code == REAL_TYPE)
return fold (convert_to_real (type, expr));
OpenPOWER on IntegriCloud