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