self(void * p)1 static void *self(void *p){ return p; }
2 
3 int
f()4 f()
5 {
6   struct { int i; } s, *sp;
7   int *ip = &s.i;
8 
9   s.i = 1;
10   sp = self(&s);
11 
12   *ip = 0;
13   return sp->i+1;
14 }
15 
main()16 main()
17 {
18   if (f () != 1)
19     abort ();
20   else
21     exit (0);
22 }
23