modernc.org/ccgo/v3@v3.16.14/lib/testdata/gcc-9.1.0/gcc/testsuite/gcc.c-torture/execute/20000715-1.c (about) 1 void abort(void); 2 void exit(int); 3 4 void 5 test1(void) 6 { 7 int x = 3, y = 2; 8 9 if ((x < y ? x++ : y++) != 2) 10 abort (); 11 12 if (x != 3) 13 abort (); 14 15 if (y != 3) 16 abort (); 17 } 18 19 void 20 test2(void) 21 { 22 int x = 3, y = 2, z; 23 24 z = (x < y) ? x++ : y++; 25 if (z != 2) 26 abort (); 27 28 if (x != 3) 29 abort (); 30 31 if (y != 3) 32 abort (); 33 } 34 35 void 36 test3(void) 37 { 38 int x = 3, y = 2; 39 int xx = 3, yy = 2; 40 41 if ((xx < yy ? x++ : y++) != 2) 42 abort (); 43 44 if (x != 3) 45 abort (); 46 47 if (y != 3) 48 abort (); 49 } 50 51 int x, y; 52 53 static void 54 init_xy(void) 55 { 56 x = 3; 57 y = 2; 58 } 59 60 void 61 test4(void) 62 { 63 init_xy(); 64 if ((x < y ? x++ : y++) != 2) 65 abort (); 66 67 if (x != 3) 68 abort (); 69 70 if (y != 3) 71 abort (); 72 } 73 74 void 75 test5(void) 76 { 77 int z; 78 79 init_xy(); 80 z = (x < y) ? x++ : y++; 81 if (z != 2) 82 abort (); 83 84 if (x != 3) 85 abort (); 86 87 if (y != 3) 88 abort (); 89 } 90 91 void 92 test6(void) 93 { 94 int xx = 3, yy = 2; 95 int z; 96 97 init_xy(); 98 z = (xx < y) ? x++ : y++; 99 if (z != 2) 100 abort (); 101 102 if (x != 3) 103 abort (); 104 105 if (y != 3) 106 abort (); 107 } 108 109 int 110 main(){ 111 test1 (); 112 test2 (); 113 test3 (); 114 test4 (); 115 test5 (); 116 test6 (); 117 exit (0); 118 }