http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49516
Summary: SRA generates memory references into its replacements Product: gcc Version: 4.7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization AssignedTo: unassig...@gcc.gnu.org ReportedBy: jamb...@gcc.gnu.org When SRA tries to modify an assignment where on one side it should put one new scalar replacement but the other is actually an aggregate with a number of replacements for it, it will generate a MEM-REF into the former replacement which can lead to miscompilations. Originally reported here by Xinliang David Li: http://gcc.gnu.org/ml/gcc-patches/2011-06/msg01380.html I have only slightly changed the original testcase so that it does not require any includes and will attach it shortly.