https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87161
Jonathan Wakely <redi at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Component|c++ |driver --- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> --- This isn't specific to -Wmissing-prototypes or to C++, it happens for any option that isn't valid for the current language e.g. g++ -Werror -Wduplicate-decl-specifier ... gcc -Werror -Wc++14-compat ... The behaviour is fairly intuitive. While processing the command-line arguments if an unknown/invalid option is encountered there is a warning. After -Werror has been seen, all warnings are errors (including warnings about unknown/invalid options).