http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47770
Summary: wrong code -O2 -ftree-loop-if-convert-stores -fno-tree-reassoc Product: gcc Version: 4.6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization AssignedTo: unassig...@gcc.gnu.org ReportedBy: zso...@seznam.cz CC: s...@gcc.gnu.org Host: x86_64-pc-linux-gnu Target: x86_64-pc-linux-gnu Created attachment 23365 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=23365 reduced testcase Output: $ gcc -O2 -ftree-loop-if-convert-stores -fno-tree-reassoc testcase.c $ ./a.out Aborted By looking that the dumps testcase.c.110t.ifcvt is "binary equal" to testcase.c.109t.ivcanon, but with -ftree-loop-if-convert-stores, testcase.c.126t.cddce2 removes most of code of foo(). Dumps with and without -ftree-loop-if-convert-stores are the same up to that point.