https://gcc.gnu.org/bugzilla/show_bug.cgi?id=41179

Martin Sebor <msebor at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |documentation
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2017-02-07
                 CC|                            |msebor at gcc dot gnu.org
     Ever confirmed|0                           |1

--- Comment #2 from Martin Sebor <msebor at gcc dot gnu.org> ---
The description of the option has changed since this issue was first raised but
I agree that the description could be made clearer.  In GCC 7 it reads:

  -fno-toplevel-reorder
       Do not reorder top-level functions, variables, and asm statements.
Output them in the same order that they appear in the input file. When this
option is used, unreferenced static variables are not removed. This option is
intended to support existing code that relies on a particular ordering. For new
code, it is better to use attributes when possible.

       Enabled at level -O0. When disabled explicitly, it also implies
-fno-section-anchors, which is otherwise enabled at -O0 on some targets.

The confusing "-fno-xxx" option ... is enabled/disabled" phrasing is used in at
least a couple pf others places:

  -fno-defer-pop
       ...
       Disabled at levels -O, -O2, -O3, -Os. 

It's unclear whether disabled means -fno-defer-pop is in effect, or whether it
means that -fdefer-pop is.

Or, arguably even more confusing:

  -fno-branch-count-reg
  ...
       Enabled by default at -O1 and higher.
       The default is -fbranch-count-reg.

Most of the remaining -fno-xxx (and -fxxx) options use the phrase "The default
is -fxxx" (or "The default is -fno-xxx"), such as "The default is
-fzero-initialized-in-bss."  I think it would be best to adopt this style
throughout.

Reply via email to