modernc.org/ccgo/v3@v3.16.14/lib/testdata/gcc-9.1.0/gcc/testsuite/gcc.c-torture/execute/20021204-1.c (about) 1 /* This test was miscompiled when using sibling call optimization, 2 because X ? Y : Y - 1 optimization changed X into !X in place 3 and haven't reverted it if do_store_flag was successful, so 4 when expanding the expression the second time it was 5 !X ? Y : Y - 1. */ 6 7 extern void abort (void); 8 extern void exit (int); 9 10 void foo (int x) 11 { 12 if (x != 1) 13 abort (); 14 } 15 16 int z; 17 18 int main (int argc, char **argv) 19 { 20 char *a = "test"; 21 char *b = a + 2; 22 23 foo (z > 0 ? b - a : b - a - 1); 24 exit (0); 25 }