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

Reply via email to