On Wed, Feb 13, 2019 at 06:27:51PM -0800, H.J. Lu wrote: > --- a/gcc/doc/options.texi > +++ b/gcc/doc/options.texi > @@ -227,7 +227,10 @@ 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})}. > +and @samp{Negative(@var{a})}. @code{Negative} can be used together > +with @code{Joined} if there is no @code{RejectNegative} property. > +@code{Negative} is ignored if there is @code{Joined} without > +@code{RejectNegative}.
I think this doesn't describe what is implemented. Something like: the option name with the leading ``-'' removed. This chain action will propagate through the @code{Negative} property of the option to be -turned off. +turned off. The driver will prune options, removing those that are +turned off by some later option. This pruning is not done for options +with @code{Joined} or @code{JoinedOrMissing} properties, unless the +options have either @code{RejectNegative} property or the @code{Negative} +property mentions an option other than itself. As a consequence, if you have a group of mutually-exclusive options, their @code{Negative} properties should form a circular chain. ? Otherwise LGTM, but Joseph is the options machinery maintainer, so I'll defer to him here. Jakub