We no longer propagate &(*a)[0] into the dereference in int f(int *p, int n) { int (*a)[n] = (int (*)[n])p; int *q = &(*a)[0]; return q[1]; }
because 1) the C frontend decomposes &(*a)[0] into address arithmetic and 2) because of the fix for PR41317 we no longer fold (int *)a to &(*a)[0]. -- Summary: [4.5 Regression] XFAIL gcc.dg/tree-ssa/forwprop-1[12].c Product: gcc Version: 4.5.0 Status: UNCONFIRMED Keywords: missed-optimization, xfail Severity: normal Priority: P3 Component: tree-optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: rguenth at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41320