------- Comment #1 from rguenth at gcc dot gnu dot org 2008-08-13 09:53 ------- -fno-unswitch-loops fixes the original testcase but not the following which only fails _with_ -O3 -fno-unswitch-loops.
extern void abort (void); unsigned int g_24; unsigned int g_37 = 1; unsigned int g_225 = 0; int main () { unsigned int l_289; for (l_289 = 1; l_289 < 5; l_289 += 1) { if (g_225) { g_24 = g_37; } } g_24 = g_37; unsigned int context = g_24 << 1; do { if (context) context = (context << 1) ^ 1; } while (0); if (context != 5) abort (); return 0; } -- rguenth at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |rguenth at gcc dot gnu dot | |org Status|UNCONFIRMED |NEW Component|c |tree-optimization Ever Confirmed|0 |1 GCC build triplet|i686-pc-linux-gnu | GCC host triplet|i686-pc-linux-gnu | GCC target triplet|i686-pc-linux-gnu | Keywords| |wrong-code Known to fail| |4.3.1 4.4.0 Known to work| |4.2.4 Last reconfirmed|0000-00-00 00:00:00 |2008-08-13 09:53:31 date| | Summary|possible integer codegen bug|[4.3/4.4 Regression] | |possible integer codegen bug Target Milestone|--- |4.3.2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37102