1  short *f(short *a, int b, int *d) __attribute__((noinline,noclone));
       2  
       3  short *f(short *a, int b, int *d)
       4  {
       5    short c = *a;
       6    a++;
       7    c = b << c;
       8    *d = c;
       9    return a;
      10  }
      11  
      12  int main(void)
      13  {
      14    int d;
      15    short a[2];
      16    a[0] = 0;
      17    if (f(a, 1, &d) != &a[1])
      18      __builtin_abort ();
      19    if (d != 1)
      20      __builtin_abort ();
      21    return 0;
      22  }