/* { dg-options "-O2" } */ /* PR optimization/11536 */ /* Origin: samal@kam.mff.cuni.cz */ /* Testcase by Andrew Pinski */ /* Verify that the loop optimizer doesn't use moving targets to calculate the number of iterations of a loop. */ extern void abort(void); void foo(int) __attribute__((__noinline__)); void foo(int i) { abort(); } int main() { int i; int first= 0; int last= 0; while (last<3) { last = first; while (first<=last) { first++; for (i=0;i<3;i++) last++; if (last>10) return 0; } foo(first); } return 0; }