https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67443
--- Comment #24 from Richard Biener <rguenth at gcc dot gnu.org> --- Author: rguenth Date: Wed Nov 18 12:23:14 2015 New Revision: 230542 URL: https://gcc.gnu.org/viewcvs?rev=230542&root=gcc&view=rev Log: 2015-11-18 Richard Biener <rguent...@suse.de> Backport from mainline 2015-10-28 Richard Biener <rguent...@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. 2015-10-26 Richard Biener <rguent...@suse.de> Dominik Vogt <v...@linux.vnet.ibm.com> PR middle-end/67443 * alias.c (ao_ref_from_mem): Remove promoted subreg handling. Properly prune ref->ref for accesses outside of ref. * gcc.target/s390/pr67443.c: New testcase. 2015-10-20 Richard Biener <rguent...@suse.de> PR tree-optimization/68017 * tree-tailcall.c (eliminate_tail_call): Remove stmts backwards. * gcc.dg/torture/pr68017.c: New testcase. 2015-09-23 Richard Biener <rguent...@suse.de> PR middle-end/67662 * fold-const.c (fold_binary_loc): Do not reassociate two vars with undefined overflow unless they will cancel out. * gcc.dg/ubsan/pr67662.c: New testcase. Added: branches/gcc-5-branch/gcc/testsuite/gcc.dg/torture/pr68017.c branches/gcc-5-branch/gcc/testsuite/gcc.dg/torture/pr68067-1.c branches/gcc-5-branch/gcc/testsuite/gcc.dg/torture/pr68067-2.c branches/gcc-5-branch/gcc/testsuite/gcc.dg/ubsan/pr67662.c branches/gcc-5-branch/gcc/testsuite/gcc.target/s390/pr67443.c Modified: branches/gcc-5-branch/gcc/ChangeLog branches/gcc-5-branch/gcc/alias.c branches/gcc-5-branch/gcc/fold-const.c branches/gcc-5-branch/gcc/testsuite/ChangeLog branches/gcc-5-branch/gcc/tree-tailcall.c