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