1  struct X { int *p; } x;
       2  
       3  struct X __attribute__((noinline))
       4  foo(int *p) { struct X x; x.p = p; return x; }
       5  
       6  void __attribute((noinline))
       7  bar() { *x.p = 1; }
       8  
       9  extern void abort (void);
      10  int main()
      11  {
      12    int i = 0;
      13    x = foo(&i);
      14    bar();
      15    if (i != 1)
      16      abort ();
      17    return 0;
      18  }