From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mout-p-202.mailbox.org (mout-p-202.mailbox.org [IPv6:2001:67c:2050:0:465::202]) by sourceware.org (Postfix) with ESMTPS id 56B753858D38 for ; Fri, 27 Jan 2023 00:32:23 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 56B753858D38 Authentication-Results: sourceware.org; dmarc=pass (p=reject dis=none) header.from=aarsen.me Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=aarsen.me Received: from smtp102.mailbox.org (smtp102.mailbox.org [10.196.197.102]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-384) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mout-p-202.mailbox.org (Postfix) with ESMTPS id 4P2z6q55tWz9sRH; Fri, 27 Jan 2023 01:32:19 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=aarsen.me; s=MBO0001; t=1674779539; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=u1i4MnZOV6c2KfaC61lPs/aE+MmRAD4+M83IMOXzMZw=; b=j4m3GYgXfa9T4I2dCi4vSfRBBVtasV9/6EIGN4i7d3uy6uZF9wz2f0pANcoUj2lR/ws/w/ LVPWO1tUdsyimQE5LjqizklekwNufRb4SO/iRSn50ENKaq0U2UfcgkYk7w0gMoOZypFwWX 9cHfOabQsbC6Zlo9t0PjsPsxJ4AOOi1smByRfmOKv3j28LnOJhiHT4fXEnHmjQGApN9Z8m tdCA+Mu+2ZWQZCTOuH5AlqofzI+M3MdYr8O6/WTM/lAfdYRKiaBubSZ4Mks0Ldym+lDhYq w5X7jT0ai28f0hOsNJdSTbmswLbte9MAj3+9tKIGLWllAFGcokmdboi84Inzbg== From: =?UTF-8?q?Arsen=20Arsenovi=C4=87?= To: gcc-patches@gcc.gnu.org Cc: =?UTF-8?q?Arsen=20Arsenovi=C4=87?= Subject: [PATCH 3/7] **/*.texi: Reorder index entries Date: Fri, 27 Jan 2023 01:18:31 +0100 Message-Id: <8850cffaffae7e85824576b7761e446df8731115.1674777149.git.arsen@aarsen.me> In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-10.8 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,KAM_INFOUSMEBIZ,RCVD_IN_DNSWL_LOW,SPF_HELO_NONE,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: 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/invoke.texi: Ditto. * doc/md.texi: Ditto. * doc/rtl.texi: Ditto. * doc/tm.texi: Ditto. * doc/trouble.texi: Ditto. gcc/fortran/ChangeLog: * invoke.texi: Reorder index entries around @items. gcc/go/ChangeLog: * gccgo.texi: Reorder index entries around @items. --- gcc/d/implement-d.texi | 66 ++++++------- gcc/doc/cfg.texi | 12 +-- gcc/doc/cpp.texi | 12 +-- gcc/doc/cppenv.texi | 4 +- gcc/doc/cppopts.texi | 8 +- gcc/doc/generic.texi | 2 +- gcc/doc/install.texi | 6 +- gcc/doc/invoke.texi | 138 +++++++++++++-------------- gcc/doc/md.texi | 25 +++-- gcc/doc/rtl.texi | 8 +- gcc/doc/tm.texi | 4 +- gcc/doc/trouble.texi | 8 +- gcc/fortran/invoke.texi | 204 ++++++++++++++++++++-------------------- gcc/go/gccgo.texi | 34 +++---- 14 files changed, 265 insertions(+), 266 deletions(-) diff --git a/gcc/d/implement-d.texi b/gcc/d/implement-d.texi index 6d0c1ec3661..89a17916a83 100644 --- a/gcc/d/implement-d.texi +++ b/gcc/d/implement-d.texi @@ -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 -@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 +@item @@(gcc.attributes.allocSize (@var{sizeArgIdx})) +@itemx @@(gcc.attributes.allocSize (@var{sizeArgIdx}, @var{numArgIdx})) +@item @@(gcc.attributes.allocSize (@var{sizeArgIdx})) 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 diff --git a/gcc/doc/cfg.texi b/gcc/doc/cfg.texi index fa2f5a80991..6fb9c9f48ec 100644 --- a/gcc/doc/cfg.texi +++ b/gcc/doc/cfg.texi @@ -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 diff --git a/gcc/doc/cpp.texi b/gcc/doc/cpp.texi index 536167445ab..b0a2ce3ac6b 100644 --- a/gcc/doc/cpp.texi +++ b/gcc/doc/cpp.texi @@ -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 diff --git a/gcc/doc/cppenv.texi b/gcc/doc/cppenv.texi index 58ec4df20c7..75feaeb9141 100644 --- a/gcc/doc/cppenv.texi +++ b/gcc/doc/cppenv.texi @@ -44,8 +44,8 @@ See also @ref{Search Path}. @end ifset @c man begin ENVIRONMENT +@cindex dependencies for make as output @item DEPENDENCIES_OUTPUT -@cindex dependencies for make as 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. +@cindex dependencies for make as output @item SUNPRO_DEPENDENCIES -@cindex dependencies for make as output 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 diff --git a/gcc/doc/cppopts.texi b/gcc/doc/cppopts.texi index 647d25239ed..872629eeb4d 100644 --- a/gcc/doc/cppopts.texi +++ b/gcc/doc/cppopts.texi @@ -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 diff --git a/gcc/doc/generic.texi b/gcc/doc/generic.texi index 3f52d3042b8..ad1270f9025 100644 --- a/gcc/doc/generic.texi +++ b/gcc/doc/generic.texi @@ -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 diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi index b1861a6a437..9ee002db833 100644 --- a/gcc/doc/install.texi +++ b/gcc/doc/install.texi @@ -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. diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index 672fc7b1987..af15a3464c8 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -2527,9 +2527,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, @@ -2573,8 +2573,8 @@ third arguments. The value of such an expression is void. This option is not supported for C++. @opindex ffreestanding +@cindex hosted environment @item -ffreestanding -@cindex hosted environment Assert that compilation targets a freestanding environment. This implies @option{-fno-builtin}. A freestanding environment @@ -2629,8 +2629,8 @@ in effect for @code{inline} functions. @xref{Common Predefined Macros,,,cpp,The C Preprocessor}. @opindex fhosted +@cindex hosted environment @item -fhosted -@cindex hosted environment Assert that compilation targets a hosted environment. This implies @option{-fbuiltin}. A hosted environment is one in which the @@ -2666,12 +2666,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 @@ -2684,11 +2684,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 @@ -2706,8 +2706,8 @@ Typical command lines are @end smallexample @opindex fopenacc +@cindex OpenACC accelerator programming @item -fopenacc -@cindex OpenACC accelerator programming 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 @@ -2716,16 +2716,16 @@ implies @option{-pthread}, and thus is only supported on targets that have support for @option{-pthread}. @opindex fopenacc-dim +@cindex OpenACC accelerator programming @item -fopenacc-dim=@var{geom} -@cindex OpenACC accelerator programming 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 @@ -2736,9 +2736,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 @@ -2747,9 +2747,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: @@ -5063,10 +5063,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} @@ -5116,86 +5116,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 @@ -7543,10 +7543,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 @@ -8344,9 +8344,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 @@ -9115,10 +9115,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 @@ -9546,10 +9546,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 @@ -9627,8 +9627,8 @@ Enabled by default. @opindex Wopenacc-parallelism @opindex Wno-openacc-parallelism +@cindex OpenACC accelerator programming @item -Wopenacc-parallelism -@cindex OpenACC accelerator programming Warn about potentially suboptimal choices related to OpenACC parallelism. @opindex Wopenmp-simd @@ -17795,8 +17795,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 @@ -18193,8 +18193,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 @@ -18334,9 +18334,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 @@ -25785,8 +25785,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. @@ -28046,8 +28046,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. @@ -29951,9 +29951,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 @@ -34310,18 +34310,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 @@ -34999,6 +34999,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 @@ -35007,15 +35016,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 @@ -35039,22 +35039,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 @@ -35088,15 +35088,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 @@ -35105,9 +35105,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++. @@ -35127,8 +35127,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 diff --git a/gcc/doc/md.texi b/gcc/doc/md.texi index 7235d34c4b3..8e3113599fd 100644 --- a/gcc/doc/md.texi +++ b/gcc/doc/md.texi @@ -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 == @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: @@ -5427,9 +5426,9 @@ op0 = (narrow) (((((wide) op1 * (wide) op2) >> (N / 2 - 2)) + 1) >> 1); 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 @cindex @code{sdiv_pow2@var{m3}} instruction pattern @item @samp{sdiv_pow2@var{m3}} -@cindex @code{sdiv_pow2@var{m3}} instruction pattern @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 diff --git a/gcc/doc/rtl.texi b/gcc/doc/rtl.texi index d1380e1eb3b..1de24943c2e 100644 --- a/gcc/doc/rtl.texi +++ b/gcc/doc/rtl.texi @@ -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. diff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi index c6c891972d1..09eab4131ce 100644 --- a/gcc/doc/tm.texi +++ b/gcc/doc/tm.texi @@ -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}. diff --git a/gcc/doc/trouble.texi b/gcc/doc/trouble.texi index ea17921eb4e..155be210992 100644 --- a/gcc/doc/trouble.texi +++ b/gcc/doc/trouble.texi @@ -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 diff --git a/gcc/fortran/invoke.texi b/gcc/fortran/invoke.texi index 86d3f33cb40..5679e2f2650 100644 --- a/gcc/fortran/invoke.texi +++ b/gcc/fortran/invoke.texi @@ -214,11 +214,11 @@ accepted by the compiler: @table @gcctabopt @opindex @code{ffree-form} @opindex @code{ffixed-form} +@cindex options, Fortran dialect +@cindex file format, free +@cindex file format, fixed @item -ffree-form @itemx -ffixed-form -@cindex options, Fortran dialect -@cindex file format, free -@cindex file format, fixed 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} +@cindex file format, fixed @item -ffixed-line-length-@var{n} -@cindex file format, fixed 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} +@cindex file format, free @item -ffree-line-length-@var{n} -@cindex file format, free 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} +@cindex preprocessor, debugging +@cindex debugging, preprocessor @item -dM -@cindex preprocessor, debugging -@cindex debugging, preprocessor 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} +@cindex preprocessor, debugging +@cindex debugging, preprocessor @item -dD -@cindex preprocessor, debugging -@cindex debugging, preprocessor 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} +@cindex preprocessor, debugging +@cindex debugging, preprocessor @item -dN -@cindex preprocessor, debugging -@cindex debugging, preprocessor Like @option{-dD}, but emit only the macro names, not their expansions. @opindex @code{dU} +@cindex preprocessor, debugging +@cindex debugging, preprocessor @item -dU -@cindex preprocessor, debugging -@cindex debugging, preprocessor 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} +@cindex preprocessor, debugging +@cindex debugging, preprocessor @item -dI -@cindex preprocessor, debugging -@cindex debugging, preprocessor 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}} +@cindex preprocessing, include path @item -idirafter @var{dir} -@cindex preprocessing, include path 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}} +@cindex preprocessing, include path @item -imultilib @var{dir} -@cindex preprocessing, include path Use @var{dir} as a subdirectory of the directory containing target-specific C++ headers. @opindex @code{iprefix @var{prefix}} +@cindex preprocessing, include path @item -iprefix @var{prefix} -@cindex preprocessing, include path 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}} +@cindex preprocessing, include path @item -isysroot @var{dir} -@cindex preprocessing, include path 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}} +@cindex preprocessing, include path @item -iquote @var{dir} -@cindex preprocessing, include path Search @var{dir} only for header files requested with @code{#include "file"}; they are not searched for @code{#include }, 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}} +@cindex preprocessing, include path @item -isystem @var{dir} -@cindex preprocessing, include path 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}} +@cindex preprocessing, assertion @item -A@var{predicate}=@var{answer} -@cindex preprocessing, assertion 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}} +@cindex preprocessing, assertion @item -A-@var{predicate}=@var{answer} -@cindex preprocessing, assertion Cancel an assertion with the predicate @var{predicate} and answer @var{answer}. @opindex @code{C} +@cindex preprocessing, keep comments @item -C -@cindex preprocessing, keep comments 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} +@cindex preprocessing, keep comments @item -CC -@cindex preprocessing, keep comments 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}} +@cindex preprocessing, define macros @item -D@var{name} -@cindex preprocessing, define macros Predefine name as a macro, with definition @code{1}. @opindex @code{D@var{name}=@var{definition}} +@cindex preprocessing, define macros @item -D@var{name}=@var{definition} -@cindex preprocessing, define macros 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} +@cindex warnings, conversion +@cindex conversion @item -Wconversion -@cindex warnings, conversion -@cindex conversion Warn about implicit conversions that are likely to change the value of the expression after conversion. Implied by @option{-Wall}. @opindex @code{Wconversion-extra} +@cindex warnings, conversion +@cindex conversion @item -Wconversion-extra -@cindex warnings, conversion -@cindex conversion 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} +@cindex paths, search +@cindex module search path @item -J@var{dir} -@cindex paths, search -@cindex module search path 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} +@cindex paths, search +@cindex module search path @item -fintrinsic-modules-path @var{dir} -@cindex paths, search -@cindex module search path 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} +@cindex underscore +@cindex symbol names, underscores +@cindex transforming symbol names +@cindex symbol names, transforming @item -fno-underscoring -@cindex underscore -@cindex symbol names, underscores -@cindex transforming symbol names -@cindex symbol names, transforming Do not transform names of entities specified in the Fortran source file by appending underscores to them. @@ -1633,14 +1633,14 @@ prevent accidental linking between procedures with incompatible interfaces. @opindex @code{fsecond-underscore} +@cindex underscore +@cindex symbol names, underscores +@cindex transforming symbol names +@cindex symbol names, transforming +@cindex @command{f2c} calling convention +@cindex @command{g77} calling convention +@cindex libf2c calling convention @item -fsecond-underscore -@cindex underscore -@cindex symbol names, underscores -@cindex transforming symbol names -@cindex symbol names, transforming -@cindex @command{f2c} calling convention -@cindex @command{g77} calling convention -@cindex libf2c calling convention 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{} @cindex coarrays +@item -fcoarray=@var{} @table @asis @item @samp{none} @@ -1676,7 +1676,6 @@ library needs to be linked. @opindex @code{fcheck} -@item -fcheck=@var{} @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{} 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} +@cindex alignment of @code{COMMON} blocks @item -falign-commons -@cindex alignment of @code{COMMON} blocks 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 diff --git a/gcc/go/gccgo.texi b/gcc/go/gccgo.texi index b540957b985..4ab1a76818f 100644 --- a/gcc/go/gccgo.texi +++ b/gcc/go/gccgo.texi @@ -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 -- 2.39.1