I noticed that several options (mostly C++ options, including those
for contracts) were documented in the manual but were not listed in
the corresponding option summary table.  Besides adding the entries, I
also corrected the alphabetization in the C++ option table and some
formatting issues for option arguments.

gcc/ChangeLog
        PR other/122243
        * doc/invoke.texi (Option Summary): Add missing entries,
        also correct alphabetization and formatting of the C++ options.
        (C++ Language Options): Fix some formatting issues.
---
 gcc/doc/invoke.texi | 70 ++++++++++++++++++++++++++++-----------------
 1 file changed, 44 insertions(+), 26 deletions(-)

diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index a846693263b..8a538d028b9 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -210,23 +210,36 @@ in the following sections.
 
 @item C++ Language Options
 @xref{C++ Dialect Options,,Options Controlling C++ Dialect}.
-@gccoptlist{-fabi-version=@var{n}  -fno-access-control
--faligned-new=@var{n}  -fno-assume-sane-operators-new-delete
+@gccoptlist{-fabi-compat-version=@var{n} -fabi-version=@var{n}
+-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}
 -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{]}
+-fcontract-continuation-mode=@r{[}on@r{|}off@r{]}
+-fcontract-mode=@r{[}on@r{|}off@r{]}
+-fcontract-role=@var{name}:@var{default},@var{audit},@var{axiom}
+-fcontract-semantic=@r{[}default@r{|}audit@r{|}axiom@r{]}:@var{semantic}
+-fcontract-strict-declarations=@r{[}on@r{|}off@r{]}
+-fcoroutines  -fdiagnostics-all-candidates
 -fno-elide-constructors
 -fno-enforce-eh-specs
+-fext-numeric-literals
 -fno-gnu-keywords
 -fno-immediate-escalation
--fno-implicit-templates
--fno-implicit-inline-templates
 -fno-implement-inlines
--fmodule-header@r{[}=@var{kind}@r{]} -fmodule-only -fmodules
+-fimplicit-constexpr
+-fno-implicit-inline-templates
+-fno-implicit-templates
+-fmodule-header@r{[}=@var{kind}@r{]}
 -fmodule-implicit-inline
 -fno-module-lazy
 -fmodule-mapper=@var{specification}
+-fmodule-only
 -fmodule-version-ignore
+-fmodules
 -fms-extensions
 -fnew-inheriting-ctors
 -fnew-ttp-matching
@@ -234,19 +247,20 @@ in the following sections.
 -fno-optional-diags
 -fno-pretty-templates  -frange-for-ext-temps
 -fno-rtti  -fsized-deallocation
--fstrong-eval-order@r{[}=@var{kind}@r{]}
+-fstrict-enums  -fstrong-eval-order@r{[}=@var{kind}@r{]}
 -ftemplate-backtrace-limit=@var{n}
 -ftemplate-depth=@var{n}
--fno-threadsafe-statics  -fuse-cxa-atexit
+-fno-threadsafe-statics  -fuse-cxa-atexit  -fno-use-cxa-get-exception-ptr
 -fno-weak  -nostdinc++
 -fvisibility-inlines-hidden
 -fvisibility-ms-compat
--fext-numeric-literals
 -flang-info-include-translate@r{[}=@var{header}@r{]}
 -flang-info-include-translate-not
 -flang-info-module-cmi@r{[}=@var{module}@r{]}
 -stdlib=@var{libstdc++,libc++}
--Wabi-tag  -Wcatch-value  -Wcatch-value=@var{n}
+-Wabbreviated-auto-in-template-arg
+-Wabi-tag  -Waligned-new@r{[}=@var{kind}@r{]}
+-Wcatch-value  -Wcatch-value=@var{n}
 -Wno-class-conversion  -Wclass-memaccess
 -Wcomma-subscript  -Wconditionally-supported
 -Wno-conversion-null  -Wctad-maybe-unsupported
@@ -254,23 +268,24 @@ in the following sections.
 -Wno-defaulted-function-deleted
 -Wno-delete-incomplete
 -Wdelete-non-virtual-dtor  -Wno-deprecated-array-compare
--Wdeprecated-copy -Wdeprecated-copy-dtor
--Wno-deprecated-enum-enum-conversion -Wno-deprecated-enum-float-conversion
--Weffc++ -Wno-elaborated-enum-base
--Wno-exceptions -Wno-expose-global-module-tu-local -Wno-external-tu-local
--Wextra-semi -Wno-global-module -Wno-inaccessible-base
+-Wdeprecated-copy  -Wdeprecated-copy-dtor
+-Wno-deprecated-enum-enum-conversion  -Wno-deprecated-enum-float-conversion
+-Wno-deprecated-literal-operator  -Wdeprecated-variadic-comma-omission
+-Weffc++  -Wno-elaborated-enum-base
+-Wno-exceptions  -Wno-expose-global-module-tu-local  -Wno-external-tu-local
+-Wextra-semi  -Wno-global-module  -Wno-inaccessible-base
 -Wno-inherited-variadic-ctor  -Wno-init-list-lifetime
--Winvalid-constexpr -Winvalid-imported-macros
+-Winvalid-constexpr  -Winvalid-imported-macros
 -Wno-invalid-offsetof  -Wno-literal-suffix
--Wmismatched-new-delete -Wmismatched-tags
+-Wmismatched-new-delete  -Wmismatched-tags
 -Wmultiple-inheritance  -Wnamespaces  -Wnarrowing
 -Wnoexcept  -Wnoexcept-type  -Wnon-virtual-dtor
 -Wpessimizing-move  -Wno-placement-new  -Wplacement-new=@var{n}
--Wrange-loop-construct -Wredundant-move -Wredundant-tags
--Wreorder  -Wregister -Wno-sfinae-incomplete
+-Wrange-loop-construct  -Wredundant-move  -Wredundant-tags
+-Wreorder  -Wregister  -Wno-sfinae-incomplete
 -Wstrict-null-sentinel  -Wno-subobject-linkage  -Wtemplates
 -Wno-non-c-typedef-for-linkage  -Wno-non-template-friend  -Wold-style-cast
--Woverloaded-virtual  -Wno-pmf-conversions -Wself-move -Wsign-promo
+-Woverloaded-virtual  -Wno-pmf-conversions  -Wself-move  -Wsign-promo
 -Wsized-deallocation  -Wsuggest-final-methods
 -Wsuggest-final-types  -Wsuggest-override  -Wno-template-body
 -Wno-template-id-cdtor  -Wtemplate-names-tu-local
@@ -815,6 +830,7 @@ Objective-C and Objective-C++ Dialects}.
 -fvar-tracking-assignments-toggle  -gtoggle
 -print-file-name=@var{library}  -print-libgcc-file-name
 -print-multi-directory  -print-multi-lib  -print-multi-os-directory
+-print-multiarch
 -print-prog-name=@var{program}  -print-search-dirs  -Q
 -print-sysroot  -print-sysroot-headers-suffix
 -save-temps  -save-temps=cwd  -save-temps=obj  -time@r{[}=@var{file}@r{]}}
@@ -3056,6 +3072,7 @@ around bugs in the access control code.
 
 @opindex faligned-new
 @item -faligned-new
+@itemx -faligned-new=@var{alignment}
 Enable support for C++17 @code{new} of types that require more
 alignment than @code{void* ::operator new(std::size_t)} provides.  A
 numeric argument such as @code{-faligned-new=32} can be used to
@@ -3242,38 +3259,38 @@ used together.
 
 @table @gcctabopt
 @opindex fcontract-mode
-@item -fcontract-mode=[on|off]
+@item -fcontract-mode=@r{[}on@r{|}off@r{]}
 Control whether any contracts have any semantics at all.  Defaults to on.
 
 @opindex fcontract-assumption-mode
-@item -fcontract-assumption-mode=[on|off]
+@item -fcontract-assumption-mode=@r{[}on@r{|}off@r{]}
 [N4820] Control whether contracts with level @samp{axiom}
 should have the assume semantic.  Defaults to on.
 
 @opindex fcontract-build-level
-@item -fcontract-build-level=[off|default|audit]
+@item -fcontract-build-level=@r{[}off@r{|}default@r{|}audit@r{]}
 [N4820] Specify which level of contracts to generate checks
 for.  Defaults to @samp{default}.
 
 @opindex fcontract-continuation-mode
-@item -fcontract-continuation-mode=[on|off]
+@item -fcontract-continuation-mode=@r{[}on@r{|}off@r{]}
 [N4820] Control whether to allow the program to continue executing
 after a contract violation.  That is, do checked contracts have the
 @samp{maybe} semantic described below rather than the @samp{never}
 semantic.  Defaults to off.
 
 @opindex fcontract-role
-@item -fcontract-role=<name>:<default>,<audit>,<axiom>
+@item -fcontract-role=@var{name}:@var{default},@var{audit},@var{axiom}
 [P1332] Specify the concrete semantics for each contract level
 of a particular contract role.
 
 @opindex fcontract-semantic
-@item -fcontract-semantic=[default|audit|axiom]:<semantic>
+@item -fcontract-semantic=@r{[}default@r{|}audit@r{|}axiom@r{]}:@var{semantic}
 [P1429] Specify the concrete semantic for a particular
 contract level.
 
 @opindex fcontract-strict-declarations
-@item -fcontract-strict-declarations=[on|off]
+@item -fcontract-strict-declarations=@r{[}on@r{|}off@r{]}
 Control whether to reject adding contracts to a function after its
 first declaration.  Defaults to off.
 @end table
@@ -4871,6 +4888,7 @@ Enabled by default with @option{-std=c++20}.  Before
 @opindex Waligned-new
 @opindex Wno-aligned-new
 @item -Waligned-new
+@itemx -Waligned-new=@r{[}none@r{|}global@r{|}all@r{]}
 Warn about a new-expression of a type that requires greater alignment
 than the @code{alignof(std::max_align_t)} but uses an allocation
 function without an explicit alignment parameter. This option is
-- 
2.39.5

Reply via email to