1  struct S
       2  {
       3    int *sp, fc, *sc, a[2];
       4  };
       5  
       6  f (struct S *x)
       7  {
       8    int *t = x->sc;
       9    int t1 = t[0];
      10    int t2 = t[1];
      11    int t3 = t[2];
      12    int a0 = x->a[0];
      13    int a1 = x->a[1];
      14    asm("": :"r" (t2), "r" (t3));
      15    t[2] = t1;
      16    t[0] = a1;
      17    x->a[1] = a0;
      18    x->a[0] = t3;
      19    x->fc = t2;
      20    x->sp = t;
      21  }
      22  
      23  main ()
      24  {
      25    struct S s;
      26    static int sc[3] = {2, 3, 4};
      27    s.sc = sc;
      28    s.a[0] = 10;
      29    s.a[1] = 11;
      30    f (&s);
      31    if (s.sp[2] != 2)
      32      abort ();
      33    exit (0);
      34  }