**/*.texi: Reorder index entries

This change is a generalization of r13-6292-gddf6fe375d9110.

Historically, makeinfo exhibited a bug, due to which a structure like:

  @item foo
  @cindex foo
  @cindex bar

... would be transformed into an item heading, with the first index
entry on it, followed by an item body, with the second index entry in
it.  This has often lead to index entries not linking to relevant items,
but rather, just below them.

This bug was exhibited in both Info and HTML documentation, and was most
glaringly obvious in the latter.

After a discussion with the Texinfo developers, it was decided that the
appropriate construct for this case is:

  @cindex foo
  @cindex bar
  @item foo

... which behaves correctly in newer versions, linking all the index
entries to the item itself.  This pattern also produces copiable
anchors in HTML output.

This commit fixes most indices to follow the pattern above, however,
omits relevant changes in the Ada manuals, as the algorithm described
below lead to many false positives and unwanted changes in that manual.

Much like the previous commit, this change is mostly mechanical, with a
simple script.  I have, however, gone over the patch myself also, to see
if there's anything that ought to be kept as-is.  Formatter:

  # GPL3+
  use v5.35;
  use strict;
  use warnings;

  my @lineq = ();
  my @itemq = ();
  my @indxq = ();
  my $lstin = 0;

  while (<>)
    {
      push (@lineq, $_);
      if (/^\@[a-zA-Z0-9]{1,2}index\W/)
        {
          $lstin = @lineq;
          push (@indxq, $_);
          next;
        }
      if (/^\@itemx?\W/)
        {
          $lstin = @lineq;
          push (@itemq, $_);
          next;
        }
      next if $lstin && /^\s*(\@c(omment)?\W.*)?$/;

      if (@indxq and @itemq)
        {
          print @indxq;
          print @itemq;
          print @lineq[$lstin..@lineq-1];
        }
      else
        {
          print @lineq;
        }
      @lineq = ();
      @itemq = ();
      @indxq = ();
      $lstin = 0;
    }

  if (@indxq and @itemq)
    {
      print @indxq;
      print @itemq;
      print @lineq[$lstin..@lineq-1];
    }
  else
    {
      print @lineq;
    }

  # Local Variables:
  # indent-tabs-mode: nil
  # End:

gcc/d/ChangeLog:

	* implement-d.texi: Reorder index entries around @items.

gcc/ChangeLog:

	* doc/cfg.texi: Reorder index entries around @items.
	* doc/cpp.texi: Ditto.
	* doc/cppenv.texi: Ditto.
	* doc/cppopts.texi: Ditto.
	* doc/generic.texi: Ditto.
	* doc/install.texi: Ditto.
	* doc/extend.texi: Ditto.
	* doc/invoke.texi: Ditto.
	* doc/md.texi: Ditto.
	* doc/rtl.texi: Ditto.
	* doc/tm.texi.in: Ditto.
	* doc/trouble.texi: Ditto.
	* doc/tm.texi: Regenerate.

gcc/fortran/ChangeLog:

	* invoke.texi: Reorder index entries around @items.

gcc/go/ChangeLog:

	* gccgo.texi: Reorder index entries around @items.
This commit is contained in:
Arsen Arsenović 2023-02-23 11:27:11 +01:00 committed by Gerald Pfeifer
parent f83e76c3f9
commit f33d7a88d0
16 changed files with 701 additions and 702 deletions

View file

@ -126,11 +126,11 @@ The following attributes are supported on most targets.
@table @code
@cindex @code{alloc_size} function attribute
@cindex @code{alloc_size} variable attribute
@item @@(gcc.attributes.alloc_size (@var{sizeArgIdx}))
@itemx @@(gcc.attributes.alloc_size (@var{sizeArgIdx}, @var{numArgIdx}))
@itemx @@(gcc.attributes.alloc_size (@var{sizeArgIdx}, @var{numArgIdx}, @var{zeroBasedNumbering}))
@cindex @code{alloc_size} function attribute
@cindex @code{alloc_size} variable attribute
The @code{@@alloc_size} attribute may be applied to a function - or a function
pointer variable - that returns a pointer and takes at least one argument of
@ -151,8 +151,8 @@ argument specifying the element count.
void malloc_cb(@@alloc_size(1) void* function(size_t) ptr) @{ @}
@end smallexample
@item @@(gcc.attributes.always_inline)
@cindex @code{always_inline} function attribute
@item @@(gcc.attributes.always_inline)
The @code{@@always_inline} attribute inlines the function independent of any
restrictions that otherwise apply to inlining. Failure to inline such a
@ -162,8 +162,8 @@ function is diagnosed as an error.
@@always_inline int func();
@end smallexample
@item @@(gcc.attributes.cold)
@cindex @code{cold} function attribute
@item @@(gcc.attributes.cold)
The @code{@@cold} attribute on functions is used to inform the compiler that the
function is unlikely to be executed. The function is optimized for size
@ -176,8 +176,8 @@ cold functions within code are considered to be cold too.
@@cold int func();
@end smallexample
@item @@(gcc.attributes.flatten)
@cindex @code{flatten} function attribute
@item @@(gcc.attributes.flatten)
The @code{@@flatten} attribute is used to inform the compiler that every call
inside this function should be inlined, if possible. Functions declared with
@ -187,8 +187,8 @@ attribute @code{@@noinline} and similar are not inlined.
@@flatten int func();
@end smallexample
@item @@(gcc.attributes.no_icf)
@cindex @code{no_icf} function attribute
@item @@(gcc.attributes.no_icf)
The @code{@@no_icf} attribute prevents a function from being merged with
another semantically equivalent function.
@ -197,8 +197,8 @@ another semantically equivalent function.
@@no_icf int func();
@end smallexample
@item @@(gcc.attributes.no_sanitize ("@var{sanitize_option}"))
@cindex @code{no_sanitize} function attribute
@item @@(gcc.attributes.no_sanitize ("@var{sanitize_option}"))
The @code{@@no_sanitize} attribute on functions is used to inform the compiler
that it should not do sanitization of any option mentioned in
@ -210,8 +210,8 @@ option can be provided.
@@no_sanitize("alignment,object-size") void func2() @{ @}
@end smallexample
@item @@(gcc.attributes.noclone)
@cindex @code{noclone} function attribute
@item @@(gcc.attributes.noclone)
The @code{@@noclone} attribute prevents a function from being considered for
cloning - a mechanism that produces specialized copies of functions and which
@ -221,8 +221,8 @@ is (currently) performed by interprocedural constant propagation.
@@noclone int func();
@end smallexample
@item @@(gcc.attributes.noinline)
@cindex @code{noinline} function attribute
@item @@(gcc.attributes.noinline)
The @code{@@noinline} attribute prevents a function from being considered for
inlining. If the function does not have side effects, there are optimizations
@ -234,8 +234,8 @@ the function call is live. To keep such calls from being optimized away, put
@@noinline int func();
@end smallexample
@item @@(gcc.attributes.noipa)
@cindex @code{noipa} function attribute
@item @@(gcc.attributes.noipa)
The @code{@@noipa} attribute disables interprocedural optimizations between the
function with this attribute and its callers, as if the body of the function is
@ -253,8 +253,8 @@ This attribute is supported mainly for the purpose of testing the compiler.
@@noipa int func();
@end smallexample
@item @@(gcc.attributes.noplt)
@cindex @code{noplt} function attribute
@item @@(gcc.attributes.noplt)
The @code{@@noplt} attribute is the counterpart to option @option{-fno-plt}.
Calls to functions marked with this attribute in position-independent code do
@ -267,8 +267,8 @@ are marked to not use the PLT to use the GOT instead.
@@noplt int func();
@end smallexample
@item @@(gcc.attributes.optimize (@var{arguments}))
@cindex @code{optimize} function attribute
@item @@(gcc.attributes.optimize (@var{arguments}))
The @code{@@optimize} attribute is used to specify that a function is to be
compiled with different optimization options than specified on the command
@ -295,8 +295,8 @@ It is not suitable in production code.
@@optimize("no-finite-math-only", 3) double fn7(double x);
@end smallexample
@item @@(gcc.attributes.register ("@var{registerName}"))
@cindex @code{register} variable attribute
@item @@(gcc.attributes.register ("@var{registerName}"))
The @code{@@register} attribute specifies that a local or @code{__gshared}
variable is to be given a register storage-class in the C99 sense of the term,
@ -311,8 +311,8 @@ error to take the address of a register variable.
void func() @{ @@register("r10") long r10 = 0x2a; @}
@end smallexample
@item @@(gcc.attributes.restrict)
@cindex @code{restrict} parameter attribute
@item @@(gcc.attributes.restrict)
The @code{@@restrict} attribute specifies that a function parameter is to be
restrict-qualified in the C99 sense of the term. The parameter needs to boil
@ -323,9 +323,9 @@ reference, or a @code{ref} parameter.
void func(@@restrict ref const float[16] array);
@end smallexample
@item @@(gcc.attributes.section ("@var{sectionName}"))
@cindex @code{section} function attribute
@cindex @code{section} variable attribute
@item @@(gcc.attributes.section ("@var{sectionName}"))
The @code{@@section} attribute specifies that a function or variable lives in a
particular section. For when you need certain particular functions to appear
@ -341,8 +341,8 @@ instead.
@@section("stack") ubyte[10000] stack;
@end smallexample
@item @@(gcc.attributes.simd)
@cindex @code{simd} function attribute
@item @@(gcc.attributes.simd)
The @code{@@simd} attribute enables creation of one or more function versions
that can process multiple arguments using SIMD instructions from a single
@ -355,8 +355,8 @@ Vector ABI document.
@@simd double sqrt(double x);
@end smallexample
@item @@(gcc.attributes.simd_clones ("@var{mask}"))
@cindex @code{simd_clones} function attribute
@item @@(gcc.attributes.simd_clones ("@var{mask}"))
The @code{@@simd_clones} attribute is the same as @code{@@simd}, but also
includes a @var{mask} argument. Valid masks values are @code{notinbranch} or
@ -367,8 +367,8 @@ clones correspondingly.
@@simd_clones("notinbranch") double atan2(double y, double x);
@end smallexample
@item @@(gcc.attributes.symver ("@var{arguments}"))
@cindex @code{symver} function attribute
@item @@(gcc.attributes.symver ("@var{arguments}"))
The @code{@@symver} attribute creates a symbol version on ELF targets.
The syntax of the string parameter is @code{"@var{name}@@@var{nodename}"}.
@ -387,8 +387,8 @@ resolve @var{name} by the linker.
@@symver("foo@@VERS_1") int foo_v1();
@end smallexample
@item @@(gcc.attributes.target ("@var{options}"))
@cindex @code{target} function attribute
@item @@(gcc.attributes.target ("@var{options}"))
The @code{@@target} attribute is used to specify that a function is to be
compiled with different target options than specified on the command line. One
@ -407,8 +407,8 @@ The options supported are specific to each target.
@@target("sse3") void sse3_func();
@end smallexample
@item @@(gcc.attributes.target_clones ("@var{options}"))
@cindex @code{target_clones} function attribute
@item @@(gcc.attributes.target_clones ("@var{options}"))
The @code{@@target_clones} attribute is used to specify that a function be
cloned into multiple versions compiled with different target @var{options} than
@ -423,9 +423,9 @@ a function with @code{@@target_clones} attribute.
@@target_clones("sse4.1,avx,default") double func(double x);
@end smallexample
@item @@(gcc.attributes.used)
@cindex @code{used} function attribute
@cindex @code{used} variable attribute
@item @@(gcc.attributes.used)
The @code{@@used} attribute, annotated to a function or variable, means that
code must be emitted for the function even if it appears that the function is
@ -436,9 +436,9 @@ only in inline assembly.
@@used __gshared int var = 0x1000;
@end smallexample
@item @@(gcc.attributes.visibility ("@var{visibilityName}"))
@cindex @code{visibility} function attribute
@cindex @code{visibility} variable attribute
@item @@(gcc.attributes.visibility ("@var{visibilityName}"))
The @code{@@visibility} attribute affects the linkage of the declaration to
which it is attached. It can be applied to variables, types, and functions.
@ -450,9 +450,9 @@ There are four supported visibility_type values: @code{default}, @code{hidden},
@@visibility("protected") void func() @{ @}
@end smallexample
@item @@(gcc.attributes.weak)
@cindex @code{weak} function attribute
@cindex @code{weak} variable attribute
@item @@(gcc.attributes.weak)
The @code{@@weak} attribute causes a declaration of an external symbol to be
emitted as a weak symbol rather than a global. This is primarily useful in
@ -479,43 +479,43 @@ The following attributes are defined for compatibility with other compilers.
@table @code
@cindex @code{allocSize} function attribute
@item @@(gcc.attributes.allocSize (@var{sizeArgIdx}))
@itemx @@(gcc.attributes.allocSize (@var{sizeArgIdx}, @var{numArgIdx}))
@item @@(gcc.attributes.allocSize (@var{sizeArgIdx}))
@cindex @code{allocSize} function attribute
These attributes are a synonym for
@code{@@alloc_size(@var{sizeArgIdx}, @var{numArgIdx}, true)}.
Unlike @code{@@alloc_size}, it uses 0-based index of the function arguments.
@item @@(gcc.attributes.assumeUsed)
@cindex @code{assumeUsed} function attribute
@cindex @code{assumeUsed} variable attribute
@item @@(gcc.attributes.assumeUsed)
This attribute is a synonym for @code{@@used}.
@cindex @code{dynamicCompile} function attribute
@item @@(gcc.attributes.dynamicCompile)
@itemx @@(gcc.attributes.dynamicCompileConst)
@itemx @@(gcc.attributes.dynamicCompileEmit)
@cindex @code{dynamicCompile} function attribute
These attributes are accepted, but have no effect.
@item @@(gcc.attributes.fastmath)
@cindex @code{fastmath} function attribute
@item @@(gcc.attributes.fastmath)
This attribute is a synonym for @code{@@optimize("Ofast")}. Explicitly sets
"fast-math" for a function, enabling aggressive math optimizations.
@item @@(gcc.attributes.hidden)
@cindex @code{hidden} function attribute
@cindex @code{hidden} variable attribute
@item @@(gcc.attributes.hidden)
This attribute is a synonym for @code{@@visibility("hidden")}. Sets the
visibility of a function or global variable to "hidden".
@item @@(gcc.attributes.naked)
@cindex @code{naked} function attribute
@item @@(gcc.attributes.naked)
This attribute is a synonym for @code{@@attribute("naked")}. Adds GCC's
"naked" attribute to a function, disabling function prologue / epilogue
@ -524,14 +524,14 @@ While using extended @code{asm} or a mixture of basic @code{asm} and D code may
appear to work, they cannot be depended upon to work reliably and are not
supported.
@item @@(gcc.attributes.noSanitize ("@var{sanitize_option}"))
@cindex @code{noSanitize} function attribute
@item @@(gcc.attributes.noSanitize ("@var{sanitize_option}"))
This attribute is a synonym for @code{@@no_sanitize("sanitize_option")}.
@item @@(gcc.attributes.optStrategy ("@var{strategy}"))
@cindex @code{optStrategy} function attribute
@item @@(gcc.attributes.optStrategy ("@var{strategy}"))
This attribute is a synonym for @code{@@optimize("O0")} and
@code{@@optimize("Os")}. Sets the optimization strategy for a function. Valid

View file

@ -269,8 +269,8 @@ These edges are used for unconditional or conditional jumps and in
RTL also for table jumps. They are the easiest to manipulate as they
may be freely redirected when the flow graph is not in SSA form.
@item fall-thru
@findex EDGE_FALLTHRU, force_nonfallthru
@item fall-thru
Fall-thru edges are present in case where the basic block may continue
execution to the following one without branching. These edges have
the @code{EDGE_FALLTHRU} flag set. Unlike other types of edges, these
@ -279,9 +279,9 @@ instruction stream. The function @code{force_nonfallthru} is
available to insert an unconditional jump in the case that redirection
is needed. Note that this may require creation of a new basic block.
@item exception handling
@cindex exception handling
@findex EDGE_ABNORMAL, EDGE_EH
@item exception handling
Exception handling edges represent possible control transfers from a
trapping instruction to an exception handler. The definition of
``trapping'' varies. In C++, only function calls can throw, but for
@ -310,17 +310,17 @@ but this predicate only checks for possible memory traps, as in
dereferencing an invalid pointer location.
@item sibling calls
@cindex sibling call
@findex EDGE_ABNORMAL, EDGE_SIBCALL
@item sibling calls
Sibling calls or tail calls terminate the function in a non-standard
way and thus an edge to the exit must be present.
@code{EDGE_SIBCALL} and @code{EDGE_ABNORMAL} are set in such case.
These edges only exist in the RTL representation.
@item computed jumps
@cindex computed jump
@findex EDGE_ABNORMAL
@item computed jumps
Computed jumps contain edges to all labels in the function referenced
from the code. All those edges have @code{EDGE_ABNORMAL} flag set.
The edges used to represent computed jumps often cause compile time
@ -369,9 +369,9 @@ Be aware of that when you work on passes in that area. There have
been numerous examples already where the compile time for code with
unfactored computed jumps caused some serious headaches.
@item nonlocal goto handlers
@cindex nonlocal goto handler
@findex EDGE_ABNORMAL, EDGE_ABNORMAL_CALL
@item nonlocal goto handlers
GCC allows nested functions to return into caller using a @code{goto}
to a label passed to as an argument to the callee. The labels passed
to nested functions contain special code to cleanup after function
@ -380,9 +380,9 @@ receivers''. If a function contains such nonlocal goto receivers, an
edge from the call to the label is created with the
@code{EDGE_ABNORMAL} and @code{EDGE_ABNORMAL_CALL} flags set.
@item function entry points
@cindex function entry point, alternate function entry point
@findex LABEL_ALTERNATE_NAME
@item function entry points
By definition, execution of function starts at basic block 0, so there
is always an edge from the @code{ENTRY_BLOCK_PTR} to basic block 0.
There is no @code{GIMPLE} representation for alternate entry points at

View file

@ -292,8 +292,8 @@ roughly to the first three ``phases of translation'' described in the C
standard.
@enumerate
@item
@cindex line endings
@item
The input file is read into memory and broken into lines.
Different systems use different conventions to indicate the end of a
@ -312,8 +312,8 @@ of the file is considered to implicitly supply one. The C standard says
that this condition provokes undefined behavior, so GCC will emit a
warning message.
@item
@cindex trigraphs
@item
@anchor{trigraphs}If trigraphs are enabled, they are replaced by their
corresponding single characters. By default GCC ignores trigraphs,
but if you request a strictly conforming mode with the @option{-std}
@ -346,9 +346,9 @@ Trigraph: ??( ??) ??< ??> ??= ??/ ??' ??! ??-
Replacement: [ ] @{ @} # \ ^ | ~
@end smallexample
@item
@cindex continued lines
@cindex backslash-newline
@item
Continued lines are merged into one long line.
A continued line is a line which ends with a backslash, @samp{\}. The
@ -365,10 +365,10 @@ is still a continued line. However, as this is usually the result of an
editing mistake, and many compilers will not accept it as a continued
line, GCC will warn you about it.
@item
@cindex comments
@cindex line comments
@cindex block comments
@item
All comments are replaced with single spaces.
There are two kinds of comments. @dfn{Block comments} begin with
@ -694,8 +694,8 @@ C preprocessing directive @samp{#include}.
Header files serve two purposes.
@itemize @bullet
@item
@cindex system header files
@item
System header files declare the interfaces to parts of the operating
system. You include them in your program to supply the definitions and
declarations you need to invoke system calls and libraries.
@ -1121,8 +1121,8 @@ Header files found in directories added to the search path with the
@option{-isystem} and @option{-idirafter} command-line options are
treated as system headers for the purposes of diagnostics.
@item
@findex #pragma GCC system_header
@item
There is also a directive, @code{@w{#pragma GCC system_header}}, which
tells GCC to consider the rest of the current include file a system
header, no matter where it was found. Code that comes before the

View file

@ -44,8 +44,8 @@ See also @ref{Search Path}.
@end ifset
@c man begin ENVIRONMENT
@item DEPENDENCIES_OUTPUT
@cindex dependencies for make as output
@item DEPENDENCIES_OUTPUT
If this variable is set, its value specifies how to output
dependencies for Make based on the non-system header files processed
by the compiler. System header files are ignored in the dependency
@ -67,8 +67,8 @@ the options @option{-MM} and @option{-MF}
@end ifclear
with an optional @option{-MT} switch too.
@item SUNPRO_DEPENDENCIES
@cindex dependencies for make as output
@item SUNPRO_DEPENDENCIES
This variable is the same as @env{DEPENDENCIES_OUTPUT} (see above),
except that system header files are not ignored, so it implies
@option{-M} rather than @option{-MM}. However, the dependence on the

View file

@ -77,9 +77,9 @@ This option is supported on GNU/Linux targets, most other Unix derivatives,
and also on x86 Cygwin and MinGW targets.
@opindex M
@item -M
@cindex @command{make}
@cindex dependencies, @command{make}
@item -M
Instead of outputting the result of preprocessing, output a rule
suitable for @command{make} describing the dependencies of the main
source file. The preprocessor outputs one @command{make} rule containing
@ -308,15 +308,15 @@ location independent. This option also affects
@option{-ffile-prefix-map}.
@opindex fexec-charset
@item -fexec-charset=@var{charset}
@cindex character set, execution
@item -fexec-charset=@var{charset}
Set the execution character set, used for string and character
constants. The default is UTF-8. @var{charset} can be any encoding
supported by the system's @code{iconv} library routine.
@opindex fwide-exec-charset
@item -fwide-exec-charset=@var{charset}
@cindex character set, wide execution
@item -fwide-exec-charset=@var{charset}
Set the wide execution character set, used for wide string and
character constants. The default is one of UTF-32BE, UTF-32LE, UTF-16BE,
or UTF-16LE, whichever corresponds to the width of @code{wchar_t} and the
@ -326,8 +326,8 @@ by the system's @code{iconv} library routine; however, you will have
problems with encodings that do not fit exactly in @code{wchar_t}.
@opindex finput-charset
@item -finput-charset=@var{charset}
@cindex character set, input
@item -finput-charset=@var{charset}
Set the input character set, used for translation from the character
set of the input file to the source character set used by GCC@. If the
locale does not specify, or GCC cannot get this information from the

File diff suppressed because it is too large Load diff

View file

@ -1743,9 +1743,9 @@ represented. Unrepresented fields will be cleared (zeroed), unless the
CONSTRUCTOR_NO_CLEARING flag is set, in which case their value becomes
undefined.
@item COMPOUND_LITERAL_EXPR
@findex COMPOUND_LITERAL_EXPR_DECL_EXPR
@findex COMPOUND_LITERAL_EXPR_DECL
@item COMPOUND_LITERAL_EXPR
These nodes represent ISO C99 compound literals. The
@code{COMPOUND_LITERAL_EXPR_DECL_EXPR} is a @code{DECL_EXPR}
containing an anonymous @code{VAR_DECL} for

View file

@ -2618,18 +2618,18 @@ script provides three variables for this:
@table @code
@item build_configargs
@cindex @code{build_configargs}
@item build_configargs
The contents of this variable is passed to all build @command{configure}
scripts.
@item host_configargs
@cindex @code{host_configargs}
@item host_configargs
The contents of this variable is passed to all host @command{configure}
scripts.
@item target_configargs
@cindex @code{target_configargs}
@item target_configargs
The contents of this variable is passed to all target @command{configure}
scripts.

View file

@ -2529,9 +2529,9 @@ ISO C2X.
@opindex fno-builtin
@opindex fbuiltin
@cindex built-in functions
@item -fno-builtin
@itemx -fno-builtin-@var{function}
@cindex built-in functions
Don't recognize built-in functions that do not begin with
@samp{__builtin_} as prefix. @xref{Other Builtins,,Other built-in
functions provided by GCC}, for details of the functions affected,
@ -2575,8 +2575,8 @@ third arguments. The value of such an expression is void. This option
is not supported for C++.
@opindex ffreestanding
@item -ffreestanding
@cindex hosted environment
@item -ffreestanding
Assert that compilation targets a freestanding environment. This
implies @option{-fno-builtin}. A freestanding environment
@ -2631,8 +2631,8 @@ in effect for @code{inline} functions. @xref{Common Predefined
Macros,,,cpp,The C Preprocessor}.
@opindex fhosted
@item -fhosted
@cindex hosted environment
@item -fhosted
Assert that compilation targets a hosted environment. This implies
@option{-fbuiltin}. A hosted environment is one in which the
@ -2668,12 +2668,12 @@ Note that this option is off for all targets except for x86
targets using ms-abi.
@opindex foffload
@item -foffload=disable
@itemx -foffload=default
@itemx -foffload=@var{target-list}
@cindex Offloading targets
@cindex OpenACC offloading targets
@cindex OpenMP offloading targets
@item -foffload=disable
@itemx -foffload=default
@itemx -foffload=@var{target-list}
Specify for which OpenMP and OpenACC offload targets code should be generated.
The default behavior, equivalent to @option{-foffload=default}, is to generate
code for all supported offload targets. The @option{-foffload=disable} form
@ -2686,11 +2686,11 @@ run the compiler with @option{-v} to show the list of configured offload targets
under @code{OFFLOAD_TARGET_NAMES}.
@opindex foffload-options
@item -foffload-options=@var{options}
@itemx -foffload-options=@var{target-triplet-list}=@var{options}
@cindex Offloading options
@cindex OpenACC offloading options
@cindex OpenMP offloading options
@item -foffload-options=@var{options}
@itemx -foffload-options=@var{target-triplet-list}=@var{options}
With @option{-foffload-options=@var{options}}, GCC passes the specified
@var{options} to the compilers for all enabled offloading targets. You can
@ -2708,8 +2708,8 @@ Typical command lines are
@end smallexample
@opindex fopenacc
@item -fopenacc
@cindex OpenACC accelerator programming
@item -fopenacc
Enable handling of OpenACC directives @code{#pragma acc} in C/C++ and
@code{!$acc} in Fortran. When @option{-fopenacc} is specified, the
compiler generates accelerated code according to the OpenACC Application
@ -2718,16 +2718,16 @@ implies @option{-pthread}, and thus is only supported on targets that
have support for @option{-pthread}.
@opindex fopenacc-dim
@item -fopenacc-dim=@var{geom}
@cindex OpenACC accelerator programming
@item -fopenacc-dim=@var{geom}
Specify default compute dimensions for parallel offload regions that do
not explicitly specify. The @var{geom} value is a triple of
':'-separated sizes, in order 'gang', 'worker' and, 'vector'. A size
can be omitted, to use a target-specific default value.
@opindex fopenmp
@item -fopenmp
@cindex OpenMP parallel
@item -fopenmp
Enable handling of OpenMP directives @code{#pragma omp} in C/C++,
@code{[[omp::directive(...)]]} and @code{[[omp::sequence(...)]]} in C++ and
@code{!$omp} in Fortran. When @option{-fopenmp} is specified, the
@ -2738,9 +2738,9 @@ have support for @option{-pthread}. @option{-fopenmp} implies
@option{-fopenmp-simd}.
@opindex fopenmp-simd
@item -fopenmp-simd
@cindex OpenMP SIMD
@cindex SIMD
@item -fopenmp-simd
Enable handling of OpenMP's @code{simd}, @code{declare simd},
@code{declare reduction}, @code{assume}, @code{ordered}, @code{scan},
@code{loop} directives and combined or composite directives with
@ -2749,9 +2749,9 @@ Enable handling of OpenMP's @code{simd}, @code{declare simd},
and @code{!$omp} in Fortran. Other OpenMP directives are ignored.
@opindex fopenmp-target-simd-clone
@cindex OpenMP target SIMD clone
@item -fopenmp-target-simd-clone
@item -fopenmp-target-simd-clone=@var{device-type}
@cindex OpenMP target SIMD clone
In addition to generating SIMD clones for functions marked with the
@code{declare simd} directive, GCC also generates clones
for functions marked with the OpenMP @code{declare target} directive
@ -3353,14 +3353,14 @@ of a named module remain implicitly inline, regardless.)
@item -fno-module-lazy
Disable lazy module importing and module mapper creation.
@vindex CXX_MODULE_MAPPER @r{environment variable}
@opindex fmodule-mapper
@item -fmodule-mapper=@r{[}@var{hostname}@r{]}:@var{port}@r{[}?@var{ident}@r{]}
@itemx -fmodule-mapper=|@var{program}@r{[}?@var{ident}@r{]} @var{args...}
@itemx -fmodule-mapper==@var{socket}@r{[}?@var{ident}@r{]}
@itemx -fmodule-mapper=<>@r{[}@var{inout}@r{]}@r{[}?@var{ident}@r{]}
@itemx -fmodule-mapper=<@var{in}>@var{out}@r{[}?@var{ident}@r{]}
@itemx -fmodule-mapper=@var{file}@r{[}?@var{ident}@r{]}
@vindex CXX_MODULE_MAPPER @r{environment variable}
@opindex fmodule-mapper
An oracle to query for module name to filename mappings. If
unspecified the @env{CXX_MODULE_MAPPER} environment variable is used,
and if that is unset, an in-process default is provided.
@ -4025,9 +4025,9 @@ Enabled by default with @option{-std=c++17}.
@opindex Wreorder
@opindex Wno-reorder
@item -Wreorder @r{(C++ and Objective-C++ only)}
@cindex reordering, warning
@cindex warning for reordering of member initializers
@item -Wreorder @r{(C++ and Objective-C++ only)}
Warn when the order of member initializers given in the code does not
match the order in which they must be executed. For instance:
@ -4256,10 +4256,10 @@ less vulnerable to unintended effects and much easier to search for.
@opindex Woverloaded-virtual
@opindex Wno-overloaded-virtual
@item -Woverloaded-virtual @r{(C++ and Objective-C++ only)}
@itemx -Woverloaded-virtual=@var{n}
@cindex overloaded virtual function, warning
@cindex warning for overloaded virtual function
@item -Woverloaded-virtual @r{(C++ and Objective-C++ only)}
@itemx -Woverloaded-virtual=@var{n}
Warn when a function declaration hides virtual functions from a
base class. For example, in:
@ -5067,10 +5067,10 @@ prefix) for physical lines that result from the process of breaking
a message which is too long to fit on a single line.
@opindex fdiagnostics-color
@item -fdiagnostics-color[=@var{WHEN}]
@itemx -fno-diagnostics-color
@cindex highlight, color
@vindex GCC_COLORS @r{environment variable}
@item -fdiagnostics-color[=@var{WHEN}]
@itemx -fno-diagnostics-color
Use color in diagnostics. @var{WHEN} is @samp{never}, @samp{always},
or @samp{auto}. The default depends on how the compiler has been configured,
it can be any of the above @var{WHEN} options or also @samp{never}
@ -5120,86 +5120,86 @@ Setting @env{GCC_COLORS} to the empty string disables colors.
Supported capabilities are as follows.
@table @code
@item error=
@vindex error GCC_COLORS @r{capability}
@item error=
SGR substring for error: markers.
@item warning=
@vindex warning GCC_COLORS @r{capability}
@item warning=
SGR substring for warning: markers.
@item note=
@vindex note GCC_COLORS @r{capability}
@item note=
SGR substring for note: markers.
@item path=
@vindex path GCC_COLORS @r{capability}
@item path=
SGR substring for colorizing paths of control-flow events as printed
via @option{-fdiagnostics-path-format=}, such as the identifiers of
individual events and lines indicating interprocedural calls and returns.
@item range1=
@vindex range1 GCC_COLORS @r{capability}
@item range1=
SGR substring for first additional range.
@item range2=
@vindex range2 GCC_COLORS @r{capability}
@item range2=
SGR substring for second additional range.
@item locus=
@vindex locus GCC_COLORS @r{capability}
@item locus=
SGR substring for location information, @samp{file:line} or
@samp{file:line:column} etc.
@item quote=
@vindex quote GCC_COLORS @r{capability}
@item quote=
SGR substring for information printed within quotes.
@item fnname=
@vindex fnname GCC_COLORS @r{capability}
@item fnname=
SGR substring for names of C++ functions.
@item targs=
@vindex targs GCC_COLORS @r{capability}
@item targs=
SGR substring for C++ function template parameter bindings.
@item fixit-insert=
@vindex fixit-insert GCC_COLORS @r{capability}
@item fixit-insert=
SGR substring for fix-it hints suggesting text to
be inserted or replaced.
@item fixit-delete=
@vindex fixit-delete GCC_COLORS @r{capability}
@item fixit-delete=
SGR substring for fix-it hints suggesting text to
be deleted.
@item diff-filename=
@vindex diff-filename GCC_COLORS @r{capability}
@item diff-filename=
SGR substring for filename headers within generated patches.
@item diff-hunk=
@vindex diff-hunk GCC_COLORS @r{capability}
@item diff-hunk=
SGR substring for the starts of hunks within generated patches.
@item diff-delete=
@vindex diff-delete GCC_COLORS @r{capability}
@item diff-delete=
SGR substring for deleted lines within generated patches.
@item diff-insert=
@vindex diff-insert GCC_COLORS @r{capability}
@item diff-insert=
SGR substring for inserted lines within generated patches.
@item type-diff=
@vindex type-diff GCC_COLORS @r{capability}
@item type-diff=
SGR substring for highlighting mismatching types within template
arguments in the C++ frontend.
@end table
@opindex fdiagnostics-urls
@item -fdiagnostics-urls[=@var{WHEN}]
@cindex urls
@vindex GCC_URLS @r{environment variable}
@vindex TERM_URLS @r{environment variable}
@item -fdiagnostics-urls[=@var{WHEN}]
Use escape sequences to embed URLs in diagnostics. For example, when
@option{-fdiagnostics-show-option} emits text showing the command-line
option controlling a diagnostic, embed a URL for documentation of that
@ -7564,10 +7564,10 @@ This warning is enabled by @option{-Wall} or @option{-Wextra}.
@opindex Wunknown-pragmas
@opindex Wno-unknown-pragmas
@item -Wunknown-pragmas
@cindex warning for unknown pragmas
@cindex unknown pragmas, warning
@cindex pragmas, warning of unknown
@item -Wunknown-pragmas
Warn when a @code{#pragma} directive is encountered that is not understood by
GCC@. If this command-line option is used, warnings are even issued
for unknown pragmas in system header files. This is not the case if
@ -8365,9 +8365,9 @@ obtaining infinities and NaNs.
@opindex Wsystem-headers
@opindex Wno-system-headers
@item -Wsystem-headers
@cindex warnings from system headers
@cindex system headers, warnings from
@item -Wsystem-headers
Print warning messages for constructs found in system header files.
Warnings from system headers are normally suppressed, on the assumption
that they usually do not indicate real problems and would only make the
@ -8939,15 +8939,15 @@ When compiling C++, warn about the deprecated conversion from string
literals to @code{char *}. This warning is enabled by default for C++
programs.
@item -Wclobbered
@opindex Wclobbered
@opindex Wno-clobbered
@item -Wclobbered
Warn for variables that might be changed by @code{longjmp} or
@code{vfork}. This warning is also enabled by @option{-Wextra}.
@item -Wno-complain-wrong-lang
@opindex Wcomplain-wrong-lang
@opindex Wno-complain-wrong-lang
@item -Wno-complain-wrong-lang
By default, language front ends complain when a command-line option is
valid, but not applicable to that front end.
This may be disabled with @option{-Wno-complain-wrong-lang},
@ -8964,9 +8964,9 @@ The latter front end diagnoses
@samp{f951: Warning: command-line option '-fno-rtti' is valid for C++/D/ObjC++ but not for Fortran},
which may be disabled with @option{-Wno-complain-wrong-lang}.
@item -Wconversion
@opindex Wconversion
@opindex Wno-conversion
@item -Wconversion
Warn for implicit conversions that may alter a value. This includes
conversions between real and integer, like @code{abs (x)} when
@code{x} is @code{double}; conversions between signed and unsigned,
@ -9155,10 +9155,10 @@ can be disabled with the @option{-Wno-jump-misses-init} option.
@opindex Wsign-compare
@opindex Wno-sign-compare
@item -Wsign-compare
@cindex warning for comparison of signed and unsigned values
@cindex comparison of signed and unsigned values, warning
@cindex signed and unsigned values, comparison warning
@item -Wsign-compare
Warn when a comparison between signed and unsigned values could produce
an incorrect result when the signed value is converted to unsigned.
In C++, this warning is also enabled by @option{-Wall}. In C, it is
@ -9586,10 +9586,10 @@ implementation-defined values, and should not be used in portable code.
@opindex Wnormalized=
@opindex Wnormalized
@opindex Wno-normalized
@item -Wnormalized=@r{[}none@r{|}id@r{|}nfc@r{|}nfkc@r{]}
@cindex NFC
@cindex NFKC
@cindex character set, input normalization
@item -Wnormalized=@r{[}none@r{|}id@r{|}nfc@r{|}nfkc@r{]}
In ISO C and ISO C++, two identifiers are different if they are
different sequences of characters. However, sometimes when characters
outside the basic ASCII character set are used, you can have two
@ -9667,8 +9667,8 @@ Enabled by default.
@opindex Wopenacc-parallelism
@opindex Wno-openacc-parallelism
@item -Wopenacc-parallelism
@cindex OpenACC accelerator programming
@item -Wopenacc-parallelism
Warn about potentially suboptimal choices related to OpenACC parallelism.
@opindex Wopenmp-simd
@ -11033,9 +11033,9 @@ and which aren't relevant to leak analysis.
With @option{-fno-analyzer-state-purge} this purging of state can
be suppressed, for debugging state-handling issues.
@item -fno-analyzer-suppress-followups
@opindex fanalyzer-suppress-followups
@opindex fno-analyzer-suppress-followups
@item -fno-analyzer-suppress-followups
This option is intended for analyzer developers.
By default the analyzer will stop exploring an execution path after
@ -16638,13 +16638,13 @@ program may yield backtraces with different addresses due to ASLR (Address
Space Layout Randomization), it may be desirable to turn ASLR off. On Linux,
this can be achieved with @samp{setarch `uname -m` -R ./prog}.
@item -fsanitize=kernel-address
@opindex fsanitize=kernel-address
@item -fsanitize=kernel-address
Enable AddressSanitizer for Linux kernel.
See @uref{https://github.com/google/kernel-sanitizers} for more details.
@item -fsanitize=hwaddress
@opindex fsanitize=hwaddress
@item -fsanitize=hwaddress
Enable Hardware-assisted AddressSanitizer, which uses a hardware ability to
ignore the top byte of a pointer to allow the detection of memory errors with
a low memory overhead.
@ -17874,8 +17874,8 @@ option @option{-Xlinker -z -Xlinker defs}). Only a few systems support
this option.
@opindex T
@item -T @var{script}
@cindex linker script
@item -T @var{script}
Use @var{script} as the linker script. This option is supported by most
systems using the GNU linker. On some targets, such as bare-board
targets without an operating system, the @option{-T} option may be required
@ -18272,8 +18272,8 @@ Use it to conform to a non-default application binary interface.
@opindex fcommon
@opindex fno-common
@item -fcommon
@cindex tentative definitions
@item -fcommon
In C code, this option controls the placement of global variables
defined without an initializer, known as @dfn{tentative definitions}
in the C standard. Tentative definitions are distinct from declarations
@ -18413,9 +18413,9 @@ See also @option{-grecord-gcc-switches} for another
way of storing compiler options into the object file.
@opindex fpic
@item -fpic
@cindex global offset table
@cindex PIC
@item -fpic
Generate position-independent code (PIC) suitable for use in a shared
library, if supported for the target machine. Such code accesses all
constant addresses through a global offset table (GOT)@. The dynamic
@ -25864,8 +25864,8 @@ Put small global and static data in the small data area, and generate
special instructions to reference them.
@opindex G
@item -G @var{num}
@cindex smaller data references
@item -G @var{num}
Put global and static objects less than or equal to @var{num} bytes
into the small data or BSS sections instead of the normal data or BSS
sections. The default value of @var{num} is 8.
@ -28125,8 +28125,8 @@ These are the options defined for the Altera Nios II processor.
@table @gcctabopt
@opindex G
@item -G @var{num}
@cindex smaller data references
@item -G @var{num}
Put global and static objects less than or equal to @var{num} bytes
into the small data or BSS sections instead of the normal data or BSS
sections. The default value of @var{num} is 8.
@ -30030,9 +30030,9 @@ end of the inline compare a call to @code{strcmp} or @code{strncmp} will
take care of the rest of the comparison. The default is 64 bytes.
@opindex G
@item -G @var{num}
@cindex smaller data references (PowerPC)
@cindex .sdata/.sdata2 references (PowerPC)
@item -G @var{num}
On embedded PowerPC systems, put global and static items less than or
equal to @var{num} bytes into the small data or BSS sections instead of
the normal data or BSS section. By default, @var{num} is 8. The
@ -34389,18 +34389,18 @@ Issues a @var{command} to the spec file processor. The commands that can
appear here are:
@table @code
@item %include <@var{file}>
@cindex @code{%include}
@item %include <@var{file}>
Search for @var{file} and insert its text at the current point in the
specs file.
@item %include_noerr <@var{file}>
@cindex @code{%include_noerr}
@item %include_noerr <@var{file}>
Just like @samp{%include}, but do not generate an error message if the include
file cannot be found.
@item %rename @var{old_name} @var{new_name}
@cindex @code{%rename}
@item %rename @var{old_name} @var{new_name}
Rename the spec string @var{old_name} to @var{new_name}.
@end table
@ -35078,6 +35078,15 @@ in turn take precedence over those specified by the configuration of GCC@.
GNU Compiler Collection (GCC) Internals}.
@table @env
@vindex LANG
@vindex LC_CTYPE
@c @vindex LC_COLLATE
@vindex LC_MESSAGES
@c @vindex LC_MONETARY
@c @vindex LC_NUMERIC
@c @vindex LC_TIME
@vindex LC_ALL
@cindex locale
@item LANG
@itemx LC_CTYPE
@c @itemx LC_COLLATE
@ -35086,15 +35095,6 @@ GNU Compiler Collection (GCC) Internals}.
@c @itemx LC_NUMERIC
@c @itemx LC_TIME
@itemx LC_ALL
@findex LANG
@findex LC_CTYPE
@c @findex LC_COLLATE
@findex LC_MESSAGES
@c @findex LC_MONETARY
@c @findex LC_NUMERIC
@c @findex LC_TIME
@findex LC_ALL
@cindex locale
These environment variables control the way that GCC uses
localization information which allows GCC to work with different
national conventions. GCC inspects the locale categories
@ -35118,22 +35118,22 @@ and @env{LC_MESSAGES} default to the value of the @env{LANG}
environment variable. If none of these variables are set, GCC
defaults to traditional C English behavior.
@vindex TMPDIR
@item TMPDIR
@findex TMPDIR
If @env{TMPDIR} is set, it specifies the directory to use for temporary
files. GCC uses temporary files to hold the output of one stage of
compilation which is to be used as input to the next stage: for example,
the output of the preprocessor, which is the input to the compiler
proper.
@vindex GCC_COMPARE_DEBUG
@item GCC_COMPARE_DEBUG
@findex GCC_COMPARE_DEBUG
Setting @env{GCC_COMPARE_DEBUG} is nearly equivalent to passing
@option{-fcompare-debug} to the compiler driver. See the documentation
of this option for more details.
@vindex GCC_EXEC_PREFIX
@item GCC_EXEC_PREFIX
@findex GCC_EXEC_PREFIX
If @env{GCC_EXEC_PREFIX} is set, it specifies a prefix to use in the
names of the subprograms executed by the compiler. No slash is added
when this prefix is combined with the name of a subprogram, but you can
@ -35167,15 +35167,15 @@ If a standard directory begins with the configured
@var{prefix} then the value of @var{prefix} is replaced by
@env{GCC_EXEC_PREFIX} when looking for header files.
@vindex COMPILER_PATH
@item COMPILER_PATH
@findex COMPILER_PATH
The value of @env{COMPILER_PATH} is a colon-separated list of
directories, much like @env{PATH}. GCC tries the directories thus
specified when searching for subprograms, if it cannot find the
subprograms using @env{GCC_EXEC_PREFIX}.
@vindex LIBRARY_PATH
@item LIBRARY_PATH
@findex LIBRARY_PATH
The value of @env{LIBRARY_PATH} is a colon-separated list of
directories, much like @env{PATH}. When configured as a native compiler,
GCC tries the directories thus specified when searching for special
@ -35184,9 +35184,9 @@ using GCC also uses these directories when searching for ordinary
libraries for the @option{-l} option (but directories specified with
@option{-L} come first).
@item LANG
@findex LANG
@vindex LANG
@cindex locale definition
@item LANG
This variable is used to pass locale information to the compiler. One way in
which this information is used is to determine the character set to be used
when character literals, string literals and comments are parsed in C and C++.
@ -35206,8 +35206,8 @@ If @env{LANG} is not defined, or if it has some other value, then the
compiler uses @code{mblen} and @code{mbtowc} as defined by the default locale to
recognize and translate multibyte characters.
@vindex GCC_EXTRA_DIAGNOSTIC_OUTPUT
@item GCC_EXTRA_DIAGNOSTIC_OUTPUT
@findex GCC_EXTRA_DIAGNOSTIC_OUTPUT
If @env{GCC_EXTRA_DIAGNOSTIC_OUTPUT} is set to one of the following values,
then additional text will be emitted to stderr when fix-it hints are
emitted. @option{-fdiagnostics-parseable-fixits} and

View file

@ -156,9 +156,9 @@ operands of the instruction.
If the vector has multiple elements, the RTL template is treated as a
@code{parallel} expression.
@item
@cindex pattern conditions
@cindex conditions, in patterns
@item
The condition: This is a string which contains a C expression. When the
compiler attempts to match RTL against a pattern, the condition is
evaluated. If the condition evaluates to @code{true}, the match is
@ -2193,8 +2193,7 @@ An integer constant with exactly a single bit set.
An integer constant with all bits set except exactly one.
@item H
@item Q
@itemx Q
Any SYMBOL_REF.
@end table
@ -5291,10 +5290,10 @@ operand 0 is the scalar result, with mode equal to the mode of the elements of
the input vector.
@cindex @code{reduc_and_scal_@var{m}} instruction pattern
@item @samp{reduc_and_scal_@var{m}}
@cindex @code{reduc_ior_scal_@var{m}} instruction pattern
@itemx @samp{reduc_ior_scal_@var{m}}
@cindex @code{reduc_xor_scal_@var{m}} instruction pattern
@item @samp{reduc_and_scal_@var{m}}
@itemx @samp{reduc_ior_scal_@var{m}}
@itemx @samp{reduc_xor_scal_@var{m}}
Compute the bitwise @code{AND}/@code{IOR}/@code{XOR} reduction of the elements
of a vector of mode @var{m}. Operand 1 is the vector input and operand 0
@ -5382,8 +5381,8 @@ usdot<signed op0, unsigned op1, signed op2, signed op3> ==
@end smallexample
@cindex @code{ssad@var{m}} instruction pattern
@item @samp{ssad@var{m}}
@cindex @code{usad@var{m}} instruction pattern
@item @samp{ssad@var{m}}
@item @samp{usad@var{m}}
Compute the sum of absolute differences of two signed/unsigned elements.
Operand 1 and operand 2 are of the same mode. Their absolute difference, which
@ -5392,8 +5391,8 @@ equal or wider than the mode of the absolute difference. The result is placed
in operand 0, which is of the same mode as operand 3.
@cindex @code{widen_ssum@var{m3}} instruction pattern
@item @samp{widen_ssum@var{m3}}
@cindex @code{widen_usum@var{m3}} instruction pattern
@item @samp{widen_ssum@var{m3}}
@itemx @samp{widen_usum@var{m3}}
Operands 0 and 2 are of the same mode, which is wider than the mode of
operand 1. Add operand 1 to operand 2 and place the widened result in
@ -5401,8 +5400,8 @@ operand 0. (This is used express accumulation of elements into an accumulator
of a wider mode.)
@cindex @code{smulhs@var{m3}} instruction pattern
@item @samp{smulhs@var{m3}}
@cindex @code{umulhs@var{m3}} instruction pattern
@item @samp{smulhs@var{m3}}
@itemx @samp{umulhs@var{m3}}
Signed/unsigned multiply high with scale. This is equivalent to the C code:
@smallexample
@ -5414,8 +5413,8 @@ where the sign of @samp{narrow} determines whether this is a signed
or unsigned operation, and @var{N} is the size of @samp{wide} in bits.
@cindex @code{smulhrs@var{m3}} instruction pattern
@item @samp{smulhrs@var{m3}}
@cindex @code{umulhrs@var{m3}} instruction pattern
@item @samp{smulhrs@var{m3}}
@itemx @samp{umulhrs@var{m3}}
Signed/unsigned multiply high with round and scale. This is
equivalent to the C code:
@ -5428,8 +5427,8 @@ where the sign of @samp{narrow} determines whether this is a signed
or unsigned operation, and @var{N} is the size of @samp{wide} in bits.
@cindex @code{sdiv_pow2@var{m3}} instruction pattern
@item @samp{sdiv_pow2@var{m3}}
@cindex @code{sdiv_pow2@var{m3}} instruction pattern
@item @samp{sdiv_pow2@var{m3}}
@itemx @samp{sdiv_pow2@var{m3}}
Signed division by power-of-2 immediate. Equivalent to:
@smallexample
@ -8213,12 +8212,12 @@ can itself be a @code{plus}. @code{and}, @code{ior}, @code{xor},
@code{umax} are associative when applied to integers, and sometimes to
floating-point.
@item
@cindex @code{neg}, canonicalization of
@cindex @code{not}, canonicalization of
@cindex @code{mult}, canonicalization of
@cindex @code{plus}, canonicalization of
@cindex @code{minus}, canonicalization of
@item
For these operators, if only one operand is a @code{neg}, @code{not},
@code{mult}, @code{plus}, or @code{minus} expression, it will be the
first operand.
@ -11088,8 +11087,8 @@ values in @file{sync.md} rather than in the main @file{.md} file.
Some enumeration names have special significance to GCC:
@table @code
@item unspecv
@findex unspec_volatile
@item unspecv
If an enumeration called @code{unspecv} is defined, GCC will use it
when printing out @code{unspec_volatile} expressions. For example:
@ -11105,8 +11104,8 @@ causes GCC to print @samp{(unspec_volatile @dots{} 0)} as:
(unspec_volatile ... UNSPECV_BLOCKAGE)
@end smallexample
@item unspec
@findex unspec
@item unspec
If an enumeration called @code{unspec} is defined, GCC will use
it when printing out @code{unspec} expressions. GCC will also use
it when printing out @code{unspec_volatile} expressions unless an

View file

@ -1028,8 +1028,8 @@ the symbol has already been written.
@findex volatil
@cindex @samp{/v} in RTL dump
@item volatil
@cindex volatile memory references
@item volatil
In a @code{mem}, @code{asm_operands}, or @code{asm_input}
expression, it is 1 if the memory
reference is volatile. Volatile memory references may not be deleted,
@ -2187,14 +2187,14 @@ laid out in memory order. The memory order of bytes is defined by
two target macros, @code{WORDS_BIG_ENDIAN} and @code{BYTES_BIG_ENDIAN}:
@itemize
@item
@cindex @code{WORDS_BIG_ENDIAN}, effect on @code{subreg}
@item
@code{WORDS_BIG_ENDIAN}, if set to 1, says that byte number zero is
part of the most significant word; otherwise, it is part of the least
significant word.
@item
@cindex @code{BYTES_BIG_ENDIAN}, effect on @code{subreg}
@item
@code{BYTES_BIG_ENDIAN}, if set to 1, says that byte number zero is
the most significant byte within a word; otherwise, it is the least
significant byte within a word.
@ -2336,8 +2336,8 @@ that both performs the arithmetic and sets the condition code register.
For examples, search for @samp{addcc} and @samp{andcc} in @file{sparc.md}.
@findex pc
@item (pc)
@cindex program counter
@item (pc)
This represents the machine's program counter. It has no operands and
may not have a machine mode. @code{(pc)} may be validly used only in
certain specific contexts in jump instructions.

View file

@ -4970,9 +4970,9 @@ function's arguments that this function should pop is available in
@end deftypefn
@itemize @bullet
@item
@findex pretend_args_size
@findex crtl->args.pretend_args_size
@item
A region of @code{crtl->args.pretend_args_size} bytes of
uninitialized space just underneath the first argument arriving on the
stack. (This may not be at the very start of the allocated stack region
@ -4997,8 +4997,8 @@ boundary, to contain the local variables of the function. On some machines,
this region and the save area may occur in the opposite order, with the
save area closer to the top of the stack.
@item
@cindex @code{ACCUMULATE_OUTGOING_ARGS} and stack frames
@item
Optionally, when @code{ACCUMULATE_OUTGOING_ARGS} is defined, a region of
@code{crtl->outgoing_args_size} bytes to be used for outgoing
argument lists of the function. @xref{Stack Arguments}.

View file

@ -3534,9 +3534,9 @@ This section describes the macros that output function entry
@hook TARGET_ASM_FUNCTION_EPILOGUE
@itemize @bullet
@item
@findex pretend_args_size
@findex crtl->args.pretend_args_size
@item
A region of @code{crtl->args.pretend_args_size} bytes of
uninitialized space just underneath the first argument arriving on the
stack. (This may not be at the very start of the allocated stack region
@ -3561,8 +3561,8 @@ boundary, to contain the local variables of the function. On some machines,
this region and the save area may occur in the opposite order, with the
save area closer to the top of the stack.
@item
@cindex @code{ACCUMULATE_OUTGOING_ARGS} and stack frames
@item
Optionally, when @code{ACCUMULATE_OUTGOING_ARGS} is defined, a region of
@code{crtl->outgoing_args_size} bytes to be used for outgoing
argument lists of the function. @xref{Stack Arguments}.

View file

@ -198,8 +198,8 @@ with GCC does not produce the same floating-point formats that the
assembler accepts. If you have this problem, set the @env{LANG}
environment variable to @samp{C} or @samp{En_US}.
@item
@opindex fdollars-in-identifiers
@item
Even if you specify @option{-fdollars-in-identifiers},
you cannot successfully use @samp{$} in identifiers on the RS/6000 due
to a restriction in the IBM assembler. GAS supports these
@ -588,8 +588,8 @@ to update the corrected header files. They can be updated using the
@command{mkheaders} script installed in
@file{@var{libexecdir}/gcc/@var{target}/@var{version}/install-tools/}.
@item
@cindex floating point precision
@item
On 68000 and x86 systems, for instance, you can get paradoxical results
if you test the precise values of floating point numbers. For example,
you can find that a floating point value which is not a NaN is not equal
@ -953,8 +953,8 @@ where the return value should never be ignored, use the
@code{warn_unused_result} function attribute (@pxref{Function
Attributes}).
@item
@opindex fshort-enums
@item
Making @option{-fshort-enums} the default.
This would cause storage layout to be incompatible with most other C
@ -1021,9 +1021,9 @@ to be considered in the future.
explicitly in each bit-field whether it is signed or not. In this way,
they write programs which have the same meaning in both C dialects.)
@item
@opindex ansi
@opindex std
@item
Undefining @code{__STDC__} when @option{-ansi} is not used.
Currently, GCC defines @code{__STDC__} unconditionally. This provides

View file

@ -214,11 +214,11 @@ accepted by the compiler:
@table @gcctabopt
@opindex @code{ffree-form}
@opindex @code{ffixed-form}
@item -ffree-form
@itemx -ffixed-form
@cindex options, Fortran dialect
@cindex file format, free
@cindex file format, fixed
@item -ffree-form
@itemx -ffixed-form
Specify the layout used by the source file. The free form layout
was introduced in Fortran 90. Fixed form was traditionally used in
older Fortran programs. When neither option is specified, the source
@ -326,19 +326,19 @@ Enable a blank format item at the end of a format specification i.e. nothing
following the final comma.
@opindex @code{fdollar-ok}
@item -fdollar-ok
@cindex @code{$}
@cindex symbol names
@cindex character set
@item -fdollar-ok
Allow @samp{$} as a valid non-first character in a symbol name. Symbols
that start with @samp{$} are rejected since it is unclear which rules to
apply to implicit typing as different vendors implement different rules.
Using @samp{$} in @code{IMPLICIT} statements is also rejected.
@opindex @code{backslash}
@item -fbackslash
@cindex backslash
@cindex escape characters
@item -fbackslash
Change the interpretation of backslashes in string literals from a single
backslash character to ``C-style'' escape characters. The following
combinations are expanded @code{\a}, @code{\b}, @code{\f}, @code{\n},
@ -352,16 +352,16 @@ points. All other combinations of a character preceded by \ are
unexpanded.
@opindex @code{fmodule-private}
@item -fmodule-private
@cindex module entities
@cindex private
@item -fmodule-private
Set the default accessibility of module entities to @code{PRIVATE}.
Use-associated entities will not be accessible unless they are explicitly
declared as @code{PUBLIC}.
@opindex @code{ffixed-line-length-}@var{n}
@item -ffixed-line-length-@var{n}
@cindex file format, fixed
@item -ffixed-line-length-@var{n}
Set column after which characters are ignored in typical fixed-form
lines in the source file, and, unless @code{-fno-pad-source}, through which
spaces are assumed (as if padded to that length) after the ends of short
@ -386,8 +386,8 @@ continued character constants never have implicit spaces appended
to them to fill out the line.
@opindex @code{ffree-line-length-}@var{n}
@item -ffree-line-length-@var{n}
@cindex file format, free
@item -ffree-line-length-@var{n}
Set column after which characters are ignored in typical free-form
lines in the source file. The default value is 132.
@var{n} may be @samp{none}, meaning that the entire line is meaningful.
@ -411,8 +411,8 @@ Enable the Cray pointer extension, which provides C-like pointer
functionality.
@opindex @code{fopenacc}
@item -fopenacc
@cindex OpenACC
@item -fopenacc
Enable the OpenACC extensions. This includes OpenACC @code{!$acc}
directives in free form and @code{c$acc}, @code{*$acc} and
@code{!$acc} directives in fixed form, @code{!$} conditional
@ -421,8 +421,8 @@ compilation sentinels in free form and @code{c$}, @code{*$} and
OpenACC runtime library to be linked in.
@opindex @code{fopenmp}
@item -fopenmp
@cindex OpenMP
@item -fopenmp
Enable the OpenMP extensions. This includes OpenMP @code{!$omp} directives
in free form
and @code{c$omp}, @code{*$omp} and @code{!$omp} directives in fixed form,
@ -511,13 +511,13 @@ representation of the translated Fortran code, produced by
@opindex @code{freal-8-real-4}
@opindex @code{freal-8-real-10}
@opindex @code{freal-8-real-16}
@cindex options, real kind type promotion
@item -freal-4-real-8
@itemx -freal-4-real-10
@itemx -freal-4-real-16
@itemx -freal-8-real-4
@itemx -freal-8-real-10
@itemx -freal-8-real-16
@cindex options, real kind type promotion
Promote all @code{REAL(KIND=M)} entities to @code{REAL(KIND=N)} entities.
If @code{REAL(KIND=N)} is unavailable, then an error will be issued.
The @code{-freal-4-} flags also affect the default real kind and the
@ -614,10 +614,10 @@ The following options control preprocessing of Fortran code:
@table @gcctabopt
@opindex @code{cpp}
@opindex @code{fpp}
@item -cpp
@itemx -nocpp
@cindex preprocessor, enable
@cindex preprocessor, disable
@item -cpp
@itemx -nocpp
Enable preprocessing. The preprocessor is automatically invoked if
the file extension is @file{.fpp}, @file{.FPP}, @file{.F}, @file{.FOR},
@file{.FTN}, @file{.F90}, @file{.F95}, @file{.F03} or @file{.F08}. Use
@ -633,9 +633,9 @@ preprocessed output as well, so it might be advisable to use the
options.
@opindex @code{dM}
@item -dM
@cindex preprocessor, debugging
@cindex debugging, preprocessor
@item -dM
Instead of the normal output, generate a list of @code{'#define'}
directives for all the macros defined during the execution of the
preprocessor, including predefined macros. This gives you a way
@ -647,39 +647,39 @@ Assuming you have no file @file{foo.f90}, the command
will show all the predefined macros.
@opindex @code{dD}
@item -dD
@cindex preprocessor, debugging
@cindex debugging, preprocessor
@item -dD
Like @option{-dM} except in two respects: it does not include the
predefined macros, and it outputs both the @code{#define} directives
and the result of preprocessing. Both kinds of output go to the
standard output file.
@opindex @code{dN}
@item -dN
@cindex preprocessor, debugging
@cindex debugging, preprocessor
@item -dN
Like @option{-dD}, but emit only the macro names, not their expansions.
@opindex @code{dU}
@item -dU
@cindex preprocessor, debugging
@cindex debugging, preprocessor
@item -dU
Like @option{dD} except that only macros that are expanded, or whose
definedness is tested in preprocessor directives, are output; the
output is delayed until the use or test of the macro; and @code{'#undef'}
directives are also output for macros tested but undefined at the time.
@opindex @code{dI}
@item -dI
@cindex preprocessor, debugging
@cindex debugging, preprocessor
@item -dI
Output @code{'#include'} directives in addition to the result
of preprocessing.
@opindex @code{fworking-directory}
@item -fworking-directory
@cindex preprocessor, working directory
@item -fworking-directory
Enable generation of linemarkers in the preprocessor output that will
let the compiler know the current working directory at the time of
preprocessing. When this option is enabled, the preprocessor will emit,
@ -694,8 +694,8 @@ in the command line, this option has no effect, since no @code{#line}
directives are emitted whatsoever.
@opindex @code{idirafter @var{dir}}
@item -idirafter @var{dir}
@cindex preprocessing, include path
@item -idirafter @var{dir}
Search @var{dir} for include files, but do it after all directories
specified with @option{-I} and the standard system directories have
been exhausted. @var{dir} is treated as a system include directory.
@ -703,27 +703,27 @@ If dir begins with @code{=}, then the @code{=} will be replaced by
the sysroot prefix; see @option{--sysroot} and @option{-isysroot}.
@opindex @code{imultilib @var{dir}}
@item -imultilib @var{dir}
@cindex preprocessing, include path
@item -imultilib @var{dir}
Use @var{dir} as a subdirectory of the directory containing target-specific
C++ headers.
@opindex @code{iprefix @var{prefix}}
@item -iprefix @var{prefix}
@cindex preprocessing, include path
@item -iprefix @var{prefix}
Specify @var{prefix} as the prefix for subsequent @option{-iwithprefix}
options. If the @var{prefix} represents a directory, you should include
the final @code{'/'}.
@opindex @code{isysroot @var{dir}}
@item -isysroot @var{dir}
@cindex preprocessing, include path
@item -isysroot @var{dir}
This option is like the @option{--sysroot} option, but applies only to
header files. See the @option{--sysroot} option for more information.
@opindex @code{iquote @var{dir}}
@item -iquote @var{dir}
@cindex preprocessing, include path
@item -iquote @var{dir}
Search @var{dir} only for header files requested with @code{#include "file"};
they are not searched for @code{#include <file>}, before all directories
specified by @option{-I} and before the standard system directories. If
@ -731,8 +731,8 @@ specified by @option{-I} and before the standard system directories. If
sysroot prefix; see @option{--sysroot} and @option{-isysroot}.
@opindex @code{isystem @var{dir}}
@item -isystem @var{dir}
@cindex preprocessing, include path
@item -isystem @var{dir}
Search @var{dir} for header files, after all directories specified by
@option{-I} but before the standard system directories. Mark it as a
system directory, so that it gets the same special treatment as is
@ -752,20 +752,20 @@ Do not predefine any system-specific or GCC-specific macros.
The standard predefined macros remain defined.
@opindex @code{A@var{predicate}=@var{answer}}
@item -A@var{predicate}=@var{answer}
@cindex preprocessing, assertion
@item -A@var{predicate}=@var{answer}
Make an assertion with the predicate @var{predicate} and answer @var{answer}.
This form is preferred to the older form -A predicate(answer), which is still
supported, because it does not use shell special characters.
@opindex @code{A-@var{predicate}=@var{answer}}
@item -A-@var{predicate}=@var{answer}
@cindex preprocessing, assertion
@item -A-@var{predicate}=@var{answer}
Cancel an assertion with the predicate @var{predicate} and answer @var{answer}.
@opindex @code{C}
@item -C
@cindex preprocessing, keep comments
@item -C
Do not discard comments. All comments are passed through to the output
file, except for comments in processed directives, which are deleted
along with the directive.
@ -780,8 +780,8 @@ Warning: this currently handles C-Style comments only. The preprocessor
does not yet recognize Fortran-style comments.
@opindex @code{CC}
@item -CC
@cindex preprocessing, keep comments
@item -CC
Do not discard comments, including during macro expansion. This is like
@option{-C}, except that comments contained within macros are also passed
through to the output file where the macro is expanded.
@ -796,13 +796,13 @@ Warning: this currently handles C- and C++-Style comments only. The
preprocessor does not yet recognize Fortran-style comments.
@opindex @code{D@var{name}}
@item -D@var{name}
@cindex preprocessing, define macros
@item -D@var{name}
Predefine name as a macro, with definition @code{1}.
@opindex @code{D@var{name}=@var{definition}}
@item -D@var{name}=@var{definition}
@cindex preprocessing, define macros
@item -D@var{name}=@var{definition}
The contents of @var{definition} are tokenized and processed as if they
appeared during translation phase three in a @code{'#define'} directive.
In particular, the definition will be truncated by embedded newline
@ -829,16 +829,16 @@ activities. Each name is indented to show how deep in the @code{'#include'}
stack it is.
@opindex @code{P}
@item -P
@cindex preprocessing, no linemarkers
@item -P
Inhibit generation of linemarkers in the output from the preprocessor.
This might be useful when running the preprocessor on something that
is not C code, and will be sent to a program which might be confused
by the linemarkers.
@opindex @code{U@var{name}}
@item -U@var{name}
@cindex preprocessing, undefine macros
@item -U@var{name}
Cancel any previous definition of @var{name}, either built in or provided
with a @option{-D} option.
@end table
@ -875,16 +875,16 @@ by GNU Fortran:
@table @gcctabopt
@opindex @code{fmax-errors=}@var{n}
@item -fmax-errors=@var{n}
@cindex errors, limiting
@item -fmax-errors=@var{n}
Limits the maximum number of error messages to @var{n}, at which point
GNU Fortran bails out rather than attempting to continue processing the
source code. If @var{n} is 0, there is no limit on the number of error
messages produced.
@opindex @code{fsyntax-only}
@item -fsyntax-only
@cindex syntax checking
@item -fsyntax-only
Check the code for syntax errors, but do not actually compile it. This
will generate module files for each module present in the code, but no
other output file.
@ -918,9 +918,9 @@ Like @option{-pedantic}, except that errors are produced rather than
warnings.
@opindex @code{Wall}
@item -Wall
@cindex all warnings
@cindex warnings, all
@item -Wall
Enables commonly used warning options pertaining to usage that
we recommend avoiding and that we believe are easy to avoid.
This currently includes @option{-Waliasing}, @option{-Wampersand},
@ -931,9 +931,9 @@ This currently includes @option{-Waliasing}, @option{-Wampersand},
and @option{-Wundefined-do-loop}.
@opindex @code{Waliasing}
@item -Waliasing
@cindex aliasing
@cindex warnings, aliasing
@item -Waliasing
Warn about possible aliasing of dummy arguments. Specifically, it warns
if the same actual argument is associated with a dummy argument with
@code{INTENT(IN)} and a dummy argument with @code{INTENT(OUT)} in a call
@ -953,9 +953,9 @@ The following example will trigger the warning.
@end smallexample
@opindex @code{Wampersand}
@item -Wampersand
@cindex warnings, ampersand
@cindex @code{&}
@item -Wampersand
Warn about missing ampersand in continued character constants. The
warning is given with @option{-Wampersand}, @option{-pedantic},
@option{-std=f95}, @option{-std=f2003}, @option{-std=f2008} and
@ -965,15 +965,15 @@ non-comment, non-whitespace character after the ampersand that
initiated the continuation.
@opindex @code{Warray-temporaries}
@item -Warray-temporaries
@cindex warnings, array temporaries
@item -Warray-temporaries
Warn about array temporaries generated by the compiler. The information
generated by this warning is sometimes useful in optimization, in order to
avoid such temporaries.
@opindex @code{Wc-binding-type}
@item -Wc-binding-type
@cindex warning, C binding type
@item -Wc-binding-type
Warn if the a variable might not be C interoperable. In particular, warn if
the variable has been declared using an intrinsic type with default kind
instead of using a kind parameter defined for C interoperability in the
@ -981,71 +981,71 @@ intrinsic @code{ISO_C_Binding} module. This option is implied by
@option{-Wall}.
@opindex @code{Wcharacter-truncation}
@item -Wcharacter-truncation
@cindex warnings, character truncation
@item -Wcharacter-truncation
Warn when a character assignment will truncate the assigned string.
@opindex @code{Wline-truncation}
@item -Wline-truncation
@cindex warnings, line truncation
@item -Wline-truncation
Warn when a source code line will be truncated. This option is
implied by @option{-Wall}. For free-form source code, the default is
@option{-Werror=line-truncation} such that truncations are reported as
error.
@opindex @code{Wconversion}
@item -Wconversion
@cindex warnings, conversion
@cindex conversion
@item -Wconversion
Warn about implicit conversions that are likely to change the value of
the expression after conversion. Implied by @option{-Wall}.
@opindex @code{Wconversion-extra}
@item -Wconversion-extra
@cindex warnings, conversion
@cindex conversion
@item -Wconversion-extra
Warn about implicit conversions between different types and kinds. This
option does @emph{not} imply @option{-Wconversion}.
@opindex @code{Wextra}
@item -Wextra
@cindex extra warnings
@cindex warnings, extra
@item -Wextra
Enables some warning options for usages of language features which
may be problematic. This currently includes @option{-Wcompare-reals},
@option{-Wunused-parameter} and @option{-Wdo-subscript}.
@opindex @code{Wfrontend-loop-interchange}
@item -Wfrontend-loop-interchange
@cindex warnings, loop interchange
@cindex loop interchange, warning
@item -Wfrontend-loop-interchange
Warn when using @option{-ffrontend-loop-interchange} for performing loop
interchanges.
@opindex @code{Wimplicit-interface}
@item -Wimplicit-interface
@cindex warnings, implicit interface
@item -Wimplicit-interface
Warn if a procedure is called without an explicit interface.
Note this only checks that an explicit interface is present. It does not
check that the declared interfaces are consistent across program units.
@opindex @code{Wimplicit-procedure}
@item -Wimplicit-procedure
@cindex warnings, implicit procedure
@item -Wimplicit-procedure
Warn if a procedure is called that has neither an explicit interface
nor has been declared as @code{EXTERNAL}.
@opindex @code{Winteger-division}
@item -Winteger-division
@cindex warnings, integer division
@cindex warnings, division of integers
@item -Winteger-division
Warn if a constant integer division truncates its result.
As an example, 3/5 evaluates to 0.
@opindex @code{Wintrinsics-std}
@item -Wintrinsics-std
@cindex warnings, non-standard intrinsics
@cindex warnings, intrinsics of other standards
@item -Wintrinsics-std
Warn if @command{gfortran} finds a procedure named like an intrinsic not
available in the currently selected standard (with @option{-std}) and treats
it as @code{EXTERNAL} procedure because of this. @option{-fall-intrinsics} can
@ -1053,8 +1053,8 @@ be used to never trigger this behavior and always link to the intrinsic
regardless of the selected standard.
@opindex @code{Woverwrite-recursive}
@item -Wno-overwrite-recursive
@cindex warnings, overwrite recursive
@item -Wno-overwrite-recursive
Do not warn when @option{-fno-automatic} is used with @option{-frecursive}. Recursion
will be broken if the relevant local variables do not have the attribute
@code{AUTOMATIC} explicitly declared. This option can be used to suppress the warning
@ -1062,14 +1062,14 @@ when it is known that recursion is not broken. Useful for build environments tha
@option{-Werror}.
@opindex @code{Wreal-q-constant}
@item -Wreal-q-constant
@cindex warnings, @code{q} exponent-letter
@item -Wreal-q-constant
Produce a warning if a real-literal-constant contains a @code{q}
exponent-letter.
@opindex @code{Wsurprising}
@item -Wsurprising
@cindex warnings, suspicious code
@item -Wsurprising
Produce a warning when ``suspicious'' code constructs are encountered.
While technically legal these usually indicate that an error has been made.
@ -1100,9 +1100,9 @@ used in free-form source code, is diagnosed by default.)
@end itemize
@opindex @code{Wtabs}
@item -Wtabs
@cindex warnings, tabs
@cindex tabulators
@item -Wtabs
By default, tabs are accepted as whitespace, but tabs are not members
of the Fortran Character Set. For continuation lines, a tab followed
by a digit between 1 and 9 is supported. @option{-Wtabs} will cause a
@ -1112,46 +1112,46 @@ active for @option{-pedantic}, @option{-std=f95}, @option{-std=f2003},
@option{-Wall}.
@opindex @code{Wundefined-do-loop}
@item -Wundefined-do-loop
@cindex warnings, undefined do loop
@item -Wundefined-do-loop
Warn if a DO loop with step either 1 or -1 yields an underflow or an overflow
during iteration of an induction variable of the loop.
This option is implied by @option{-Wall}.
@opindex @code{Wunderflow}
@item -Wunderflow
@cindex warnings, underflow
@cindex underflow
@item -Wunderflow
Produce a warning when numerical constant expressions are
encountered, which yield an UNDERFLOW during compilation. Enabled by default.
@opindex @code{Wintrinsic-shadow}
@item -Wintrinsic-shadow
@cindex warnings, intrinsic
@cindex intrinsic
@item -Wintrinsic-shadow
Warn if a user-defined procedure or module procedure has the same name as an
intrinsic; in this case, an explicit interface or @code{EXTERNAL} or
@code{INTRINSIC} declaration might be needed to get calls later resolved to
the desired intrinsic/procedure. This option is implied by @option{-Wall}.
@opindex @code{Wuse-without-only}
@item -Wuse-without-only
@cindex warnings, use statements
@cindex intrinsic
@item -Wuse-without-only
Warn if a @code{USE} statement has no @code{ONLY} qualifier and
thus implicitly imports all public entities of the used module.
@opindex @code{Wunused-dummy-argument}
@item -Wunused-dummy-argument
@cindex warnings, unused dummy argument
@cindex unused dummy argument
@cindex dummy argument, unused
@item -Wunused-dummy-argument
Warn about unused dummy arguments. This option is implied by @option{-Wall}.
@opindex @code{Wunused-parameter}
@item -Wunused-parameter
@cindex warnings, unused parameter
@cindex unused parameter
@item -Wunused-parameter
Contrary to @command{gcc}'s meaning of @option{-Wunused-parameter},
@command{gfortran}'s implementation of this option does not warn
about unused dummy arguments (see @option{-Wunused-dummy-argument}),
@ -1160,24 +1160,24 @@ is implied by @option{-Wextra} if also @option{-Wunused} or
@option{-Wall} is used.
@opindex @code{Walign-commons}
@item -Walign-commons
@cindex warnings, alignment of @code{COMMON} blocks
@cindex alignment of @code{COMMON} blocks
@item -Walign-commons
By default, @command{gfortran} warns about any occasion of variables being
padded for proper alignment inside a @code{COMMON} block. This warning can be turned
off via @option{-Wno-align-commons}. See also @option{-falign-commons}.
@opindex @code{Wfunction-elimination}
@item -Wfunction-elimination
@cindex function elimination
@cindex warnings, function elimination
@item -Wfunction-elimination
Warn if any calls to impure functions are eliminated by the optimizations
enabled by the @option{-ffrontend-optimize} option.
This option is implied by @option{-Wextra}.
@opindex @code{Wrealloc-lhs}
@item -Wrealloc-lhs
@cindex Reallocate the LHS in assignments, notification
@item -Wrealloc-lhs
Warn when the compiler might insert code to for allocation or reallocation of
an allocatable array variable of intrinsic type in intrinsic assignments. In
hot loops, the Fortran 2003 reallocation feature may reduce the performance.
@ -1224,8 +1224,8 @@ statement is actually executed, in cases like
This option is implied by @option{-Wextra}.
@opindex @code{Werror}
@item -Werror
@cindex warnings, to errors
@item -Werror
Turns all warnings into errors.
@end table
@ -1337,9 +1337,9 @@ last one will be used.
By default, a summary for all exceptions but @samp{inexact} is shown.
@opindex @code{fno-backtrace}
@item -fno-backtrace
@cindex backtrace
@cindex trace
@item -fno-backtrace
When a serious runtime error is encountered or a deadly signal is
emitted (segmentation fault, illegal instruction, bus error,
floating-point exception, and the other POSIX signals that have the
@ -1370,12 +1370,12 @@ Fortran source.
@table @gcctabopt
@opindex @code{I}@var{dir}
@item -I@var{dir}
@cindex directory, search paths for inclusion
@cindex inclusion, directory search paths for
@cindex search paths, for included files
@cindex paths, search
@cindex module search path
@item -I@var{dir}
These affect interpretation of the @code{INCLUDE} directive
(as well as of the @code{#include} directive of the @command{cpp}
preprocessor).
@ -1394,9 +1394,9 @@ gcc,Using the GNU Compiler Collection (GCC)}, for information on the
@opindex @code{J}@var{dir}
@opindex @code{M}@var{dir}
@item -J@var{dir}
@cindex paths, search
@cindex module search path
@item -J@var{dir}
This option specifies where to put @file{.mod} files for compiled modules.
It is also added to the list of directories to searched by an @code{USE}
statement.
@ -1404,9 +1404,9 @@ statement.
The default is the current directory.
@opindex @code{fintrinsic-modules-path} @var{dir}
@item -fintrinsic-modules-path @var{dir}
@cindex paths, search
@cindex module search path
@item -fintrinsic-modules-path @var{dir}
This option specifies the location of pre-compiled intrinsic modules, if
they are not in the default location expected by the compiler.
@end table
@ -1515,9 +1515,9 @@ it.
@table @gcctabopt
@opindex @code{fno-automatic}
@item -fno-automatic
@cindex @code{SAVE} statement
@cindex statement, @code{SAVE}
@item -fno-automatic
Treat each program unit (except those marked as RECURSIVE) as if the
@code{SAVE} statement were specified for every local variable and array
referenced in it. Does not affect common blocks. (Some Fortran compilers
@ -1530,11 +1530,11 @@ Local variables or arrays having an explicit @code{SAVE} attribute are
silently ignored unless the @option{-pedantic} option is added.
@opindex ff2c
@item -ff2c
@cindex calling convention
@cindex @command{f2c} calling convention
@cindex @command{g77} calling convention
@cindex libf2c calling convention
@item -ff2c
Generate code designed to be compatible with code generated
by @command{g77} and @command{f2c}.
@ -1564,11 +1564,11 @@ of type default @code{REAL} or @code{COMPLEX} as actual arguments, as
the library implementations use the @option{-fno-f2c} calling conventions.
@opindex @code{fno-underscoring}
@item -fno-underscoring
@cindex underscore
@cindex symbol names, underscores
@cindex transforming symbol names
@cindex symbol names, transforming
@item -fno-underscoring
Do not transform names of entities specified in the Fortran
source file by appending underscores to them.
@ -1633,7 +1633,6 @@ prevent accidental linking between procedures with incompatible
interfaces.
@opindex @code{fsecond-underscore}
@item -fsecond-underscore
@cindex underscore
@cindex symbol names, underscores
@cindex transforming symbol names
@ -1641,6 +1640,7 @@ interfaces.
@cindex @command{f2c} calling convention
@cindex @command{g77} calling convention
@cindex libf2c calling convention
@item -fsecond-underscore
By default, GNU Fortran appends an underscore to external
names. If this option is used GNU Fortran appends two
underscores to names with underscores and one underscore to external names
@ -1658,8 +1658,8 @@ for compatibility with @command{g77} and @command{f2c}, and is implied
by use of the @option{-ff2c} option.
@opindex @code{fcoarray}
@item -fcoarray=@var{<keyword>}
@cindex coarrays
@item -fcoarray=@var{<keyword>}
@table @asis
@item @samp{none}
@ -1676,7 +1676,6 @@ library needs to be linked.
@opindex @code{fcheck}
@item -fcheck=@var{<keyword>}
@cindex array, bounds checking
@cindex bit intrinsics checking
@cindex bounds checking
@ -1687,6 +1686,7 @@ library needs to be linked.
@cindex checking subscripts
@cindex run-time checking
@cindex checking array temporaries
@item -fcheck=@var{<keyword>}
Enable the generation of run-time checks; the argument shall be
a comma-delimited list of the following keywords. Prefixing a check with
@ -1836,15 +1836,15 @@ by default at optimization level @option{-Ofast} unless
@option{-fmax-stack-var-size} is specified.
@opindex @code{fpack-derived}
@item -fpack-derived
@cindex structure packing
@item -fpack-derived
This option tells GNU Fortran to pack derived type members as closely as
possible. Code compiled with this option is likely to be incompatible
with code compiled without this option, and may execute slower.
@opindex @code{frepack-arrays}
@item -frepack-arrays
@cindex repacking arrays
@item -frepack-arrays
In some circumstances GNU Fortran may pass assumed shape array
sections via a descriptor describing a noncontiguous area of memory.
This option adds code to the function prologue to repack the data into
@ -1986,8 +1986,8 @@ silence warnings that would have been emitted by @option{-Wuninitialized}
for the affected local variables.
@opindex @code{falign-commons}
@item -falign-commons
@cindex alignment of @code{COMMON} blocks
@item -falign-commons
By default, @command{gfortran} enforces proper alignment of all variables in a
@code{COMMON} block by padding them as needed. On certain platforms this is mandatory,
on others it increases performance. If a @code{COMMON} block is not declared with
@ -1998,8 +1998,8 @@ To avoid potential alignment issues in @code{COMMON} blocks, it is recommended t
objects from largest to smallest.
@opindex @code{fno-protect-parens}
@item -fno-protect-parens
@cindex re-association of parenthesized expressions
@item -fno-protect-parens
By default the parentheses in expression are honored for all optimization
levels such that the compiler does not do any re-association. Using
@option{-fno-protect-parens} allows the compiler to reorder @code{REAL} and
@ -2009,16 +2009,16 @@ need to be in effect. The parentheses protection is enabled by default, unless
@option{-Ofast} is given.
@opindex @code{frealloc-lhs}
@item -frealloc-lhs
@cindex Reallocate the LHS in assignments
@item -frealloc-lhs
An allocatable left-hand side of an intrinsic assignment is automatically
(re)allocated if it is either unallocated or has a different shape. The
option is enabled by default except when @option{-std=f95} is given. See
also @option{-Wrealloc-lhs}.
@opindex @code{faggressive-function-elimination}
@item -faggressive-function-elimination
@cindex Elimination of functions with identical argument lists
@item -faggressive-function-elimination
Functions with identical argument lists are eliminated within
statements, regardless of whether these functions are marked
@code{PURE} or not. For example, in
@ -2029,8 +2029,8 @@ there will only be a single call to @code{f}. This option only works
if @option{-ffrontend-optimize} is in effect.
@opindex @code{frontend-optimize}
@item -ffrontend-optimize
@cindex Front-end optimization
@item -ffrontend-optimize
This option performs front-end optimization, based on manipulating
parts the Fortran parse tree. Enabled by default by any @option{-O} option
except @option{-O0} and @option{-Og}. Optimizations enabled by this option
@ -2045,8 +2045,8 @@ include:
It can be deselected by specifying @option{-fno-frontend-optimize}.
@opindex @code{frontend-loop-interchange}
@item -ffrontend-loop-interchange
@cindex loop interchange, Fortran
@item -ffrontend-loop-interchange
Attempt to interchange loops in the Fortran front end where
profitable. Enabled by default by any @option{-O} option.
At the moment, this option only affects @code{FORALL} and
@ -2066,8 +2066,8 @@ shared by @command{gfortran}, @command{gcc}, and other GNU compilers.
@table @asis
@opindex @code{c-prototypes}
@item -fc-prototypes
@cindex Generating C prototypes from Fortran BIND(C) enteties
@item -fc-prototypes
This option will generate C prototypes from @code{BIND(C)} variable
declarations, types and procedure interfaces and writes them to
standard output. @code{ENUM} is not yet supported.
@ -2088,8 +2088,8 @@ where the C code intended for interoperating with the Fortran code
then uses @code{#include "foo.h"}.
@opindex @code{c-prototypes-external}
@item -fc-prototypes-external
@cindex Generating C prototypes from external procedures
@item -fc-prototypes-external
This option will generate C prototypes from external functions and
subroutines and write them to standard output. This may be useful for
making sure that C bindings to Fortran code are correct. This option

View file

@ -152,18 +152,18 @@ program will generally cause it to misbehave or fail.
@c man begin OPTIONS gccgo
@table @gcctabopt
@item -I@var{dir}
@cindex @option{-I}
@item -I@var{dir}
Specify a directory to use when searching for an import package at
compile time.
@item -L@var{dir}
@cindex @option{-L}
@item -L@var{dir}
When linking, specify a library search directory, as with
@command{gcc}.
@item -fgo-pkgpath=@var{string}
@cindex @option{-fgo-pkgpath}
@item -fgo-pkgpath=@var{string}
Set the package path to use. This sets the value returned by the
PkgPath method of reflect.Type objects. It is also used for the names
of globally visible symbols. The argument to this option should
@ -171,8 +171,8 @@ normally be the string that will be used to import this package after
it has been installed; in other words, a pathname within the
directories specified by the @option{-I} option.
@item -fgo-prefix=@var{string}
@cindex @option{-fgo-prefix}
@item -fgo-prefix=@var{string}
An alternative to @option{-fgo-pkgpath}. The argument will be
combined with the package name from the source file to produce the
package path. If @option{-fgo-pkgpath} is used, @option{-fgo-prefix}
@ -189,24 +189,24 @@ Using either @option{-fgo-pkgpath} or @option{-fgo-prefix} disables
the special treatment of the @code{main} package and permits that
package to be imported like any other.
@item -fgo-relative-import-path=@var{dir}
@cindex @option{-fgo-relative-import-path}
@item -fgo-relative-import-path=@var{dir}
A relative import is an import that starts with @file{./} or
@file{../}. If this option is used, @command{gccgo} will use
@var{dir} as a prefix for the relative import when searching for it.
@item -frequire-return-statement
@itemx -fno-require-return-statement
@cindex @option{-frequire-return-statement}
@cindex @option{-fno-require-return-statement}
@item -frequire-return-statement
@itemx -fno-require-return-statement
By default @command{gccgo} will warn about functions which have one or
more return parameters but lack an explicit @code{return} statement.
This warning may be disabled using
@option{-fno-require-return-statement}.
@item -fgo-check-divide-zero
@cindex @option{-fgo-check-divide-zero}
@cindex @option{-fno-go-check-divide-zero}
@item -fgo-check-divide-zero
Add explicit checks for division by zero. In Go a division (or
modulos) by zero causes a panic. On Unix systems this is detected in
the runtime by catching the @code{SIGFPE} signal. Some processors,
@ -217,9 +217,9 @@ systems, this option may be used. Or the checks may be removed via
default, but in the future may be off by default on systems that do
not require it.
@item -fgo-check-divide-overflow
@cindex @option{-fgo-check-divide-overflow}
@cindex @option{-fno-go-check-divide-overflow}
@item -fgo-check-divide-overflow
Add explicit checks for division overflow. For example, division
overflow occurs when computing @code{INT_MIN / -1}. In Go this should
be wrapped, to produce @code{INT_MIN}. Some processors, such as x86,
@ -229,41 +229,41 @@ may be used. Or the checks may be removed via
by default, but in the future may be off by default on systems that do
not require it.
@item -fno-go-optimize-allocs
@cindex @option{-fno-go-optimize-allocs}
@item -fno-go-optimize-allocs
Disable escape analysis, which tries to allocate objects on the stack
rather than the heap.
@item -fgo-debug-escape@var{n}
@cindex @option{-fgo-debug-escape}
@item -fgo-debug-escape@var{n}
Output escape analysis debugging information. Larger values of
@var{n} generate more information.
@item -fgo-debug-escape-hash=@var{n}
@cindex @option{-fgo-debug-escape-hash}
@item -fgo-debug-escape-hash=@var{n}
A hash value to debug escape analysis. @var{n} is a binary string.
This runs escape analysis only on functions whose names hash to values
that match the given suffix @var{n}. This can be used to binary
search across functions to uncover escape analysis bugs.
@item -fgo-debug-optimization
@cindex @option{-fgo-debug-optimization}
@cindex @option{-fno-go-debug-optimization}
@item -fgo-debug-optimization
Output optimization diagnostics.
@item -fgo-c-header=@var{file}
@cindex @option{-fgo-c-header}
@item -fgo-c-header=@var{file}
Write top-level named Go struct definitions to @var{file} as C code.
This is used when compiling the runtime package.
@item -fgo-compiling-runtime
@cindex @option{-fgo-compiling-runtime}
@item -fgo-compiling-runtime
Apply special rules for compiling the runtime package. Implicit
memory allocation is forbidden. Some additional compiler directives
are supported.
@item -fgo-embedcfg=@var{file}
@cindex @option{-fgo-embedcfg}
@item -fgo-embedcfg=@var{file}
Identify a JSON file used to map patterns used with special
@code{//go:embed} comments to the files named by the patterns. The
JSON file should have two components: @code{Patterns} maps each
@ -271,8 +271,8 @@ pattern to a list of file names, and @code{Files} maps each file name
to a full path to the file. This option is intended for use by the
@command{go} command to implement @code{//go:embed}.
@item -g
@cindex @option{-g for gccgo}
@item -g
This is the standard @command{gcc} option (@pxref{Debugging Options, ,
Debugging Options, gcc, Using the GNU Compiler Collection (GCC)}). It
is mentioned here because by default @command{gccgo} turns on