// { dg-do compile } // { dg-options "-O -fdump-tree-cddce1" } struct S { int s; }; S a[1024]; void foo () { for (int i = 0; i < 1024; i++) { S &r = a[i]; r.s++; } } // We should propagate the reference into both memory accesses // during the first forwprop pass // { dg-final { scan-tree-dump-times "= &a" 0 "cddce1" } } // { dg-final { cleanup-tree-dump "cddce1" } }