re PR middle-end/68067 (Wrong constant folding)
authorRichard Biener <rguenther@suse.de>
Wed, 28 Oct 2015 10:01:23 +0000 (10:01 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Wed, 28 Oct 2015 10:01:23 +0000 (10:01 +0000)
commit254b22cc79c594756343f645cbcf7163e39cf5b4
tree7ab6a96e8d54ebc23cadb2b7c7cab37e3c07e38a
parentaf7ff91b2425e201c00333f0343fd7e28297d8dc
re PR middle-end/68067 (Wrong constant folding)

2015-10-28  Richard Biener  <rguenther@suse.de>

PR middle-end/68067
* fold-const.c (negate_expr_p): We cannot negate plus or minus
if overflow is not wrapping.  Likewise multiplication unless
one operand is constant and not power of two.
(fold_negate_expr): Adjust accordingly.

* gcc.dg/torture/pr68067-1.c: New testcase.
* gcc.dg/torture/pr68067-2.c: Likewise.

From-SVN: r229479
gcc/ChangeLog
gcc/fold-const.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/torture/pr68067-1.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/torture/pr68067-2.c [new file with mode: 0644]