1  struct f
       2  {
       3    int i;
       4  };
       5  
       6  int g(int i, int c, struct f *ff, int *p)
       7  {
       8    int *t;
       9    if (c)
      10     t = &i;
      11    else
      12     t = &ff->i;
      13    *p = 0;
      14    return *t;
      15  }
      16  
      17  extern void abort(void);
      18  
      19  int main()
      20  {
      21    struct f f;
      22    f.i = 1;
      23    if (g(5, 0, &f, &f.i) != 0)
      24      abort ();
      25    return 0;
      26  }