diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index d2e2a4b4683..4e3967ecc41 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,10 @@ +2014-06-07 Hans-Peter Nilsson + + PR target/18343 + * gcc.dg/torture/stackalign/builtin-return-1.c (STACK_ARGUMENTS_SIZE): + New macro, 0 for __MMIX__, default 64. + (bar): Pass it to __builtin_apply instead of literal 64. + 2014-06-06 Francois-Xavier Coudert * gfortran.dg/io_constraints_11.f90: New file. diff --git a/gcc/testsuite/gcc.dg/torture/stackalign/builtin-return-1.c b/gcc/testsuite/gcc.dg/torture/stackalign/builtin-return-1.c index 75c9acdf72a..e6213da217e 100644 --- a/gcc/testsuite/gcc.dg/torture/stackalign/builtin-return-1.c +++ b/gcc/testsuite/gcc.dg/torture/stackalign/builtin-return-1.c @@ -5,6 +5,13 @@ /* This used to fail on SPARC because the (undefined) return value of 'bar' was overwriting that of 'foo'. */ +#ifdef __MMIX__ +/* No parameters on stack for bar. */ +#define STACK_ARGUMENTS_SIZE 0 +#else +#define STACK_ARGUMENTS_SIZE 64 +#endif + extern void abort(void); int foo(int n) @@ -14,7 +21,8 @@ int foo(int n) int bar(int n) { - __builtin_return(__builtin_apply((void (*)(void))foo, __builtin_apply_args(), 64)); + __builtin_return(__builtin_apply((void (*)(void))foo, __builtin_apply_args(), + STACK_ARGUMENTS_SIZE)); } char *g;