1 typedef union {
2   long l;
3   struct { char b3, b2, b1, b0; } c;
4 } T;
5 
f(T u)6 f (T u)
7 {
8   ++u.c.b0;
9   ++u.c.b3;
10   return (u.c.b1 != 2 || u.c.b2 != 2);
11 }
12 
main()13 main ()
14 {
15   T u;
16   u.c.b1 = 2;
17   u.c.b2 = 2;
18   u.c.b0 = ~0;
19   u.c.b3 = ~0;
20   if (f (u))
21     abort();
22   exit (0);
23 }
24