/* 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 (); | |
} | |