------- Comment #2 from pinskia at gcc dot gnu dot org 2006-10-13 03:34 ------- here is a shorter testcase: void f(void) { int i, ubound1, j, ubound5; int (*abc)[3]; i = 1; while (1) { if (j <= 3) while (1) { _Bool D917; if (i != j) { if (__builtin_expect (ubound1 <= 0, 0)) __builtin_abort (); (*abc)[1] = 0; } else { int D916; D916 = j; if (__builtin_expect (D916 > ubound1, 0)) __builtin_abort (); if (__builtin_expect (ubound5 <= 0, 0)) __builtin_abort (); } j = j + 1; if (D917) break; } i = i + 1; } }
-- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29446