Author: baldrick
Date: Wed Aug 22 09:40:59 2007
New Revision: 41271

URL: http://llvm.org/viewvc/llvm-project?rev=41271&view=rev
Log:
Make sure that the overflow flag is not lost.

Modified:
    llvm-gcc-4.2/trunk/gcc/fold-const.c

Modified: llvm-gcc-4.2/trunk/gcc/fold-const.c
URL: 
http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/fold-const.c?rev=41271&r1=41270&r2=41271&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/fold-const.c (original)
+++ llvm-gcc-4.2/trunk/gcc/fold-const.c Wed Aug 22 09:40:59 2007
@@ -1890,12 +1890,21 @@
   if (TREE_CODE (arg0) == INTEGER_CST && TREE_CODE (arg1) == INTEGER_CST)
     {
       /* And some specific cases even faster than that.  */
-      if (code == PLUS_EXPR && integer_zerop (arg0))
+/* LLVM local begin */
+      if (code == PLUS_EXPR && integer_zerop (arg0)
+         && !TREE_OVERFLOW (arg0))
+/* LLVM local end */
        return arg1;
       else if ((code == MINUS_EXPR || code == PLUS_EXPR)
-              && integer_zerop (arg1))
+/* LLVM local begin */
+              && integer_zerop (arg1)
+              && !TREE_OVERFLOW (arg1))
+/* LLVM local end */
        return arg0;
-      else if (code == MULT_EXPR && integer_onep (arg0))
+/* LLVM local begin */
+      else if (code == MULT_EXPR && integer_onep (arg0)
+              && !TREE_OVERFLOW (arg0))
+/* LLVM local end */
        return arg1;
 
       /* Handle general case of two integer constants.  */


_______________________________________________
llvm-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits

Reply via email to