The stack-protector-1.c test fails when compiled for Cortex-M:
- for Cortex-M0/M1, str r0, [sp #-8]! is not supported
- for Cortex-M3/M4..., the assembler complains that "use of r13 is
deprecated"
This patch replaces the str instruction with
sub sp, sp, #8
str r0, [sp]
and removes the check for r13, which is unlikely to leak the canary
value.
2020-08-11 Christophe Lyon <christophe.lyon@linaro.org>
gcc/testsuite/
* gcc.target/arm/stack-protector-1.c: Adapt code to Cortex-M
restrictions.
" .type main, %function\n"
"main:\n"
" bl get_ptr\n"
-" str r0, [sp, #-8]!\n"
+" sub sp, sp, #8\n"
+" str r0, [sp]\n"
" bl f\n"
" str r0, [sp, #4]\n"
" ldr r0, [sp]\n"
CHECK (r10)
CHECK (r11)
CHECK (r12)
- CHECK (r13)
CHECK (r14)
" ldr r1, [sp, #4]\n"
CHECK (r1)