1 struct S
2 {
3   int *sp, fc, *sc, a[2];
4 };
5 
f(struct S * x)6 f (struct S *x)
7 {
8   int *t = x->sc;
9   int t1 = t[0];
10   int t2 = t[1];
11   int t3 = t[2];
12   int a0 = x->a[0];
13   int a1 = x->a[1];
14   t[2] = t1;
15   t[0] = a1;
16   x->a[1] = a0;
17   x->a[0] = t3;
18   x->fc = t2;
19   x->sp = t;
20 }
21 
main()22 main ()
23 {
24   struct S s;
25   static int sc[3] = {2, 3, 4};
26   s.sc = sc;
27   s.a[0] = 10;
28   s.a[1] = 11;
29   f (&s);
30   if (s.sp[2] != 2)
31     abort ();
32   exit (0);
33 }
34