struct X { int i; int j; }; void bar (struct X *); int foo (struct X *p) { struct X x; p->i = 1; x = *p; x.j = 2; return p->i - x.i; }
this should be optimized to return zero. -fno-tree-sra required to show the missed optimization. -- Summary: SCCVN should look through struct copies Product: gcc Version: 4.4.0 Status: UNCONFIRMED Keywords: missed-optimization 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=36327