1 /* { dg-do run } */ 2 /* { dg-options "-O2" } */ 3 4 int func_pure (void) __attribute__ ((pure)); 5 void func_other (int); 6 int global_int; 7 void abort (); func_other(int a)8void func_other(int a) 9 { 10 if (a != global_int) 11 abort (); 12 global_int++; 13 } 14 func_pure(void)15int func_pure(void) 16 { 17 return global_int; 18 } 19 20 int func_loop(int arg)21func_loop (int arg) 22 { 23 // global_int ++; 24 while (arg--) 25 func_other (func_pure ()); 26 } 27 main(void)28int main(void) 29 { 30 func_loop(10); 31 return 0; 32 } 33