1 // reduced testcase, compile with -O2. Also, with --disable-checking 2 // gcc produces wrong code. 3 4 void abort (void); 5 int i; 6 g(void)7void g (void) 8 { 9 i = 1; 10 } 11 f(int a,int b)12void f (int a, int b) 13 { 14 int c = 0; 15 if (a == 0) 16 c = 1; 17 if (c) 18 return; 19 if (c == 1) 20 c = 0; 21 if (b == 0) 22 c = 1; 23 if (c) 24 g (); 25 } 26 main(void)27int main (void) 28 { 29 f (1, 0); 30 if (i != 1) 31 abort (); 32 return 0; 33 } 34