On Thu, Feb 21, 2019 at 5:34 AM Jan Hubicka <hubi...@ucw.cz> wrote: > > > On Tue, Sep 25, 2018 at 6:50 AM H.J. Lu <hjl.to...@gmail.com> wrote: > > > > > > Issue an error when -mindirect-branch or -mfunction-return are used > > > with incompatible -fcf-protection. > > > > > > gcc/ > > > > > > PR target/87412 > > > * config/i386/i386.c (ix86_set_indirect_branch_type): Issue an > > > error for -mindirect-branch/-mfunction-return with incompatible > > > -fcf-protection. > > > > > > gcc/testsuite/ > > > > > > PR target/87412 > > > * gcc.target/i386/pr87412-1.c: New file. > > > * gcc.target/i386/pr87412-2.c: Likewise. > > > * gcc.target/i386/pr87412-3.c: Likewise. > > > * gcc.target/i386/pr87412-4.c: Likewise. > > OK, > thanks! > Honza
I am checking in this patch to replace -fcf-protection with -fcf-protection=branch in a couple -mindirect-branch tests. -- H.J.
From fc3c8f2dfc3e544233ea92fb05e6bbe9eb496103 Mon Sep 17 00:00:00 2001 From: "H.J. Lu" <hjl.to...@gmail.com> Date: Thu, 21 Feb 2019 08:12:12 -0800 Subject: [PATCH] i386: Replace -fcf-protection with -fcf-protection=branch Since -mindirect-branch is incompatible with -fcf-protection=return and -fcf-protection, replace -fcf-protection with -fcf-protection=branch. PR target/87412 * gcc.target/i386/indirect-thunk-attr-14.c: Replace -fcf-protection with -fcf-protection=branch. * gcc.target/i386/indirect-thunk-attr-15.c: Likewise. * gcc.target/i386/indirect-thunk-attr-16.c: Likewise. * gcc.target/i386/indirect-thunk-extern-8.c: Likewise. * gcc.target/i386/indirect-thunk-extern-9.c: Likewise. * gcc.target/i386/indirect-thunk-extern-10.c: Likewise. --- gcc/testsuite/gcc.target/i386/indirect-thunk-attr-14.c | 2 +- gcc/testsuite/gcc.target/i386/indirect-thunk-attr-15.c | 2 +- gcc/testsuite/gcc.target/i386/indirect-thunk-attr-16.c | 2 +- gcc/testsuite/gcc.target/i386/indirect-thunk-extern-10.c | 2 +- gcc/testsuite/gcc.target/i386/indirect-thunk-extern-8.c | 2 +- gcc/testsuite/gcc.target/i386/indirect-thunk-extern-9.c | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/gcc/testsuite/gcc.target/i386/indirect-thunk-attr-14.c b/gcc/testsuite/gcc.target/i386/indirect-thunk-attr-14.c index eb25139da6d..8516be5c8a6 100644 --- a/gcc/testsuite/gcc.target/i386/indirect-thunk-attr-14.c +++ b/gcc/testsuite/gcc.target/i386/indirect-thunk-attr-14.c @@ -1,5 +1,5 @@ /* { dg-do compile { target *-*-linux* } } */ -/* { dg-options "-O2 -mno-indirect-branch-register -mfunction-return=keep -fno-pic -fplt -mindirect-branch=keep -fcf-protection" } */ +/* { dg-options "-O2 -mno-indirect-branch-register -mfunction-return=keep -fno-pic -fplt -mindirect-branch=keep -fcf-protection=branch" } */ extern void (*bar) (void); diff --git a/gcc/testsuite/gcc.target/i386/indirect-thunk-attr-15.c b/gcc/testsuite/gcc.target/i386/indirect-thunk-attr-15.c index 1ad459e3b19..28eafbafe39 100644 --- a/gcc/testsuite/gcc.target/i386/indirect-thunk-attr-15.c +++ b/gcc/testsuite/gcc.target/i386/indirect-thunk-attr-15.c @@ -1,5 +1,5 @@ /* { dg-do compile { target *-*-linux* } } */ -/* { dg-options "-O2 -mindirect-branch-register -mfunction-return=keep -fno-pic -fplt -mindirect-branch=keep -fcf-protection" } */ +/* { dg-options "-O2 -mindirect-branch-register -mfunction-return=keep -fno-pic -fplt -mindirect-branch=keep -fcf-protection=branch" } */ extern void (*bar) (void); diff --git a/gcc/testsuite/gcc.target/i386/indirect-thunk-attr-16.c b/gcc/testsuite/gcc.target/i386/indirect-thunk-attr-16.c index 86fe035bc9a..737d85d48e8 100644 --- a/gcc/testsuite/gcc.target/i386/indirect-thunk-attr-16.c +++ b/gcc/testsuite/gcc.target/i386/indirect-thunk-attr-16.c @@ -1,5 +1,5 @@ /* { dg-do compile { target *-*-linux* } } */ -/* { dg-options "-O2 -mindirect-branch-register -mfunction-return=keep -fno-pic -fplt -mindirect-branch=keep -fcf-protection" } */ +/* { dg-options "-O2 -mindirect-branch-register -mfunction-return=keep -fno-pic -fplt -mindirect-branch=keep -fcf-protection=branch" } */ extern void (*bar) (void) __attribute__((nocf_check)); diff --git a/gcc/testsuite/gcc.target/i386/indirect-thunk-extern-10.c b/gcc/testsuite/gcc.target/i386/indirect-thunk-extern-10.c index 95731d6f365..539781c492a 100644 --- a/gcc/testsuite/gcc.target/i386/indirect-thunk-extern-10.c +++ b/gcc/testsuite/gcc.target/i386/indirect-thunk-extern-10.c @@ -1,5 +1,5 @@ /* { dg-do compile { target *-*-linux* } } */ -/* { dg-options "-O2 -mindirect-branch-register -mfunction-return=keep -fno-pic -fplt -mindirect-branch=thunk-extern -fcf-protection" } */ +/* { dg-options "-O2 -mindirect-branch-register -mfunction-return=keep -fno-pic -fplt -mindirect-branch=thunk-extern -fcf-protection=branch" } */ extern void (*bar) (void) __attribute__((nocf_check)); diff --git a/gcc/testsuite/gcc.target/i386/indirect-thunk-extern-8.c b/gcc/testsuite/gcc.target/i386/indirect-thunk-extern-8.c index 0c61516732a..2cef59de5ab 100644 --- a/gcc/testsuite/gcc.target/i386/indirect-thunk-extern-8.c +++ b/gcc/testsuite/gcc.target/i386/indirect-thunk-extern-8.c @@ -1,5 +1,5 @@ /* { dg-do compile { target *-*-linux* } } */ -/* { dg-options "-O2 -mno-indirect-branch-register -mfunction-return=keep -fno-pic -fplt -mindirect-branch=thunk-extern -fcf-protection" } */ +/* { dg-options "-O2 -mno-indirect-branch-register -mfunction-return=keep -fno-pic -fplt -mindirect-branch=thunk-extern -fcf-protection=branch" } */ extern void (*bar) (void); diff --git a/gcc/testsuite/gcc.target/i386/indirect-thunk-extern-9.c b/gcc/testsuite/gcc.target/i386/indirect-thunk-extern-9.c index 731d4c4e6e9..a579cdde6ba 100644 --- a/gcc/testsuite/gcc.target/i386/indirect-thunk-extern-9.c +++ b/gcc/testsuite/gcc.target/i386/indirect-thunk-extern-9.c @@ -1,5 +1,5 @@ /* { dg-do compile { target *-*-linux* } } */ -/* { dg-options "-O2 -mindirect-branch-register -mfunction-return=keep -fno-pic -fplt -mindirect-branch=thunk-extern -fcf-protection" } */ +/* { dg-options "-O2 -mindirect-branch-register -mfunction-return=keep -fno-pic -fplt -mindirect-branch=thunk-extern -fcf-protection=branch" } */ extern void (*bar) (void); -- 2.20.1