While I was looking at something else I noticed that invoke.texi
explicitly documents both the positive and negative forms of several -g
options, both in the option summary list and the longer descriptions in
@node Debugging Options.
Well, I see that the introductory text to the options chapter does say
Many options have long names starting with @samp{-f} or with
@samp{-W}---for example,
@option{-fmove-loop-invariants}, @option{-Wformat} and so on. Most of
these have both positive and negative forms; the negative form of
@option{-ffoo} is @option{-fno-foo}. This manual documents
only one of these two forms, whichever one is not the default.
so to split hairs the convention that we only document one form only
applies to -f and -W options and not -g options, but it's silly to be
inconsistent about it. But, looking at these -g options, it's not
entirely clear to me which form is the default and which form we ought
to document. E.g. whether -gbtf is the default is target-specific;
-gprune-btf is the default if -gbtf is enabled but doesn't make sense at
all otherwise.
I also see several -f, -W, and -m options that are documented as
"enabled by default", but listed in the positive form. Many others
listed in the positive form are enabled by default on some targets and
not others, or by some other optimization or target-specific codegen
options. So generally we are not applying the stated convention
consistently beyond these -g options, either.
I think it might simplify things if we documented all options in the
positive form rather than having this mix of positive and negative, and
continual confusion about what "the default" is when it depends on other
things! Can we get some consensus between us documentation maintainers
about what to do here? Or does anybody else have strong opinions about it?
-Sandra