struct { int i; int j; int x[2]; } a; int foo(void) { a.i = 1; a.j = 0; a.x[0] = 5; return a.i + a.j; }
does not get optimized, because salias disables subvars for a because it contains an array. I have a simple patch in testing. -- Summary: array in struct disables salias subvars for other fields Product: gcc Version: 4.1.0 Status: UNCONFIRMED Keywords: missed-optimization, alias Severity: enhancement Priority: P2 Component: tree-optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: rguenth at gcc dot gnu dot org CC: gcc-bugs at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22555