[llvm-commits] [llvm-gcc-4.2] r41271 - /llvm-gcc-4.2/trunk/gcc/fold-const.c

Duncan Sands baldrick at free.fr
Wed Aug 22 07:40:59 PDT 2007


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.  */





More information about the llvm-commits mailing list