@item -falt-external-templates
@opindex falt-external-templates
-Similar to -fexternal-templates, but template instances are emitted or
+Similar to @option{-fexternal-templates}, but template instances are emitted or
not according to the place where they are first instantiated.
@xref{Template Instantiation}, for more information.
@itemx -fno-for-scope
@opindex ffor-scope
@opindex fno-for-scope
-If -ffor-scope is specified, the scope of variables declared in
+If @option{-ffor-scope} is specified, the scope of variables declared in
a @i{for-init-statement} is limited to the @samp{for} loop itself,
as specified by the C++ standard.
-If -fno-for-scope is specified, the scope of variables declared in
+If @option{-fno-for-scope} is specified, the scope of variables declared in
a @i{for-init-statement} extends to the end of the enclosing scope,
as was the case in old versions of gcc, and other (traditional)
implementations of C++.
@item -fconstant-string-class=@var{class name}
@opindex fconstant-string-class
Use @var{class name} as the name of the class to instantiate for each
-literal string specified with the syntax @code{@@"..."}. The default
+literal string specified with the syntax @code{@@"@dots{}"}. The default
class name is @code{NXConstantString}.
@item -fgnu-runtime
@cindex message formatting
Traditionally, diagnostic messages have been formatted irrespective of
-the output device's aspect (e.g. its width, ...). The options described
+the output device's aspect (e.g. its width, @dots{}). The options described
below can be used to control the diagnostic messages formatting
algorithm, e.g. how many characters per line, how often source location
information should be reported. Right now, only the C++ front-end can
@item -fdump-unnumbered
@opindex fdump-unnumbered
-When doing debugging dumps (see -d option above), suppress instruction
+When doing debugging dumps (see @option{-d} option above), suppress instruction
numbers and line number note output. This makes it more feasible to
use diff on debugging dumps for compiler invocations with different
-options, in particular with and without -g.
+options, in particular with and without @option{-g}.
@item -fdump-translation-unit (C and C++ only)
@item -fdump-translation-unit-@var{number} (C and C++ only)
@opindex fdump-translation-unit
Dump a representation of the tree structure for the entire translation
unit to a file. The file name is made by appending @file{.tu} to the
-source file name. If the -@var{number} form is used, @var{number}
-controls the details of the dump as described for the -fdump-tree options.
+source file name. If the @samp{-@var{number}} form is used, @var{number}
+controls the details of the dump as described for the @option{-fdump-tree} options.
@item -fdump-class-hierarchy (C++ only)
@item -fdump-class-hierarchy-@var{number} (C++ only)
@opindex fdump-class-hierarchy
Dump a representation of each class's hierarchy and virtual function
table layout to a file. The file name is made by appending @file{.class}
-to the source file name. If the -@var{number} form is used, @var{number}
-controls the details of the dump as described for the -fdump-tree
+to the source file name. If the @samp{-@var{number}} form is used, @var{number}
+controls the details of the dump as described for the @option{-fdump-tree}
options.
@item -fdump-ast-@var{switch} (C++ only)
@opindex fdump-ast
Control the dumping at various stages of processing the abstract syntax
tree to a file. The file name is generated by appending a switch
-specific suffix to the source file name. If the -@var{number} form is
+specific suffix to the source file name. If the @samp{-@var{number}} form is
used, @var{number} is a bit mask which controls the details of the
dump. The following bits are meaningful (these are not set symbolically,
as the primary function of these dumps is for debugging gcc itself):
@item -fgcse-lm
@opindex fgcse-lm
-When -fgcse-lm is enabled, global common subexpression elimination will
+When @option{-fgcse-lm} is enabled, global common subexpression elimination will
attempt to move loads which are only killed by stores into themselves. This
allows a loop containing a load/store sequence to be changed to a load outside
the loop, and a copy/store within the loop.
@item -fgcse-sm
@opindex fgcse-sm
-When -fgcse-sm is enabled, A store motion pass is run after global common
+When @option{-fgcse-sm} is enabled, A store motion pass is run after global common
subexpression elimination. This pass will attempt to move stores out of loops.
-When used in conjunction with -fgcse-lm, loops containing a load/store sequence
+When used in conjunction with @option{-fgcse-lm}, loops containing a load/store sequence
can be changed to a load before the loop and a store after the loop.
@item -fdelete-null-pointer-checks
@opindex MD
Like @samp{-M} but the dependency information is written to a file
rather than stdout. @code{gcc} will use the same file name and
-directory as the object file, but with the suffix ".d" instead.
+directory as the object file, but with the suffix @file{.d} instead.
-This is in addition to compiling the main file as specified ---
-@samp{-MD} does not inhibit ordinary compilation the way @samp{-M} does,
+This is in addition to compiling the main file as specified---@samp{-MD}
+does not inhibit ordinary compilation the way @samp{-M} does,
unless you also specify @samp{-MG}.
With Mach, you can use the utility @code{md} to merge multiple
The targets you specify are output in the order they appear on the
command line. @samp{-MQ} is identical to @samp{-MT}, except that the
target name is quoted for Make, but with @samp{-MT} it isn't. For
-example, -MT '$(objpfx)foo.o' gives
+example, @samp{-MT '$(objpfx)foo.o'} gives
@smallexample
$(objpfx)foo.o: /tmp/foo.c
@end smallexample
-but -MQ '$(objpfx)foo.o' gives
+but @samp{-MQ '$(objpfx)foo.o'} gives
@smallexample
$$(objpfx)foo.o: /tmp/foo.c
once per compilation, and mark the argument in the same way as
@samp{%d}. To reduce exposure to denial-of-service attacks, the file
name is now chosen in a way that is hard to predict even when previously
-chosen file names are known. For example, @samp{%g.s ... %g.o ... %g.s}
+chosen file names are known. For example, @samp{%g.s @dots{} %g.o @dots{} %g.s}
might turn into @samp{ccUVUUAU.s ccXYAXZ12.o ccUVUUAU.s}. @var{suffix} matches
the regexp @samp{[.A-Za-z]*} or the special string @samp{%O}, which is
treated exactly as if @samp{%O} had been preprocessed. Previously, @samp{%g}
Substitutes the last file name generated with @samp{%u@var{suffix}}, generating a
new one if there is no such last file name. In the absence of any
@samp{%u@var{suffix}}, this is just like @samp{%g@var{suffix}}, except they don't share
-the same suffix @emph{space}, so @samp{%g.s ... %U.s ... %g.s ... %U.s}
+the same suffix @emph{space}, so @samp{%g.s @dots{} %U.s @dots{} %g.s @dots{} %U.s}
would involve the generation of two distinct file names, one
for each @samp{%g.s} and another for each @samp{%U.s}. Previously, @samp{%U} was
simply substituted with a file name chosen for the previous @samp{%u},
Substitute the contents of spec string @var{name} at this point.
@item %[@var{name}]
-Like @samp{%(...)} but put @samp{__} around @samp{-D} arguments.
+Like @samp{%(@dots{})} but put @samp{__} around @samp{-D} arguments.
@item %x@{@var{option}@}
Accumulate an option for @samp{%X}.
@item %M
Output the multilib directory with directory seperators replaced with
-"_". If multilib directories are not set, or the multilib directory is
-"." then this option emits nothing.
+@samp{_}. If multilib directories are not set, or the multilib directory is
+@file{.} then this option emits nothing.
@item %L
Process the @code{lib} spec. This is a spec string for deciding which
@item %@{@code{S}*@}
Substitutes all the switches specified to GCC whose names start
with @code{-S}, but which also take an argument. This is used for
-switches like @samp{-o, -D, -I}, etc. GCC considers @samp{-o foo} as being
+switches like @option{-o}, @option{-D}, @option{-I}, etc.
+GCC considers @samp{-o foo} as being
one switch whose names starts with @samp{o}. %@{o*@} would substitute this
text, including the space. Thus two arguments would be generated.
wild card is optional. Useful for CPP as @samp{%@{D*&U*&A*@}}.
@item %@{<@code{S}@}
-Remove all occurrences of @code{-S} from the command line. Note - this
+Remove all occurrences of @code{-S} from the command line. Note---this
command is position dependent. @samp{%} commands in the spec string
before this option will see @code{-S}, @samp{%} commands in the spec
string after this option will not.
or spaces, or even newlines. They are processed as usual, as described
above.
-The @samp{-O, -f, -m, and -W} switches are handled specifically in these
+The @option{-O}, @option{-f}, @option{-m}, and @option{-W}
+switches are handled specifically in these
constructs. If another value of @samp{-O} or the negated form of a @samp{-f, -m, or
-W} switch is found later in the command line, the earlier switch
value is ignored, except with @{@code{S}*@} where @code{S} is just one
@item -m5200
@opindex m5200
-Generate output for a 520X "coldfire" family cpu. This is the default
+Generate output for a 520X ``coldfire'' family cpu. This is the default
when the compiler is configured for 520X-based systems.
Use this option for microcontroller with a 5200 core, including
@item -mpcrel
@opindex mpcrel
Use the pc-relative addressing mode of the 68000 directly, instead of
-using a global offset table. At present, this option implies -fpic,
-allowing at most a 16-bit offset for pc-relative addressing. -fPIC is
-not presently supported with -mpcrel, though this could be supported for
+using a global offset table. At present, this option implies @option{-fpic},
+allowing at most a 16-bit offset for pc-relative addressing. @option{-fPIC} is
+not presently supported with @option{-mpcrel}, though this could be supported for
68020 and higher processors.
@item -mno-strict-align
@opindex mno-flat
@opindex mflat
With @samp{-mflat}, the compiler does not generate save/restore instructions
-and will use a "flat" or single register window calling convention.
+and will use a ``flat'' or single register window calling convention.
This model uses %i7 as the frame pointer and is compatible with the normal
register window model. Code from either may be intermixed.
The local registers and the input registers (0-5) are still treated as
-"call saved" registers and will be saved on the stack as necessary.
+``call saved'' registers and will be saved on the stack as necessary.
With @samp{-mno-flat} (the default), the compiler emits save/restore
instructions (except for leaf functions) and is the normal mode of operation.
since the processor will only fetch one 32-bit aligned object from
memory.
-The default setting for most targets is -mno-alignment-traps, since
+The default setting for most targets is @option{-mno-alignment-traps}, since
this produces better code when there are no half-word memory
instructions available.
All modules should be compiled with the same @samp{-G @var{num}} value.
Compiling with different values of @var{num} may or may not work; if it
-doesn't the linker will give an error message - incorrect code will not be
+doesn't the linker will give an error message---incorrect code will not be
generated.
@end table
@samp{-muse-div-instruction} is ignored, and the div instruction is used
for signed integer division.
-Note that the result of dividing INT_MIN by -1 is undefined. In
+Note that the result of dividing @code{INT_MIN} by -1 is undefined. In
particular, the behavior of such a division with and without
@samp{-muse-div-instruction} may differ.
@itemx -mno-uninit-const-in-rodata
@opindex muninit-const-in-rodata
@opindex mno-uninit-const-in-rodata
-When used together with -membedded-data, it will always store uninitialized
+When used together with @option{-membedded-data}, it will always store uninitialized
const variables in the read-only data section.
@item -msingle-float
@opindex m486
@opindex mpentium
@opindex mpentiumpro
-Synonyms for -mcpu=i386, -mcpu=i486, -mcpu=pentium, and -mcpu=pentiumpro
+Synonyms for @option{-mcpu=i386}, @option{-mcpu=i486}, @option{-mcpu=pentium}, and @option{-mcpu=pentiumpro}
respectively. These synonyms are deprecated.
@item -mintel-syntax
computed in the function prologue. This in faster on most modern CPUs
because of reduced dependencies, improved scheduling and reduced stack usage
when preferred stack boundary is not equal to 2. The drawback is a notable
-increase in code size. This switch implies -mno-push-args.
+increase in code size. This switch implies @option{-mno-push-args}.
@item -mthreads
@opindex mthreads
@opindex mpa-risc-1-0
@opindex mpa-risc-1-1
@opindex mpa-risc-2-0
-Synonyms for -march=1.0, -march=1.1, and -march=2.0 respectively.
+Synonyms for @option{-march=1.0}, @option{-march=1.1}, and @option{-march=2.0} respectively.
@item -mbig-switch
@opindex mbig-switch
@item -ms2600
@opindex ms2600
-Generate code for the H8/S2600. This switch must be used with -ms.
+Generate code for the H8/S2600. This switch must be used with @option{-ms}.
@item -mint32
@opindex mint32
@opindex mdalign
Align doubles at 64-bit boundaries. Note that this changes the calling
conventions, and thus some functions from the standard C library will
-not work unless you recompile it first with -mdalign.
+not work unless you recompile it first with @option{-mdalign}.
@item -mrelax
@opindex mrelax
For the C3x use the 24-bit MPYI instruction for integer multiplies
instead of a library call to guarantee 32-bit results. Note that if one
of the operands is a constant, then the multiplication will be performed
-using shifts and adds. If the -mmpyi option is not specified for the C3x,
+using shifts and adds. If the @option{-mmpyi} option is not specified for the C3x,
then squaring operations are performed inline instead of a library call.
@item -mfast-fix
for innermost loops that do not call functions or jump across the loop
boundaries. There is no advantage having nested RPTB loops due to the
overhead required to save and restore the RC, RS, and RE registers.
-This is enabled by default with -O2.
+This is enabled by default with @option{-O2}.
@item -mrpts=@var{count}
@itemx -mno-rpts
@opindex mparallel-insns
@opindex mno-parallel-insns
Allow the generation of parallel instructions. This is enabled by
-default with -O2.
+default with @option{-O2}.
@item -mparallel-mpy
@itemx -mno-parallel-mpy
@opindex mparallel-mpy
@opindex mno-parallel-mpy
Allow the generation of MPY||ADD and MPY||SUB parallel instructions,
-provided -mparallel-insns is also specified. These instructions have
+provided @option{-mparallel-insns} is also specified. These instructions have
tight register constraints which can pessimize the code generation
of large functions.
In multiple-processor systems, there are many ARC variants with different
instruction and register set characteristics. This flag prevents code
compiled for one cpu to be linked with code compiled for another.
-No facility exists for handling variants that are "almost identical".
+No facility exists for handling variants that are ``almost identical''.
This is an all or nothing option.
@item -mcpu=@var{cpu}
@item -fleading-underscore
@opindex fleading-underscore
-This option and its counterpart, -fno-leading-underscore, forcibly
+This option and its counterpart, @option{-fno-leading-underscore}, forcibly
change the way C symbols are represented in the object file. One use
is to help link with legacy assembly code.