1 /* The return argument needs a type conversion which on some targets 2 (e.g. s390) needs additional code. So it is invalid to do tail 3 call optimization here. */ 4 5 /* { dg-do compile } */ 6 /* { dg-options "-O2" } */ 7 8 extern void abort (void); 9 10 long long __attribute__((noinline)) foo()11foo () 12 { 13 return 3; 14 } 15 16 int __attribute__((noinline)) boo()17boo () 18 { 19 return foo (); 20 } 21 22 int main()23main () 24 { 25 if (boo () != 3) 26 abort (); 27 } 28 29