42 lines
653 B
C
42 lines
653 B
C
/* { dg-options "-O2" } */
|
|
/* PR optimization/11536 */
|
|
/* Origin: samal@kam.mff.cuni.cz <samal@kam.mff.cuni.cz> */
|
|
/* Testcase by Andrew Pinski <pinskia@physics.uc.edu> */
|
|
|
|
/* 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;
|
|
}
|