gcc/ChangeLog
PR other/122243
PR rtl-optimization/120064
* doc/invoke.texi: Document -fconcepts-diagnostics-depth,
-Wdeprecated-copy-dtor, -Wformat-diag, -Wcannot-profile,
-fvar-tracking-uninit, -gno-pubnames, -finline-atomics,
-fext-dce, -fipa-icf-functions, -fipa-icf-variables,
-fprofile, -fdump-internal-locations, and -Wopenacc-dims.
Minor copy-editing and rearrangement of items in the option
summary lists.
---
gcc/doc/invoke.texi | 133 ++++++++++++++++++++++++++++++++++----------
1 file changed, 105 insertions(+), 28 deletions(-)
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index ca157dede35..809bbc61b33 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -219,7 +219,8 @@ in the following sections.
-fno-access-control -faligned-new=@r{[}@var{n}@r{]}
-fno-assume-sane-operators-new-delete
-fchar8_t -fcheck-new
--fconcepts -fconstexpr-depth=@var{n} -fconstexpr-cache-depth=@var{n}
+-fconcepts -fconcepts-diagnostics-depth=@var{n}
+-fconstexpr-depth=@var{n} -fconstexpr-cache-depth=@var{n}
-fconstexpr-loop-limit=@var{n} -fconstexpr-ops-limit=@var{n}
-fcontracts -fcontract-assumption-mode=@r{[}on@r{|}off@r{]}
-fcontract-build-level=@r{[}off@r{|}default@r{|}audit@r{]}
@@ -243,7 +244,6 @@ in the following sections.
-fno-module-lazy
-fmodule-mapper=@var{specification}
-fmodule-only
--fmodule-version-ignore
-fmodules
-fms-extensions
-fnew-inheriting-ctors
@@ -381,7 +381,7 @@ Objective-C and Objective-C++ Dialects}.
-Wc++20-compat -Wc++26-compat
-Wno-c++11-extensions -Wno-c++14-extensions -Wno-c++17-extensions
-Wno-c++20-extensions -Wno-c++23-extensions
--Wcalloc-transposed-args
+-Wcalloc-transposed-args -Wcannot-profile
-Wcast-align -Wcast-align=strict -Wcast-function-type -Wcast-qual
-Wchar-subscripts
-Wclobbered -Wcomment
@@ -400,7 +400,7 @@ Objective-C and Objective-C++ Dialects}.
-Werror -Werror=* -Wexpansion-to-defined -Wfatal-errors
-Wflex-array-member-not-at-end
-Wfloat-conversion -Wfloat-equal -Wformat -Wformat=2
--Wno-format-contains-nul -Wno-format-extra-args
+-Wno-format-contains-nul -Wno-format-diag -Wno-format-extra-args
-Wformat-nonliteral -Wformat-overflow=@var{n}
-Wformat-security -Wformat-signedness -Wformat-truncation=@var{n}
-Wformat-y2k -Wframe-address
@@ -445,7 +445,7 @@ Objective-C and Objective-C++ Dialects}.
-Wsizeof-array-div
-Wsizeof-pointer-div -Wsizeof-pointer-memaccess
-Wstack-protector -Wstack-usage=@var{byte-size} -Wstrict-aliasing
--Wstrict-aliasing=n -Wstrict-overflow -Wstrict-overflow=@var{n}
+-Wstrict-aliasing=@var{n} -Wstrict-overflow -Wstrict-overflow=@var{n}
-Wstring-compare
-Wno-stringop-overflow -Wno-stringop-overread
-Wno-stringop-truncation -Wstrict-flex-arrays
@@ -592,7 +592,7 @@ Objective-C and Objective-C++ Dialects}.
-femit-struct-debug-detailed@r{[}=@var{spec-list}@r{]}
-fno-eliminate-unused-debug-symbols -femit-class-debug-always
-fno-merge-debug-strings -fno-dwarf2-cfi-asm
--fvar-tracking -fvar-tracking-assignments
+-fvar-tracking -fvar-tracking-assignments -fvar-tracking-uninit
--debug}
@item Optimization Options
@@ -615,20 +615,24 @@ Objective-C and Objective-C++ Dialects}.
-fdata-sections -fdce -fdelayed-branch
-fdelete-null-pointer-checks -fdep-fusion -fdevirtualize
-fdevirtualize-speculatively -fdevirtualize-at-ltrans -fdse
--fearly-inlining -fipa-sra -fexpensive-optimizations -ffat-lto-objects
--ffast-math -ffinite-math-only -ffloat-store -fexcess-precision=@var{style}
--ffinite-loops
+-fearly-inlining -fexcess-precision=@var{style}
+-fexpensive-optimizations -fext-dce
+-ffast-math -ffat-lto-objects -ffinite-loops
+-ffinite-math-only -ffloat-store
-fforward-propagate -ffp-contract=@var{style} -ffp-int-builtin-inexact
-ffunction-sections
-fgcse -fgcse-after-reload -fgcse-las -fgcse-lm -fgraphite-identity
-fgcse-sm -fhoist-adjacent-loads -fif-conversion
-fif-conversion2 -findirect-inlining
--finline-stringops[=@var{fn}]
--finline-functions -finline-functions-called-once -finline-limit=@var{n}
--finline-small-functions -fipa-modref -fipa-cp -fipa-cp-clone
+-finline-atomics -finline-functions -finline-functions-called-once
+-finline-limit=@var{n} -finline-small-functions
+-finline-stringops@r{[}=@var{fn}@r{]}
+-fipa-modref -fipa-cp -fipa-cp-clone
-fipa-bit-cp -fipa-vrp -fipa-pta -fipa-profile -fipa-pure-const
-fipa-reference -fipa-reference-addressable -fipa-reorder-for-locality
--fipa-stack-alignment -fipa-icf -fira-algorithm=@var{algorithm}
+-fipa-sra -fipa-stack-alignment
+-fipa-icf -fipa-icf-functions -fipa-icf-variables
+-fira-algorithm=@var{algorithm}
-flate-combine-instructions -flifetime-dse -flive-patching=@var{level}
-fira-region=@var{region} -fira-hoist-pressure
-fira-loop-pressure -fno-ira-share-save-slots
@@ -699,7 +703,7 @@ Objective-C and Objective-C++ Dialects}.
@gccoptlist{-p -pg -fprofile-arcs -coverage -ftest-coverage
-fcondition-coverage
-fpath-coverage
--fprofile-abs-path
+-fprofile -fprofile-abs-path
-fprofile-dir=@var{path} -fprofile-generate -fprofile-generate=@var{path}
-fprofile-info-section -fprofile-info-section=@var{name}
-fprofile-note=@var{path} -fprofile-prefix-path=@var{path}
@@ -831,6 +835,7 @@ Objective-C and Objective-C++ Dialects}.
-fdump-debug -fdump-earlydebug
-fdump-noaddr -fdump-unnumbered -fdump-unnumbered-links
-fdump-final-insns@r{[}=@var{file}@r{]}
+-fdump-internal-locations
-fdump-ipa-all -fdump-ipa-cgraph -fdump-ipa-inline
-fdump-lang-all
-fdump-lang-@var{switch}
@@ -906,7 +911,8 @@ Objective-C and Objective-C++ Dialects}.
-msplit-vecmove-early -m1reg-@var{reg}}
@emph{AMD GCN Options} (@ref{AMD GCN Options})
-@gccoptlist{-march=@var{gpu} -mtune=@var{gpu} -mstack-size=@var{bytes}}
+@gccoptlist{-march=@var{gpu} -mtune=@var{gpu} -mstack-size=@var{bytes}
+-Wopenacc-dims}
@emph{ARC Options} (@ref{ARC Options})
@gccoptlist{-mbarrel-shifter -mjli-always
@@ -3244,6 +3250,11 @@ into the standard, could additionally be enabled by
in GCC 14 and removed in GCC 15; users are expected to convert their code
to C++20 concepts.
+@opindex fconcepts-diagnostics-depth
+@item -fconcepts-diagnostics-depth=@var{n}
+Specify maximum error replay depth during recursive diagnosis of a constraint
+satisfaction failure. The default is 1.
+
@opindex fconstexpr-depth
@item -fconstexpr-depth=@var{n}
Set the maximum nested evaluation depth for C++11 constexpr functions
@@ -4071,8 +4082,12 @@ by @option{-Wall}.
Warn that the implicit declaration of a copy constructor or copy
assignment operator is deprecated if the class has a user-provided
copy constructor or copy assignment operator, in C++11 and up. This
-warning is enabled by @option{-Wextra}. With
-@option{-Wdeprecated-copy-dtor}, also deprecate if the class has a
+warning is enabled by @option{-Wextra}.
+
+@opindex Wdeprecated-copy-dtor
+@opindex Wno-deprecated-copy-dtor
+@item -Wdeprecated-copy-dtor @r{(C++ and Objective-C++ only)}
+Similar to @option{-Wdeprecated-copy}, but also deprecate if the class has a
user-provided destructor.
@opindex Wdeprecated-enum-enum-conversion
@@ -7132,7 +7147,7 @@ Option @option{-Wformat} is equivalent to
@option{-Wformat=1}, and
@option{-Wformat} also checks for null format arguments for several
functions, @option{-Wformat} also implies @option{-Wnonnull}. Some
aspects of this level of format checking can be disabled by the
-options: @option{-Wno-format-contains-nul},
+options: @option{-Wno-format-contains-nul}, @option{-Wno-format-diag},
@option{-Wno-format-extra-args}, and @option{-Wno-format-zero-length}.
@option{-Wformat} is enabled by @option{-Wall}.
@@ -7149,6 +7164,12 @@ equivalent to @option{-Wformat -Wformat-nonliteral
-Wformat-security
If @option{-Wformat} is specified, do not warn about format strings that
contain NUL bytes.
+@opindex Wno-format-diag
+@opindex Wformat-diag
+@item -Wno-format-diag
+If @option{-Wformat} is specified, do not warn about format strings that
+are unsuitable for GCC diagnostics.
+
@opindex Wno-format-extra-args
@opindex Wformat-extra-args
@item -Wno-format-extra-args
@@ -8573,8 +8594,7 @@ cases, but does attempt to catch the more common
pitfalls. It is
included in @option{-Wall}.
It is equivalent to @option{-Wstrict-aliasing=3}.
-@opindex Wstrict-aliasing=n
-@item -Wstrict-aliasing=n
+@item -Wstrict-aliasing=@var{n}
This option is only active when @option{-fstrict-aliasing} is active.
It warns about code that might break the strict aliasing rules that the
compiler is using for optimization.
@@ -9021,6 +9041,12 @@ This option warns on all uses of @code{alloca} in the
source.
@item -Wauto-profile
Output warnings about auto-profile inconsistencies.
+@opindex Wcannot-profile
+@opindex Wno-cannot-profile
+@item -Wcannot-profile
+Warn when profiling instrumentation was requested, but could not be applied to
+a certain function.
+
@opindex Walloca-larger-than=
@opindex Wno-alloca-larger-than
@item -Walloca-larger-than=@var{byte-size}
@@ -12853,6 +12879,17 @@ annotations are created and maintained, but discarded
at the end.
By default, this flag is enabled together with @option{-fvar-tracking},
except when selective scheduling is enabled.
+@opindex fvar-tracking-uninit
+@opindex fno-var-tracking-uninit
+@item -fvar-tracking-uninit
+@itemx -fno-var-tracking-uninit
+Perform variable tracking and also mark uninitialized variables in the
+debug information.
+This flag is enabled by default by @option{-fvar-tracking}; it
+also implies @option{-fvar-tracking}.
+To do variable tracking without marking uninitialized variables, use
+@option{-fvar-tracking} @option{-fno-var-tracking-uninit}.
+
@opindex gsplit-dwarf
@item -gsplit-dwarf
If DWARF debugging information is enabled, separate as much debugging
@@ -12889,6 +12926,10 @@ Generate @code{.debug_pubnames} and
@code{.debug_pubtypes} sections in a format
suitable for conversion into a GDB@ index. This option is only useful
with a linker that can produce GDB@ index version 7.
+@opindex gno-pubnames
+@item -gno-pubnames
+Don't generate DWARF @code{.debug_pubnames} and @code{.debug_pubtypes}
sections.
+
@opindex fdebug-types-section
@opindex fno-debug-types-section
@item -fdebug-types-section
@@ -13508,8 +13549,15 @@ their @code{_FORTIFY_SOURCE} counterparts into faster
alternatives.
Enabled at levels @option{-O2}, @option{-O3}.
+@opindex finline-atomics
+@opindex fno-inline-atomics
+@item -finline-atomics
+@itemx -fno-inline-atomics
+Inline @samp{__atomic} operations when a lock-free instruction sequence
+is available. This optimization is enabled by default.
+
@opindex finline-stringops
-@item -finline-stringops[=@var{fn}]
+@item -finline-stringops@r{[}=@var{fn}@r{]}
Expand memory and string operations (for now, only @code{memset})
inline, even when the length is variable or big enough as to require
looping. This is most useful along with @option{-ffreestanding} and
@@ -13954,6 +14002,13 @@ Perform a number of minor optimizations that are
relatively expensive.
Enabled at levels @option{-O2}, @option{-O3}, @option{-Os}.
+@opindex fext-dce
+@opindex fno-ext-dce
+@item -fext-dce
+@itemx -fno-ext-dce
+Perform dead code elimination on zero and sign extensions, with special
+dataflow analysis.
+
@opindex free
@item -free
Attempt to remove redundant extension instructions. This is especially
@@ -14451,17 +14506,26 @@ ranges. This flag is enabled by default at
@option{-O2}. It requires
that @option{-fipa-cp} is enabled.
@opindex fipa-icf
-@item -fipa-icf
-Perform Identical Code Folding for functions and read-only variables.
+@opindex fipa-icf-functions
+@opindex fipa-icf-variables
+@opindex fno-ipa-icf
+@opindex fno-ipa-icf-functions
+@opindex fno-ipa-icf-variables
+@item -fipa-icf-functions
+@itemx -fipa-icf-variables
+@itemx -fipa-icf
+Perform Identical Code Folding for functions (@option{-fipa-icf-functions}),
+read-only variables (@option{-fipa-icf-variables}), or both
+(@option{-fipa-icf}).
The optimization reduces code size and may disturb unwind stacks by replacing
-a function by equivalent one with a different name. The optimization works
+a function by an equivalent one with a different name. The optimization works
more effectively with link-time optimization enabled.
Although the behavior is similar to the Gold Linker's ICF optimization, GCC ICF
works on different levels and thus the optimizations are not same - there are
equivalences that are found only by GCC and equivalences found only by Gold.
-This flag is enabled by default at @option{-O2} and @option{-Os}.
+@option{-fipa-icf} is enabled by default at @option{-O2} and @option{-Os}.
@opindex flate-combine-instructions
@item -flate-combine-instructions
@@ -18100,13 +18164,16 @@ program analysis purposes.
@cindex @command{prof}
@cindex @command{gprof}
@opindex p
-@opindex pg
@opindex profile
+@opindex fprofile
+@opindex pg
@item -p
-@itemx -pg
@itemx --profile
+@itemx -fprofile
+@itemx -pg
Generate extra code to write profile information suitable for the
-analysis program @command{prof} (for @option{-p} or @option{--profile})
+analysis program @command{prof} (for @option{-p}, @option{--profile},
+and @option{-fprofile})
or @command{gprof}
(for @option{-pg}). You must use this option when compiling
the source files you want data about, and you must also use it when
@@ -21271,6 +21338,11 @@ When doing debugging dumps (see @option{-d} option
above), suppress
instruction numbers for the links to the previous and next instructions
in a sequence.
+@opindex fdump-internal-locations
+@item -fdump-internal-locations
+Dump detailed information about GCC's internal representation of source code
+locations.
+
@opindex fdump-ipa
@item -fdump-ipa-@var{switch}
@itemx -fdump-ipa-@var{switch}-@var{options}
@@ -23296,6 +23368,11 @@ configure XNACK. The compiled code must match the
device mode.
The default is @samp{-mxnack=any} on devices that support Unified Shared
Memory, and @samp{-mxnack=no} otherwise.
+@opindex Wopenacc-dims
+@opindex Wno-openacc-dims
+@item -Wopenacc-dims
+Warn about invalid OpenACC dimensions.
+
@end table
@node ARC Options
--
2.39.5