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