[PATCH] Make a warning for -Werror=wrong-language (PR driver/91172).
Martin Sebor
msebor@gmail.com
Tue Jul 16 16:40:00 GMT 2019
On 7/16/19 5:16 AM, Martin Liška wrote:
> Hi.
>
> I noticed in the PR that -Werror=argument argument is not verified
> that the option is supported by a language we compile for.
> That's changed in the patch. However, it's not ideal as I need to mark
> the -Werror as the problematic option and one can't print a proper
> list of valid languages for which the rejected option can be used.
>
> Patch can bootstrap on x86_64-linux-gnu and survives regression tests.
>
> Ready to be installed?
> Thanks,
> Martin
>
> gcc/ChangeLog:
>
> 2019-07-16 Martin Liska <mliska@suse.cz>
>
> PR driver/91172
> * opts-common.c (decode_cmdline_option): Decode
> argument of -Werror and check it for a wrong language.
> * opts-global.c (complain_wrong_lang): Remove such case.
>
> gcc/testsuite/ChangeLog:
>
> 2019-07-16 Martin Liska <mliska@suse.cz>
>
> PR driver/91172
> * gcc.dg/pr91172.c: New test.
> ---
> gcc/opts-common.c | 20 +++++++++++++++++++-
> gcc/opts-global.c | 6 +++++-
> gcc/testsuite/gcc.dg/pr91172.c | 3 +++
> 3 files changed, 27 insertions(+), 2 deletions(-)
> create mode 100644 gcc/testsuite/gcc.dg/pr91172.c
Nice catch!
@@ -745,6 +746,23 @@ decode_cmdline_option (const char **argv, unsigned
int lang_mask,
/* Check if this is a switch for a different front end. */
if (!option_ok_for_language (option, lang_mask))
errors |= CL_ERR_WRONG_LANG;
+ else if (strcmp (option->opt_text, "-Werror=") == 0
+ && strchr (opt_value, ',') == NULL)
+ {
+ /* Verify that -Werror argument is a valid warning
+ for a languages. */
Typo: "for a language" (singular).
+ else
+ /* Happens for -Werror=warning_name. */
+ warning (0, "command-line error argument %qs is not valid for %s",
+ text, bad_lang);
It might be better phrased as something like
"%<-Werror=%> argument %qs is not valid for %s"
The argument is not one of a "command-line error." It's one
to the -Werror option (which can be specified in other places
besides the command line).
Martin
More information about the Gcc-patches
mailing list