void abort(void); void exit(int); void test1(void) { int x = 3, y = 2; if ((x < y ? x++ : y++) != 2) abort (); if (x != 3) abort (); if (y != 3) abort (); } void test2(void) { int x = 3, y = 2, z; z = (x < y) ? x++ : y++; if (z != 2) abort (); if (x != 3) abort (); if (y != 3) abort (); } void test3(void) { int x = 3, y = 2; int xx = 3, yy = 2; if ((xx < yy ? x++ : y++) != 2) abort (); if (x != 3) abort (); if (y != 3) abort (); } int x, y; static void init_xy(void) { x = 3; y = 2; } void test4(void) { init_xy(); if ((x < y ? x++ : y++) != 2) abort (); if (x != 3) abort (); if (y != 3) abort (); } void test5(void) { int z; init_xy(); z = (x < y) ? x++ : y++; if (z != 2) abort (); if (x != 3) abort (); if (y != 3) abort (); } void test6(void) { int xx = 3, yy = 2; int z; init_xy(); z = (xx < y) ? x++ : y++; if (z != 2) abort (); if (x != 3) abort (); if (y != 3) abort (); } int main(){ test1 (); test2 (); test3 (); test4 (); test5 (); test6 (); exit (0); }