https://gcc.gnu.org/bugzilla/show_bug.cgi?id=124060

            Bug ID: 124060
           Summary: -Werror=complain-wrong-lang doesn't work for "... is
                    not valid for C++"
           Product: gcc
           Version: 16.0
            Status: UNCONFIRMED
          Keywords: diagnostic
          Severity: normal
          Priority: P3
         Component: driver
          Assignee: unassigned at gcc dot gnu.org
          Reporter: sjames at gcc dot gnu.org
  Target Milestone: ---

$ touch /tmp/a.cxx
$ g++ -Werror=unterminated-string-initialization /tmp/a.cxx -c
cc1plus: warning: ‘-Werror=’ argument
‘-Werror=unterminated-string-initialization’ is not valid for C++

And no relevant options help, unfortunately:
$ g++ -Werror=unterminated-string-initialization /tmp/a.cxx
-Werror=complain-wrong-lang -Wfatal-errors -Werror -c
cc1plus: warning: ‘-Werror=’ argument
‘-Werror=unterminated-string-initialization’ is not valid for C++

This is from `complain_wrong_lang`:
```

/* Complain that switch DECODED does not apply to this front end (mask
   LANG_MASK).  */

static void
complain_wrong_lang (const struct cl_decoded_option *decoded,
                     unsigned int lang_mask)
{
...
  else if (ok_langs[0] != '\0')
    /* Eventually this should become a hard error IMO.  */
    warning (0, "command-line option %qs is valid for %s but not for %s",
             text, ok_langs, bad_lang);
  else
    /* Happens for -Werror=warning_name.  */
    warning (0, "%<-Werror=%> argument %qs is not valid for %s",
             text, bad_lang);
...
}
```

Reply via email to