summaryrefslogtreecommitdiffstats
path: root/toolchain/gcc/patches/4.1.2/010-pr34130.patch
blob: bc959cb730f62d5aa176664a4f52df4e5fe936cf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
--- a/gcc/fold-const.c
+++ b/gcc/fold-const.c
@@ -5339,7 +5339,10 @@ extract_muldiv_1 (tree t, tree c, enum t
             }
           break;
         }
-      /* FALLTHROUGH */
+   /* If the constant is negative, we cannot simplify this.  */
+   if (tree_int_cst_sgn (c) == -1)
+     break;
+   /* FALLTHROUGH */
     case NEGATE_EXPR:
       if ((t1 = extract_muldiv (op0, c, code, wide_type)) != 0)
 	return fold_build1 (tcode, ctype, fold_convert (ctype, t1));