/* PR tree-optimization/18694 The dominator optimization didn't take the PHI evaluation order into account when threading an edge. */ extern void abort (void) __attribute__((noreturn)); extern void exit (int) __attribute__((noreturn)); void __attribute__((noinline)) foo (int i) { int next_n = 1; int j = 0; for (; i != 0; i--) { int n; for (n = next_n; j < n; j++) next_n++; if (j != n) abort (); } } int main (void) { foo (2); exit (0); }