From: Martin Liska Date: Mon, 6 May 2019 07:35:59 +0000 (+0200) Subject: Error only when a non-default -mabi is used with sanitizers (PR sanitizer/90312). X-Git-Tag: misc/cutover-git~5742 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=080629d32eca5ea202479022f0bd429a813be7c4;p=thirdparty%2Fgcc.git Error only when a non-default -mabi is used with sanitizers (PR sanitizer/90312). 2019-05-06 Martin Liska PR sanitizer/90312 * config/i386/i386-options.c (ix86_option_override_internal): Error only when -mabi is selected to a non-default version. 2019-05-06 Martin Liska PR sanitizer/90312 * gcc.dg/asan/pr87930.c: Run the test only on *linux or *gnu systems. * gcc.dg/tsan/pr88017.c: Likewise. From-SVN: r270899 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 06ba752591d1..9db79406e07a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2019-05-06 Martin Liska + + PR sanitizer/90312 + * config/i386/i386-options.c (ix86_option_override_internal): Error only + when -mabi is selected to a non-default version. + 2019-05-06 Hrishikesh Kulkarni Martin Liska diff --git a/gcc/config/i386/i386-options.c b/gcc/config/i386/i386-options.c index 1a673d278eea..4ec10efacfab 100644 --- a/gcc/config/i386/i386-options.c +++ b/gcc/config/i386/i386-options.c @@ -1704,12 +1704,17 @@ ix86_option_override_internal (bool main_args_p, error ("%<-mabi=ms%> not supported with X32 ABI"); gcc_assert (opts->x_ix86_abi == SYSV_ABI || opts->x_ix86_abi == MS_ABI); - if ((opts->x_flag_sanitize & SANITIZE_USER_ADDRESS) && opts->x_ix86_abi == MS_ABI) - error ("%<-mabi=ms%> not supported with %<-fsanitize=address%>"); - if ((opts->x_flag_sanitize & SANITIZE_KERNEL_ADDRESS) && opts->x_ix86_abi == MS_ABI) - error ("%<-mabi=ms%> not supported with %<-fsanitize=kernel-address%>"); - if ((opts->x_flag_sanitize & SANITIZE_THREAD) && opts->x_ix86_abi == MS_ABI) - error ("%<-mabi=ms%> not supported with %<-fsanitize=thread%>"); + const char *abi_name = opts->x_ix86_abi == MS_ABI ? "ms" : "sysv"; + if ((opts->x_flag_sanitize & SANITIZE_USER_ADDRESS) + && opts->x_ix86_abi != DEFAULT_ABI) + error ("%<-mabi=%s%> not supported with %<-fsanitize=address%>", abi_name); + if ((opts->x_flag_sanitize & SANITIZE_KERNEL_ADDRESS) + && opts->x_ix86_abi != DEFAULT_ABI) + error ("%<-mabi=%s%> not supported with %<-fsanitize=kernel-address%>", + abi_name); + if ((opts->x_flag_sanitize & SANITIZE_THREAD) + && opts->x_ix86_abi != DEFAULT_ABI) + error ("%<-mabi=%s%> not supported with %<-fsanitize=thread%>", abi_name); /* For targets using ms ABI enable ms-extensions, if not explicit turned off. For non-ms ABI we turn off this diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index bf4a602d73d0..3e4bf2b56ee6 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,10 @@ +2019-05-06 Martin Liska + + PR sanitizer/90312 + * gcc.dg/asan/pr87930.c: Run the test only on *linux or *gnu + systems. + * gcc.dg/tsan/pr88017.c: Likewise. + 2019-05-06 Li Jia He * gcc.dg/tree-ssa/pr37508.c: Add the no-ssa-phiopt option to skip phi diff --git a/gcc/testsuite/gcc.dg/asan/pr87930.c b/gcc/testsuite/gcc.dg/asan/pr87930.c index 4f8e6999fde8..5a65d3fb0309 100644 --- a/gcc/testsuite/gcc.dg/asan/pr87930.c +++ b/gcc/testsuite/gcc.dg/asan/pr87930.c @@ -1,4 +1,4 @@ -/* { dg-do compile { target { { i?86-*-* x86_64-*-* } && lp64 } } } */ +/* { dg-do compile { target { { i?86-*-linux* i?86-*-gnu* x86_64-*-linux* } && lp64 } } } */ /* { dg-options "-fsanitize=address -mabi=ms" } */ int i; diff --git a/gcc/testsuite/gcc.dg/tsan/pr88017.c b/gcc/testsuite/gcc.dg/tsan/pr88017.c index 82693a67e872..10df2818b0d3 100644 --- a/gcc/testsuite/gcc.dg/tsan/pr88017.c +++ b/gcc/testsuite/gcc.dg/tsan/pr88017.c @@ -1,4 +1,4 @@ -/* { dg-do compile { target { { i?86-*-* x86_64-*-* } && lp64 } } } */ +/* { dg-do compile { target { { i?86-*-linux* i?86-*-gnu* x86_64-*-linux* } && lp64 } } } */ /* { dg-options "-fsanitize=thread -mabi=ms" } */ int i;