https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103182
Bug ID: 103182 Summary: [12 Regression] Recent change causes code correctness regression Product: gcc Version: 12.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: law at gcc dot gnu.org Target Milestone: --- This change: d70ef65692fced7ab72e0aceeff7407e5a34d96d is the first bad commit commit d70ef65692fced7ab72e0aceeff7407e5a34d96d Author: Jan Hubicka <j...@suse.cz> Date: Wed Nov 10 13:08:41 2021 +0100 Make EAF flags more regular (and expressive) I hoped that I am done with EAF flags related changes, but while looking into the Fortran testcases I noticed that I have designed them in unnecesarily restricted way. I followed the scheme of NOESCAPE and NODIRECTESCAPE which is however the only property tht is naturally transitive. This patch replaces the existing flags by 9 flags: [ ... ] Is causing gcc.dg/torture/pr45962-2.c to fail on or1k-elf and a few other platforms at -O2. You should be able to reproduce this with just a cross compiler since the .optimized dump after the change above just calls "foo" then aborts. The check for the value of i after the call to foo has been eliminated. There's a bit of dodgy code in foo() from an aliasing standpoint. I haven't looked at it real closely though.