[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