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