diff options
Diffstat (limited to 'gcc-4.9/gcc/testsuite/gcc.target/x86_64/abi/test_basic_returning.c')
-rw-r--r-- | gcc-4.9/gcc/testsuite/gcc.target/x86_64/abi/test_basic_returning.c | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/gcc.target/x86_64/abi/test_basic_returning.c b/gcc-4.9/gcc/testsuite/gcc.target/x86_64/abi/test_basic_returning.c new file mode 100644 index 000000000..92c906fc8 --- /dev/null +++ b/gcc-4.9/gcc/testsuite/gcc.target/x86_64/abi/test_basic_returning.c @@ -0,0 +1,78 @@ +/* This is an autogenerated file. Do not edit. */ + +#include "defines.h" +#include "macros.h" +#include "args.h" + +char +fun_test_returning_char (void) +{ + volatile_var++; + return 64; +} + +short +fun_test_returning_short (void) +{ + volatile_var++; + return 65; +} + +int +fun_test_returning_int (void) +{ + volatile_var++; + return 66; +} + +long +fun_test_returning_long (void) +{ + volatile_var++; + return 67; +} + +long long +fun_test_returning_long_long (void) +{ + volatile_var++; + return 68; +} + +float +fun_test_returning_float (void) +{ + volatile_var++; + return 69; +} + +double +fun_test_returning_double (void) +{ + volatile_var++; + return 70; +} + +long double +fun_test_returning_long_double (void) +{ + volatile_var++; + return 71; +} + +#define def_test_returning_type_xmm(fun, type, ret, reg) \ + { type var = WRAP_RET (fun) (); \ + assert (ret == (type) reg && ret == var); } +int +main (void) +{ + def_test_returning_type_xmm(fun_test_returning_char, char, 64, rax); + def_test_returning_type_xmm(fun_test_returning_short, short, 65, rax); + def_test_returning_type_xmm(fun_test_returning_int, int, 66, rax); + def_test_returning_type_xmm(fun_test_returning_long, long, 67, rax); + def_test_returning_type_xmm(fun_test_returning_long_long, long long, 68, rax); + def_test_returning_type_xmm(fun_test_returning_float, float, 69, xmm_regs[0]._float[0]); + def_test_returning_type_xmm(fun_test_returning_double, double, 70, xmm_regs[0]._double[0]); + def_test_returning_type_xmm(fun_test_returning_long_double, long double, 71, x87_regs[0]._ldouble); + return 0; +} |