modernc.org/ccgo/v3@v3.16.14/lib/testdata/gcc-9.1.0/gcc/testsuite/gcc.c-torture/execute/960312-1.c (about)

     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  }