From abe13e1847fb91d43f02b5579c4230214d4369f4 Mon Sep 17 00:00:00 2001 From: Richard Biener Date: Mon, 17 Feb 2020 09:32:44 +0100 Subject: [PATCH] c/86134 avoid errors for unrecognized -Wno- options This makes sure to not promote diagnostics about unrecognized -Wno- options to errors and make the intent of the diagnostic clearer. 2020-02-17 Richard Biener PR c/86134 * opts-global.c (print_ignored_options): Use inform and amend message. * gcc.dg/pr86134.c: New testcase. * gcc.dg/pr28322-2.c: Adjust. --- gcc/ChangeLog | 6 ++++++ gcc/opts-global.c | 6 ++++-- gcc/testsuite/ChangeLog | 6 ++++++ gcc/testsuite/gcc.dg/pr28322-2.c | 2 +- gcc/testsuite/gcc.dg/pr86134.c | 6 ++++++ 5 files changed, 23 insertions(+), 3 deletions(-) create mode 100644 gcc/testsuite/gcc.dg/pr86134.c diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5357acf060b..7c481407de9 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2020-02-17 Richard Biener + + PR c/86134 + * opts-global.c (print_ignored_options): Use inform and + amend message. + 2020-02-17 Jiufu Guo PR target/93047 diff --git a/gcc/opts-global.c b/gcc/opts-global.c index d5e308bf800..c658805470e 100644 --- a/gcc/opts-global.c +++ b/gcc/opts-global.c @@ -139,8 +139,10 @@ print_ignored_options (void) const char *opt; opt = ignored_options.pop (); - warning_at (UNKNOWN_LOCATION, 0, - "unrecognized command-line option %qs", opt); + /* Use inform, not warning_at, to avoid promoting these to errors. */ + inform (UNKNOWN_LOCATION, + "unrecognized command-line option %qs may have been intended " + "to silence earlier diagnostics", opt); } } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 6c34e0bbe36..b326529ac75 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2020-02-17 Richard Biener + + PR c/86134 + * gcc.dg/pr86134.c: New testcase. + * gcc.dg/pr28322-2.c: Adjust. + 2020-02-17 David Malcolm PR analyzer/93388 diff --git a/gcc/testsuite/gcc.dg/pr28322-2.c b/gcc/testsuite/gcc.dg/pr28322-2.c index c9e5e228a7b..20adf5e92b8 100644 --- a/gcc/testsuite/gcc.dg/pr28322-2.c +++ b/gcc/testsuite/gcc.dg/pr28322-2.c @@ -8,5 +8,5 @@ int foo (void) return i; } -/* { dg-warning "unrecognized command-line option .-Wno-foobar." "" { target *-*-* } 0 } */ +/* { dg-message "unrecognized command-line option .-Wno-foobar." "" { target *-*-* } 0 } */ diff --git a/gcc/testsuite/gcc.dg/pr86134.c b/gcc/testsuite/gcc.dg/pr86134.c new file mode 100644 index 00000000000..3fd21a32306 --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr86134.c @@ -0,0 +1,6 @@ +/* { dg-do compile } */ +/* { dg-options "-Wall -Werror -Wno-error=main -Wno-foobar" } */ + +void main() {} /* { dg-warning "return type" } */ + +/* { dg-message "unrecognized command-line option" "" { target *-*-* } 0 } */ -- 2.30.2