1 #include <stdlib.h>
2 
3 struct a
4 {
5   int a1[5];
6   union
7   {
8     int b1[5];
9     struct
10     {
11       int c1;
12       int c2;
13     } b2[4];
14   } a2[8];
15 };
16 
17 int i1 = 5;
18 int i2 = 2;
19 int i3 = 6;
20 int i4 = 0;
21 
22 int
23 main ()
24 {
25   volatile struct a *k = calloc (1, sizeof (struct a));
26   k->a2[i1].b1[i2] = k->a2[i3].b2[i4].c2;
27   free ((void *) k);
28   return 0;
29 }
30