1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
struct x { unsigned x1:1; unsigned x2:2; unsigned x3:3; }; foobar (int x, int y, int z) { struct x a = {x, y, z}; struct x b = {x, y, z}; struct x *c = &b; c->x3 += (a.x2 - a.x1) * c->x2; if (a.x1 != 1 || c->x3 != 5) abort (); exit (0); } main() { foobar (1, 2, 3); }