OSDN Git Service

2004-03-12 Andrew Haley <aph@redhat.com>
authoraph <aph@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 15 Mar 2004 14:15:09 +0000 (14:15 +0000)
committeraph <aph@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 15 Mar 2004 14:15:09 +0000 (14:15 +0000)
        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

gcc/java/ChangeLog
gcc/java/typeck.c

index 8b46231..f080725 100644 (file)
@@ -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
index 7537c6c..d52afd2 100644 (file)
@@ -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));