text: #include <stdlib.h>
  struct Foo {
    int *p;
    int *q;
  };
  
  void __attribute__((noinline))
  bar (int **x)
  {
    struct Foo *f = (struct Foo *)(x - 1);
    *(f->p) = 0;
  }
  
  int foo(void)
  {
    struct Foo f;
    int i = 1, j = 2;
    f.p = &i;
    f.q = &j;
    bar(&f.q);
    return i;
  }
  
  extern void abort (void);
  int main()
  {
    if (foo () != 0)
      abort ();
    return 0;
  }
  