// reduced testcase, compile with -O2. Also, with --disable-checking | |
// gcc produces wrong code. | |
void abort (void); | |
int i; | |
void g (void) | |
{ | |
i = 1; | |
} | |
void f (int a, int b) | |
{ | |
int c = 0; | |
if (a == 0) | |
c = 1; | |
if (c) | |
return; | |
if (c == 1) | |
c = 0; | |
if (b == 0) | |
c = 1; | |
if (c) | |
g (); | |
} | |
int main (void) | |
{ | |
f (1, 0); | |
if (i != 1) | |
abort (); | |
return 0; | |
} |