When running the test-suite for these tests on an instrumented mmix simulator (plus gcc and newlib patches to match) that, instead of silently allocating zeros, barfs on accesses beyond the defined stack, these tests fail because of that check. There are no stack parameters to copy, so there's just an unused and undefined (well, zeroed) chunk of memory copied. Fixes in that setup:
FAIL: gcc.dg/builtin-apply2.c execution test .. FAIL: gcc.dg/torture/stackalign/builtin-apply-2.c -O0 execution test Committed. gcc/testsuite: * gcc.dg/torture/stackalign/builtin-apply-2.c, gcc.dg/builtin-apply2.c: Correct STACK_ARGUMENTS_SIZE for MMIX. Index: gcc/testsuite/gcc.dg/torture/stackalign/builtin-apply-2.c =================================================================== --- gcc/testsuite/gcc.dg/torture/stackalign/builtin-apply-2.c (revision 192353) +++ gcc/testsuite/gcc.dg/torture/stackalign/builtin-apply-2.c (working copy) @@ -16,6 +16,9 @@ E, F and G are passed on stack. So the size of the stack argument data is 20. */ #define STACK_ARGUMENTS_SIZE 20 +#elif defined __MMIX__ +/* No parameters on stack for bar. */ +#define STACK_ARGUMENTS_SIZE 0 #else #define STACK_ARGUMENTS_SIZE 64 #endif Index: gcc/testsuite/gcc.dg/builtin-apply2.c =================================================================== --- gcc/testsuite/gcc.dg/builtin-apply2.c (revision 192353) +++ gcc/testsuite/gcc.dg/builtin-apply2.c (working copy) @@ -17,6 +17,9 @@ E, F and G are passed on stack. So the size of the stack argument data is 20. */ #define STACK_ARGUMENTS_SIZE 20 +#elif defined __MMIX__ +/* No parameters on stack for bar. */ +#define STACK_ARGUMENTS_SIZE 0 #else #define STACK_ARGUMENTS_SIZE 64 #endif brgds, H-P