1 /* The bit-field below would have a problem if __INT_MAX__ is too 2 small. */ 3 #if __INT_MAX__ < 2147483647 4 int main(void)5main (void) 6 { 7 exit (0); 8 } 9 #else 10 struct S 11 { 12 int a:3; 13 unsigned b:1, c:28; 14 }; 15 16 struct S x = {1, 1, 1}; 17 main()18main () 19 { 20 x = (struct S) {b:0, a:0, c:({ struct S o = x; o.a == 1 ? 10 : 20;})}; 21 if (x.c != 10) 22 abort (); 23 exit (0); 24 } 25 #endif 26