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

     1  /* Verify that that Thumb-1 epilogue size optimization does not clobber the
     2     return value.  */
     3  
     4  long long v = 0x123456789abc;
     5  
     6  __attribute__((noinline)) void bar (int *x)
     7  {
     8    asm volatile ("" : "=m" (x) ::);
     9  }
    10  
    11  __attribute__((noinline)) long long foo()
    12  {
    13    int x;
    14    bar(&x);
    15    return v;
    16  }
    17  
    18  int main ()
    19  {
    20    if (foo () != v)
    21      abort ();
    22    exit (0);
    23  }