This is patch V8 #6. It makes sure the stack protect insns work when -mcpu=future and -fstack-protector-strong are used together. We discovered this failure when we attempted to build GLIBC using -mcpu=future. https://gcc.gnu.org/ml/gcc-patches/2019-12/msg00089.html
This test now passes when I run it as part of the test suite, can I check it in to the trunk? 2019-12-20 Michael Meissner <meiss...@linux.ibm.com> * gcc.target/powerpc/prefix-stack-protect.c: New test to make sure -fstack-protect-strong works with prefixed addressing. Index: gcc/testsuite/gcc.target/powerpc/prefix-stack-protect.c =================================================================== --- gcc/testsuite/gcc.target/powerpc/prefix-stack-protect.c (revision 279324) +++ gcc/testsuite/gcc.target/powerpc/prefix-stack-protect.c (working copy) @@ -0,0 +1,20 @@ +/* { dg-do compile } */ +/* { dg-require-effective-target powerpc_prefixed_addr } */ +/* { dg-options "-O2 -mdejagnu-cpu=future -fstack-protector-strong" } */ + +/* Test that we can handle large stack frames with -fstack-protector-strong and + prefixed addressing. This was originally discovered in trying to build + glibc with -mcpu=future, and vfwprintf.c failed because it used + -fstack-protector-strong. */ + +extern long foo (char *); + +long +bar (void) +{ + char buffer[0x20000]; + return foo (buffer) + 1; +} + +/* { dg-final { scan-assembler {\mpld\M} } } */ +/* { dg-final { scan-assembler {\mpstd\M} } } */ -- Michael Meissner, IBM IBM, M/S 2506R, 550 King Street, Littleton, MA 01460-6245, USA email: meiss...@linux.ibm.com, phone: +1 (978) 899-4797