On 30/03/16 00:01, Joseph Myers wrote:
If we consider that -Wno-general implies -Wno-specific and
-Werror=specific implies -Wspecific,@equal levels of indirection, then
the order of the options on the command line is what determines whether
-Wspecific is enabled (as an error).  If however we consider -Wspecific to
be a tristate (disabled, warning, error), then -Werror=specific is a
direct setting of the tristate while -Wno-general is only indirect, so
-Werror=specific takes precedence whatever the command-line order.

Internally, they are tri-state but -Werror= does not seem to update opts_set, which is what is tested by the options machinery for options that imply other options. That is,

 -Werror=return-type -Wreturn-type  -Wno-all

is different from

 -Werror=return-type -Wno-all

This seems a bug to me in how -Werror= works.

Cheers,

        Manuel.

Reply via email to