I was looking at a backport of the current linux.opt, and got confused by the chain of three Negative()s. I was thinking that saying "A is Negative(B)" was equivalent to saying A == !B.
This patch is an attempt to clarify the documentation. Tested with "make doc", "make html" and "make pdf". OK to install? Richard gcc/ * doc/options.texi (Negative): Explicitly mention that the Negative chain must be circular. Index: gcc/doc/options.texi =================================================================== --- gcc/doc/options.texi 2011-04-07 09:23:22.000000000 +0100 +++ gcc/doc/options.texi 2011-04-13 13:42:24.000000000 +0100 @@ -222,6 +222,13 @@ the option name with the leading ``-'' r propagate through the @code{Negative} property of the option to be turned off. +As a consequence, if you have a group of mutually-exclusive +options, their @code{Negative} properties should form a circular chain. +For example, if options @option{-@var{a}}, @option{-@var{b}} and +@option{-@var{c}} are mutually exclusive, their respective @code{Negative} +properties should be @samp{Negative(@var{b})}, @samp{Negative(@var{c})} +and @samp{Negative(@var{a})}. + @item Joined @itemx Separate The option takes a mandatory argument. @code{Joined} indicates