Disabling errors but keeping warnings

Mason slash.tmp@free.fr
Wed Apr 26 21:44:00 GMT 2017


On 26/04/2017 20:44, Segher Boessenkool wrote:

> On Wed, Apr 26, 2017 at 06:51:34PM +0200, Mason wrote:
>
>> $ gcc -Wall -Werror -Wno-misleading-indentation -c foo.c 
>> foo.c: In function 'foo':
>> foo.c:1:22: error: unused variable 'a' [-Werror=unused-variable]
>>  void foo(void) { int a; }
>>                       ^
>> foo.c: At top level:
>> cc1: error: unrecognized command line option "-Wno-misleading-indentation" [-Werror]
>> cc1: all warnings being treated as errors
>>
>> Hmmm, is there a way to ignore "error: unrecognized command line option" ?
> 
> The manual says:
> 
> """
> When an unrecognized warning option is requested (e.g.,
> @option{-Wunknown-warning}), GCC emits a diagnostic stating
> that the option is not recognized.  However, if the @option{-Wno-} form
> is used, the behavior is slightly different: no diagnostic is
> produced for @option{-Wno-unknown-warning} unless other diagnostics
> are being produced.  This allows the use of new @option{-Wno-} options
> with old compilers, but if something goes wrong, the compiler
> warns that an unrecognized option is present.
> """
> 
> In your example another diagnostic _is_ produced.

The documentation I was looking at was

  https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html

which AFAIU currently applies to GCC 6.


Thanks for pointing out the -Wfatal-errors text.

> You can request many specific warnings with options beginning with
> '-W', for example -Wimplicit to request warnings on implicit
> declarations. Each of these specific warning options also has a
> negative form beginning '-Wno-' to turn off warnings; for example,
> -Wno-implicit. This manual lists only one of the two forms, whichever
> is not the default. For further language-specific options also refer
> to C++ Dialect Options and Objective-C and Objective-C++ Dialect
> Options.
> 
> Some options, such as -Wall and -Wextra, turn on other options, such
> as -Wunused, which may turn on further options, such as
> -Wunused-value. The combined effect of positive and negative forms is
> that more specific options have priority over less specific ones,
> independently of their position in the command-line. For options of
> the same specificity, the last one takes effect. Options enabled or
> disabled via pragmas (see Diagnostic Pragmas) take effect as if they
> appeared at the end of the command-line.
> 
> When an unrecognized warning option is requested (e.g.,
> -Wunknown-warning), GCC emits a diagnostic stating that the option is
> not recognized. However, if the -Wno- form is used, the behavior is
> slightly different: no diagnostic is produced for
> -Wno-unknown-warning unless other diagnostics are being produced.
> This allows the use of new -Wno- options with old compilers, but if
> something goes wrong, the compiler warns that an unrecognized option
> is present.


My example was using gcc 4.8; perhaps the GCC devs have
improved the handling of -Wno-error over several versions.

I'll run tests with several different versions of GCC.

Regards.



More information about the Gcc-help mailing list