1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
struct foo { unsigned : 12; unsigned field : 4; } foo; unsigned oldfoo; int bar (unsigned k) { oldfoo = foo.field; foo.field = k; if (k) return 1; return 2; } main () { if (bar (1U) != 1) abort (); exit (0); }