/* The return argument needs a type conversion which on some targets (e.g. s390) needs additional code. So it is invalid to do tail call optimization here. */ /* { dg-do compile } */ /* { dg-options "-O2" } */ extern void abort (void); long long __attribute__((noinline)) foo () { return 3; } int __attribute__((noinline)) boo () { return foo (); } int main () { if (boo () != 3) abort (); }