Bug 70230

Summary: 11 test regressions when building GCC 6 with --enable-default-ssp
Product: gcc Reporter: psturm
Component: testsuiteAssignee: Not yet assigned to anyone <unassigned>
Status: RESOLVED FIXED    
Severity: normal CC: allan, egallager, law
Priority: P3 Keywords: testsuite-fail
Version: 6.0   
Target Milestone: ---   
See Also: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70192
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67317
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70150
Host: Target: x86_64-*-*
Build: Known to work:
Known to fail: Last reconfirmed: 2018-09-24 00:00:00
Attachments: gcc 6 testsuite summary --enable-default-ssp
Fix testsuite issues with --enable-default-ssp

Description psturm 2016-03-14 20:51:35 UTC
Created attachment 37963 [details]
gcc 6 testsuite summary --enable-default-ssp

I built GCC6 snapshot 20160313 after applying the patch for PR driver/70192:
https://gcc.gnu.org/ml/gcc-patches/2016-03/msg00708.html

The test suite finished with no errors for gcc.

Next I rebuilt GCC6 using the exact same configuration but adding
--enable-default-ssp to the configure. I got 11 unexpected failures in
gcc:

FAIL: gcc.dg/stack-usage-1.c scan-file foo\\t(256|264)\\tstatic
FAIL: gcc.dg/superblock.c scan-rtl-dump-times sched2 "ADVANCING TO" 2
FAIL: gcc.target/i386/avx-vzeroupper-17.c scan-assembler-times avx_vzeroupper 1
FAIL: gcc.target/i386/pr67317-1.c scan-assembler-not addb
FAIL: gcc.target/i386/pr67317-1.c scan-assembler-not setn?c
FAIL: gcc.target/i386/pr67317-2.c scan-assembler-not addb
FAIL: gcc.target/i386/pr67317-2.c scan-assembler-not setn?c
FAIL: gcc.target/i386/pr67317-3.c scan-assembler-not addb
FAIL: gcc.target/i386/pr67317-4.c scan-assembler-not addb
FAIL: gcc.target/i386/shrink_wrap_1.c scan-rtl-dump pro_and_epilogue "Performing shrink-wrapping"
FAIL: gcc.target/i386/sw-1.c scan-rtl-dump pro_and_epilogue "Performing shrink-wrapping"

Test suite summary attached.
Comment 1 Richard Biener 2016-03-15 11:47:06 UTC
These are harmless and somewhat expected if you change default options.  I suppose
even a dg-skip-if -fstack-protector can't fix those because the option is not seen.

Testsuite issue in the end, but very very low priority.

x86_64 I suppose.
Comment 2 psturm 2016-04-18 00:08:24 UTC
2 new failures appeared when testing with only --enable-default-ssp using the hjl/pr70150 branch:

> FAIL: gcc.target/i386/cleanup-1.c execution test
> FAIL: gcc.target/i386/cleanup-2.c execution test

Are these also to be expected or is it something more?
Comment 3 Eric Gallager 2018-09-24 01:54:42 UTC
(In reply to psturm from comment #2)
> 2 new failures appeared when testing with only --enable-default-ssp using
> the hjl/pr70150 branch:
> 
> > FAIL: gcc.target/i386/cleanup-1.c execution test
> > FAIL: gcc.target/i386/cleanup-2.c execution test
> 
> Are these also to be expected or is it something more?

Let's ask HJ
Comment 4 H.J. Lu 2018-09-24 13:03:28 UTC
I also saw

FAIL: gcc.target/i386/cleanup-1.c execution test
FAIL: gcc.target/i386/cleanup-2.c execution test

on trunk with --enable-default-ssp.  They contain asm statements which
aren't compatible with -fstack-protector.  Adding -fno-stack-protector:

diff --git a/gcc/testsuite/gcc.target/i386/cleanup-1.c b/gcc/testsuite/gcc.target/i386/cleanup-1.c
index dcfcc4edb5f..4a74ec2fb0f 100644
--- a/gcc/testsuite/gcc.target/i386/cleanup-1.c
+++ b/gcc/testsuite/gcc.target/i386/cleanup-1.c
@@ -1,5 +1,5 @@
 /* { dg-do run { target *-*-linux* *-*-gnu* } } */
-/* { dg-options "-fexceptions -fnon-call-exceptions -fasynchronous-unwind-tables -O2" } */
+/* { dg-options "-fno-stack-protector -fexceptions -fnon-call-exceptions -fasynchronous-unwind-tables -O2" } */
 /* Test complex CFA value expressions.  */
 
 #include <unwind.h>
diff --git a/gcc/testsuite/gcc.target/i386/cleanup-2.c b/gcc/testsuite/gcc.target/i386/cleanup-2.c
index 7e60323373b..d4cf30984e4 100644
--- a/gcc/testsuite/gcc.target/i386/cleanup-2.c
+++ b/gcc/testsuite/gcc.target/i386/cleanup-2.c
@@ -1,5 +1,5 @@
 /* { dg-do run { target { *-*-linux* && { ! ia32 } } } } */
-/* { dg-options "-fexceptions -fnon-call-exceptions -fasynchronous-unwind-tables -O2" } */
+/* { dg-options "-fno-stack-protector -fexceptions -fnon-call-exceptions -fasynchronous-unwind-tables -O2" } */
 /* Test complex CFA value expressions.  */
 
 #include <unwind.h>

fixed them.
Comment 5 Allan McRae 2022-01-25 13:49:37 UTC
Created attachment 52286 [details]
Fix testsuite issues with --enable-default-ssp

Add -fno-stack-protector to dg-options where needed.  Fixes the following testsuite failures from adding --enable-default-ssp to configure:

FAIL: gcc.dg/asan/use-after-scope-4.c   -O0  execution test
FAIL: gcc.dg/stack-usage-1.c scan-stack-usage foo\\t(256|264)\\tstatic
FAIL: gcc.dg/superblock.c scan-rtl-dump-times sched2 "ADVANCING TO" 2
FAIL: gcc.target/i386/avx-vzeroupper-17.c scan-assembler-times avx_vzeroupper 1
FAIL: gcc.target/i386/cleanup-1.c execution test
FAIL: gcc.target/i386/cleanup-2.c execution test
FAIL: gcc.target/i386/interrupt-redzone-1.c scan-assembler-not \\tcld
FAIL: gcc.target/i386/interrupt-redzone-2.c scan-assembler-not \\tcld
FAIL: gcc.target/i386/pr79793-1.c scan-assembler-times add[lq][\\t ]*\\\\\$400,[\\t ]*%[re]sp 1
FAIL: gcc.target/i386/pr79793-1.c scan-assembler-times fxsave64[\\t ]*-120\\\\(%[re]sp\\\\) 1
FAIL: gcc.target/i386/pr79793-1.c scan-assembler-times sub[lq][\\t ]*\\\\\$400,[\\t ]*%[re]sp 1
FAIL: gcc.target/i386/pr79793-2.c scan-assembler-times add[lq][\\t ]*\\\\\$400,[\\t ]*%[re]sp 1
FAIL: gcc.target/i386/pr79793-2.c scan-assembler-times fxsave64[\\t ]*-120\\\\(%[re]sp\\\\) 1
FAIL: gcc.target/i386/pr79793-2.c scan-assembler-times sub[lq][\\t ]*\\\\\$392,[\\t ]*%[re]sp 1
FAIL: gcc.target/i386/shrink_wrap_1.c scan-rtl-dump pro_and_epilogue "Performing shrink-wrapping"
FAIL: gcc.target/i386/stack-check-11.c scan-assembler-times or[ql] 3
FAIL: gcc.target/i386/stack-check-11.c scan-assembler-times sub[ql] 4
FAIL: gcc.target/i386/stack-check-18.c scan-assembler-times or[ql] 1
FAIL: gcc.target/i386/stack-check-19.c scan-assembler-times (?:je|jne) 3
FAIL: gcc.target/i386/stack-check-19.c scan-assembler-times or[ql] 2
FAIL: gcc.target/i386/sw-1.c scan-rtl-dump pro_and_epilogue "Performing shrink-wrapping"
FAIL: gcc.target/i386/stackalign/pr88483-1.c -mno-stackrealign  scan-assembler-not (sub|add)(l|q)[\\\\t ]*\\\\\$[0-9]*,[\\\\t ]*%[re]?sp
FAIL: gcc.target/i386/stackalign/pr88483-1.c -mno-stackrealign  scan-assembler-not and[lq]?[^\\\\n]*-[0-9]+,[^\\\\n]*sp
FAIL: gcc.target/i386/stackalign/pr88483-1.c -mstackrealign  scan-assembler-not (sub|add)(l|q)[\\\\t ]*\\\\\$[0-9]*,[\\\\t ]*%[re]?sp
FAIL: gcc.target/i386/stackalign/pr88483-1.c -mstackrealign  scan-assembler-not and[lq]?[^\\\\n]*-[0-9]+,[^\\\\n]*sp
FAIL: gcc.target/i386/stackalign/pr88483-2.c -mno-stackrealign  scan-assembler-not and[lq]?[^\\\\n]*-[0-9]+,[^\\\\n]*sp
FAIL: gcc.target/i386/stackalign/pr88483-2.c -mstackrealign  scan-assembler-not and[lq]?[^\\\\n]*-[0-9]+,[^\\\\n]*sp
Comment 6 GCC Commits 2022-01-28 17:45:44 UTC
The master branch has been updated by Jeff Law <law@gcc.gnu.org>:

https://gcc.gnu.org/g:90c31ff339015ddd89ac519656fbd23a36ee6271

commit r12-6922-g90c31ff339015ddd89ac519656fbd23a36ee6271
Author: Allan McRae <allan@archlinux.org>
Date:   Fri Jan 28 12:44:08 2022 -0500

    testsuite/70230 - fix failures with default SSP\
    
    Configuring with --enable-default-ssp triggers various testsuite
    failures.  These contain asm statements that are not compatible with
    -fstack-protector.  Adding -fno-stack-protector to dg-options to
    work around this issue.
    
    Tested on x86_64-linux.
    
            PR testsuite/70230
            * gcc.dg/asan/use-after-scope-4.c (dg-options): Add
            -fno-stack-protector.
            * gcc.dg/stack-usage-1.c: Likewise
            * gcc.dg/superblock.c: Likewise
            * gcc.target/i386/avx-vzeroupper-17.c: Likewise
            * gcc.target/i386/cleanup-1.c: Likewise
            * gcc.target/i386/cleanup-2.c: Likewise
            * gcc.target/i386/interrupt-redzone-1.c: Likewise
            * gcc.target/i386/interrupt-redzone-2.c: Likewise
            * gcc.target/i386/pr79793-1.c: Likewise
            * gcc.target/i386/pr79793-2.c: Likewise
            * gcc.target/i386/shrink_wrap_1.c: Likewise
            * gcc.target/i386/stack-check-11.c: Likewise
            * gcc.target/i386/stack-check-18.c: Likewise
            * gcc.target/i386/stack-check-19.c: Likewise
            * gcc.target/i386/stackalign/pr88483-1.c: Likewise
            * gcc.target/i386/stackalign/pr88483-2.c: Likewise
            * gcc.target/i386/sw-1.c: Likewise
Comment 7 Jeffrey A. Law 2022-01-28 18:42:46 UTC
Fixed on the trunk.