1 extern void abort (void);
2 
3 static struct X { void *a; void *b; } a, b;
4 
foo(void)5 void __attribute__((noinline)) foo (void)
6 {
7   void *tem = a.b;
8   a.b = (void *)0;
9   b.b = tem;
10   b.a = a.a;
11   a.a = tem;
12 }
13 
main()14 int main()
15 {
16   a.b = &a;
17   foo ();
18   if (b.b != &a)
19     abort ();
20   return 0;
21 }
22