int x; void foo (void) { if (x == 0) x = 0; }
was optimized into empty routine with gcc 3.4 and 4.0, but isn't any longer in 4.1+. In 4.0 apparently the store went away in *.optimized, and with -fno-tree-ter in ce1+combine removed it. This occurs quite a lot in http://embed.cs.utah.edu/embarrassing/ -- Summary: [4.3/4.4/4.5/4.6 Regression] Useless store not optimized away Product: gcc Version: 4.6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: middle-end AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: jakub at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45705