1 /* { dg-do run } */ 2 /* { dg-options "-O2" } */ 3 4 int func_pure (void); 5 void func_other (int); 6 int global_int; func_pure(void)7int func_pure (void) { return global_int; } func_other(int a)8void func_other (int a) 9 { 10 global_int = a + 1; 11 } f(void)12int f(void) 13 { 14 int a; 15 a = func_pure(); 16 func_other (a); 17 a = func_pure (); // We were removing this function call 18 return a; 19 } 20 void abort (void); 21 main(void)22int main(void) 23 { 24 global_int = 10; 25 if (f() != 11) 26 abort (); 27 return 0; 28 } 29