https://gcc.gnu.org/g:bc09128cad447159eb71f0e5f97ac49ca2888300
commit r16-6916-gbc09128cad447159eb71f0e5f97ac49ca2888300 Author: Jakub Jelinek <[email protected]> Date: Tue Jan 20 11:55:32 2026 +0100 testsuite, cobol, modula2, rust, algol68: Extend help.exp testing and fix reported bugs Last night I was surprised because make check help.exp reported the missing dot at the end of cobol/lang.opt description below: Wmove-index Cobol Warning Var(move_index, 1) Init(1) Warn if MOVE INDEX is used but has not reported fexec-national-charset= Cobol Joined Var(cobol_national_charset) RejectNegative Set the default execution character set for NATIONAL data items a few lines earlier. The problem is that help.exp verified output of --help={common,optimizers,param,target,warnings} and just selected FEs: --help={ada,c,c++,d,fortran,go} and no other languages. Wmove-index above got reported because it appears in --help=warnings, but fexec-national-charset= didn't, because it only appears in --help=cobol So, the following patch adds 6 further languages to what help.exp tests and fixes the reported bugs. 2026-01-20 Jakub Jelinek <[email protected]> gcc/testsuite/ * gcc.misc-tests/help.exp: Check for descriptions without terminating dot or semicolon also for objc, objc++, rust, modula-2, cobol and algol68. gcc/rust/ * lang.opt (frust-crate=, frust-extern=, frust-incomplete-and-experimental-compiler-do-not-use, frust-max-recursion-depth=, frust-crate-type=, frust-mangling=, frust-cfg=, frust-edition=, frust-embed-metadata, frust-metadata-output=, frust-compile-until=, frust-name-resolution-2.0, frust-panic=, frust-overflow-checks): Add dot at the end of the description. gcc/cobol/ * lang.opt (fexec-national-charset=): Add dot at the end of the description. gcc/algol68/ * lang.opt (std=algol68, std=gnu68): Add dot at the end of the description. gcc/m2/ * lang.opt (Wpedantic-param-names, Wpedantic-cast, Wverbose-unbounded, Wstyle, fauto-init, fbounds, fcase, fcpp, fcpp-end, fcpp-begin, fdebug-builtins, fd, fdebug-function-line-numbers, fdef=, fdump-system-exports, fextended-opaque, ffloatvalue, fgen-module-list=, findex, fiso, flocation=, fm2-debug-trace=, fm2-dump=, fm2-dump-decl=, fm2-dump-gimple=, fm2-dump-quad=, fm2-dump-filter=, fm2-file-offset-bits=, fm2-g, fm2-lower-case, fm2-pathname=, fm2-pathname-root=, fm2-pathname-rootI=, fm2-plugin, fm2-prefix=, fm2-statistics, fm2-strict-type, fm2-strict-type-reason, fm2-whole-program, fmod=, fnil, fpim, fpim2, fpim3, fpim4, fpositive-mod-floor-div, fpthread, fq, frange, freturn, fruntime-modules=, fscaffold-dynamic, fscaffold-c, fscaffold-c++, fscaffold-main, fscaffold-static, fshared, fsoft-check-all, fsources, fswig, fuse-list=, fwideset, fwholediv, fwholevalue, save-temps, save-temps=): Add dot at the end of the description. Diff: --- gcc/algol68/lang.opt | 4 +- gcc/cobol/lang.opt | 2 +- gcc/m2/lang.opt | 130 +++++++++++++++++----------------- gcc/rust/lang.opt | 30 ++++---- gcc/testsuite/gcc.misc-tests/help.exp | 3 +- 5 files changed, 85 insertions(+), 84 deletions(-) diff --git a/gcc/algol68/lang.opt b/gcc/algol68/lang.opt index b419f4fc39bc..2f9973b552f9 100644 --- a/gcc/algol68/lang.opt +++ b/gcc/algol68/lang.opt @@ -102,11 +102,11 @@ Link the GNU Algol 68 run-time library dynamically in the compilation. std=algol68 Algol68 -Compile strict Algol 68 as defined by the Revised Report +Compile strict Algol 68 as defined by the Revised Report. std=gnu68 Algol68 -Accept GNU extensions to Algol 68 +Accept GNU extensions to Algol 68. ; Stropping regimes. diff --git a/gcc/cobol/lang.opt b/gcc/cobol/lang.opt index d6c2b3cea556..58e1a7d3a5ec 100644 --- a/gcc/cobol/lang.opt +++ b/gcc/cobol/lang.opt @@ -79,7 +79,7 @@ Cobol Joined Var(cobol_charset) RejectNegative fexec-national-charset= Cobol Joined Var(cobol_national_charset) RejectNegative -Set the default execution character set for NATIONAL data items +Set the default execution character set for NATIONAL data items. ;; warnings diff --git a/gcc/m2/lang.opt b/gcc/m2/lang.opt index 00281bd0d0dd..419a2542a1ba 100644 --- a/gcc/m2/lang.opt +++ b/gcc/m2/lang.opt @@ -36,19 +36,19 @@ turns on case statement label compile time checking when using an expression of Wpedantic-param-names Modula-2 -compiler checks to force definition module procedure parameter names with their implementation module counterpart +compiler checks to force definition module procedure parameter names with their implementation module counterpart. Wpedantic-cast Modula-2 -compiler warns if a cast is being used on types of differing sizes +compiler warns if a cast is being used on types of differing sizes. Wverbose-unbounded Modula-2 -inform user which parameters will be passed by reference +inform user which parameters will be passed by reference. Wstyle Modula-2 -extra compile time semantic checking, typically tries to catch poor programming style +extra compile time semantic checking, typically tries to catch poor programming style. Wuninit-variable-checking Modula-2 @@ -60,67 +60,67 @@ turns on compile time analysis to detect access to uninitialized variables, the fauto-init Modula-2 -automatically initializes all pointers to NIL +automatically initializes all pointers to NIL. fbounds Modula-2 -turns on runtime subrange, array index and indirection via NIL pointer checking +turns on runtime subrange, array index and indirection via NIL pointer checking. fcase Modula-2 -turns on runtime checking to check whether a CASE statement requires an ELSE clause when one was not specified +turns on runtime checking to check whether a CASE statement requires an ELSE clause when one was not specified. fcpp Modula-2 -use cpp to preprocess the module +use cpp to preprocess the module. fcpp-end Modula-2 -passed to the preprocessor if -fcpp is used (internal switch) +passed to the preprocessor if -fcpp is used (internal switch). fcpp-begin Modula-2 -passed to the preprocessor if -fcpp is used (internal switch) +passed to the preprocessor if -fcpp is used (internal switch). fdebug-builtins Modula-2 -call a real function, rather than the builtin equivalent +call a real function, rather than the builtin equivalent. fd Modula-2 -turn on internal debugging of the compiler (internal switch) +turn on internal debugging of the compiler (internal switch). fdebug-function-line-numbers Modula-2 -turn on tracing of procedure line numbers (internal switch) +turn on tracing of procedure line numbers (internal switch). fdef= Modula-2 Joined -recognize the specified suffix as a definition module filename +recognize the specified suffix as a definition module filename. fdump-system-exports Modula-2 -display all inbuilt system items +display all inbuilt system items. fextended-opaque Modula-2 -allows opaque types to be implemented as any type (a GNU Modula-2 extension) +allows opaque types to be implemented as any type (a GNU Modula-2 extension). ffloatvalue Modula-2 -turns on runtime checking to check whether a floating point number will exceed range +turns on runtime checking to check whether a floating point number will exceed range. fgen-module-list= Modula-2 Joined -create a topologically sorted module list from all dependent modules used in the application +create a topologically sorted module list from all dependent modules used in the application. findex Modula-2 -turns on all range checking for numerical values +turns on all range checking for numerical values. fiso Modula-2 -use ISO dialect of Modula-2 +use ISO dialect of Modula-2. flibs= Modula-2 Joined @@ -128,47 +128,47 @@ specify the library order, the libraries may be specified by a comma separated a flocation= Modula-2 Joined -set all location values to a specific value (internal switch) +set all location values to a specific value (internal switch). fm2-debug-trace= Modula-2 Joined -turn on internal debug tracing for quad,token,line,all (internal switch) +turn on internal debug tracing for quad,token,line,all (internal switch). fm2-dump= Modula-2 Joined -dump Modula-2 internal intemediate representation specified by: all,quad,decl,gimple +dump Modula-2 internal intemediate representation specified by: all,quad,decl,gimple. fm2-dump-decl= Modula-2 Joined -dump Modula-2 decls to the filename stem specified +dump Modula-2 decls to the filename stem specified. fm2-dump-gimple= Modula-2 Joined -dump Modula-2 gimple to the filename stem specified +dump Modula-2 gimple to the filename stem specified. fm2-dump-quad= Modula-2 Joined -dump Modula-2 quads to the filename stem specified +dump Modula-2 quads to the filename stem specified. fm2-dump-filter= Modula-2 Joined -filter the language dump using a comma separated list of procedures and modules +filter the language dump using a comma separated list of procedures and modules. fm2-file-offset-bits= Modula-2 Joined -override the default 64 bit definition of SYSTEM.COFF_T with the argument specified +override the default 64 bit definition of SYSTEM.COFF_T with the argument specified. fm2-g Modula-2 -generate extra nops to improve debugging, producing an instruction for every code related keyword +generate extra nops to improve debugging, producing an instruction for every code related keyword. fm2-lower-case Modula-2 -generate error messages which render keywords in lower case +generate error messages which render keywords in lower case. fm2-pathname= Modula-2 Joined -specify the module mangled prefix name for all modules in the following include paths +specify the module mangled prefix name for all modules in the following include paths. fm2-pathnameI Modula-2 Joined @@ -176,7 +176,7 @@ Modula-2 Joined fm2-pathname-root= Modula-2 Joined -add include paths for all the library names in -flibs= to this directory root +add include paths for all the library names in -flibs= to this directory root. fm2-pathname-rootI= Modula-2 Joined @@ -184,27 +184,27 @@ Modula-2 Joined fm2-plugin Modula-2 -insert plugin to identify runtime errors at compiletime +insert plugin to identify runtime errors at compiletime. fm2-prefix= Modula-2 Joined -specify the module mangled prefix name +specify the module mangled prefix name. fm2-statistics Modula-2 -display statistics about the amount of source lines compiled and symbols used +display statistics about the amount of source lines compiled and symbols used. fm2-strict-type Modula-2 -experimental flag to turn on the new strict type checker +experimental flag to turn on the new strict type checker. fm2-strict-type-reason Modula-2 -provides more detail why the types are incompatible +provides more detail why the types are incompatible. fm2-whole-program Modula-2 -compile all implementation modules and program module at once +compile all implementation modules and program module at once. fmem-report Modula-2 @@ -212,87 +212,87 @@ Modula-2 fmod= Modula-2 Joined -recognize the specified suffix as implementation and module filenames +recognize the specified suffix as implementation and module filenames. fnil Modula-2 -turns on runtime checking to detect accessing data through a NIL value pointer +turns on runtime checking to detect accessing data through a NIL value pointer. fpim Modula-2 -use PIM [234] dialect of Modula-2 +use PIM [234] dialect of Modula-2. fpim2 Modula-2 -use PIM 2 dialect of Modula-2 +use PIM 2 dialect of Modula-2. fpim3 Modula-2 -use PIM 3 dialect of Modula-2 +use PIM 3 dialect of Modula-2. fpim4 Modula-2 -use PIM 4 dialect of Modula-2 +use PIM 4 dialect of Modula-2. fpositive-mod-floor-div Modula-2 -force positive result from MOD and DIV result floor +force positive result from MOD and DIV result floor. fpthread Modula-2 -link against the pthread library (default on) +link against the pthread library (default on). fq Modula-2 -internal compiler debugging information, dump the list of quadruples +internal compiler debugging information, dump the list of quadruples. frange Modula-2 -turns on all range checking for numerical values +turns on all range checking for numerical values. freturn Modula-2 -turns on runtime checking for functions which finish without executing a RETURN statement +turns on runtime checking for functions which finish without executing a RETURN statement. fruntime-modules= Modula-2 Joined -specify the list of runtime modules and their initialization order +specify the list of runtime modules and their initialization order. fscaffold-dynamic Modula-2 -the modules initialization order is dynamically determined by M2RTS and application dependencies +the modules initialization order is dynamically determined by M2RTS and application dependencies. fscaffold-c Modula-2 -generate a C source scaffold for the current module being compiled +generate a C source scaffold for the current module being compiled. fscaffold-c++ Modula-2 -generate a C++ source scaffold for the current module being compiled +generate a C++ source scaffold for the current module being compiled. fscaffold-main Modula-2 -generate the main function +generate the main function. fscaffold-static Modula-2 -generate static scaffold initialization and finalization for every module inside main +generate static scaffold initialization and finalization for every module inside main. fshared Modula-2 -generate a shared library from the module +generate a shared library from the module. fsoft-check-all Modula-2 -turns on all software runtime checking (an abbreviation for -fnil -frange -findex -fwholediv -fcase -freturn -fwholevalue -ffloatvalue) +turns on all software runtime checking (an abbreviation for -fnil -frange -findex -fwholediv -fcase -freturn -fwholevalue -ffloatvalue). fsources Modula-2 -display the location of module source files as they are compiled +display the location of module source files as they are compiled. fswig Modula-2 -create a swig interface file for the module +create a swig interface file for the module. ftime-report Modula-2 @@ -304,7 +304,7 @@ optimize non var unbounded parameters by passing it by reference, providing it i fuse-list= Modula-2 Joined -orders the initialization/finalizations for scaffold-static or force linking of modules if scaffold-dynamic +orders the initialization/finalizations for scaffold-static or force linking of modules if scaffold-dynamic. fversion Modula-2 @@ -312,15 +312,15 @@ Modula-2 fwideset Modula-2 -link against the module M2WIDESET to perform the wideset operator, the negative version of this option will generate a warning if this module is required +link against the module M2WIDESET to perform the wideset operator, the negative version of this option will generate a warning if this module is required. fwholediv Modula-2 -turns on all division and modulus by zero checking for ordinal values +turns on all division and modulus by zero checking for ordinal values. fwholevalue Modula-2 -turns on runtime checking to check whether a whole number will exceed range +turns on runtime checking to check whether a whole number will exceed range. static-libgm2 Driver @@ -469,11 +469,11 @@ Modula-2 Alias(save-temps) save-temps Modula-2 -save temporary preprocessed files +save temporary preprocessed files. save-temps= Modula-2 Joined -save temporary preprocessed files +save temporary preprocessed files. traditional-cpp Modula-2 diff --git a/gcc/rust/lang.opt b/gcc/rust/lang.opt index 67b838b70ebb..270a57c04ea1 100644 --- a/gcc/rust/lang.opt +++ b/gcc/rust/lang.opt @@ -60,11 +60,11 @@ Warn for infinitely recursive calls. frust-crate= Rust Joined RejectNegative --frust-crate=<name> Set the crate name for the compilation +-frust-crate=<name> Set the crate name for the compilation. frust-extern= Rust RejectNegative Joined --frust-extern= Specify where an external library is located +-frust-extern= Specify where an external library is located. frust-debug Rust Var(flag_rust_debug) @@ -76,15 +76,15 @@ Rust Joined RejectNegative frust-incomplete-and-experimental-compiler-do-not-use Rust Var(flag_rust_experimental) -Enable experimental compilation of Rust files at your own risk +Enable experimental compilation of Rust files at your own risk. frust-max-recursion-depth= Rust RejectNegative Type(int) Var(rust_max_recursion_depth) Init(64) --frust-max-recursion-depth=<integer> +-frust-max-recursion-depth=<integer>. frust-crate-type= Rust Joined RejectNegative Enum(frust_crate_type) Var(flag_rust_crate_type) --frust-crate-type=[bin|lib|rlib|dylib|cdylib|staticlib|proc-macro] Crate type to emit +-frust-crate-type=[bin|lib|rlib|dylib|cdylib|staticlib|proc-macro] Crate type to emit. Enum Name(frust_crate_type) Type(int) UnknownError(unknown crate type: '%qs') @@ -112,7 +112,7 @@ Enum(frust_crate_type) String(proc-macro) Value(6) frust-mangling= Rust Joined RejectNegative Enum(frust_mangling) Var(flag_rust_mangling) --frust-mangling=[legacy|v0] Version to use for name mangling +-frust-mangling=[legacy|v0] Version to use for name mangling. Enum Name(frust_mangling) Type(int) UnknownError(unknown rust mangling option %qs) @@ -125,11 +125,11 @@ Enum(frust_mangling) String(v0) Value(1) frust-cfg= Rust Joined RejectNegative --frust-cfg=<name> Set a config expansion option +-frust-cfg=<name> Set a config expansion option. frust-edition= Rust Joined RejectNegative Enum(frust_edition) Var(flag_rust_edition) --frust-edition=[2015|2018|2021] Edition to use when compiling rust code +-frust-edition=[2015|2018|2021] Edition to use when compiling rust code. Enum Name(frust_edition) Type(int) UnknownError(unknown rust edition %qs) @@ -145,11 +145,11 @@ Enum(frust_edition) String(2021) Value(2) frust-embed-metadata Rust Var(flag_rust_embed_metadata) -Enable embedding metadata directly into object files +Enable embedding metadata directly into object files. frust-metadata-output= Rust Joined RejectNegative --frust-metadata-output=<path.rox> Path to output crate metadata +-frust-metadata-output=<path.rox> Path to output crate metadata. o Rust Joined Separate @@ -157,7 +157,7 @@ Rust Joined Separate frust-compile-until= Rust Joined RejectNegative Enum(frust_compile_until) Var(flag_rust_compile_until) --frust-compile-until=[ast|attributecheck|expansion|astvalidation|featuregating|nameresolution|lowering|typecheck|privacy|unsafety|const|borrowcheck|compilation|end] The pipeline will run up until this stage when compiling Rust code +-frust-compile-until=[ast|attributecheck|expansion|astvalidation|featuregating|nameresolution|lowering|typecheck|privacy|unsafety|const|borrowcheck|compilation|end] The pipeline will run up until this stage when compiling Rust code. Enum Name(frust_compile_until) Type(int) UnknownError(unknown rust compile-until %qs) @@ -206,7 +206,7 @@ Enum(frust_compile_until) String(end) Value(13) frust-name-resolution-2.0 Rust Var(flag_name_resolution_2_0) Init(1) -Use the temporary and experimental name resolution pipeline instead of the stable one +Use the temporary and experimental name resolution pipeline instead of the stable one. frust-borrowcheck Rust Var(flag_borrowcheck) @@ -214,7 +214,7 @@ Use the WIP borrow checker. frust-panic= Rust Joined RejectNegative Enum(frust_panic) Var(flag_rust_panic) --frust-edition=[unwind|abort] Panic strategy to compile crate with +-frust-edition=[unwind|abort] Panic strategy to compile crate with. Enum Name(frust_panic) Type(int) UnknownError(unknown panic strategy %qs) @@ -227,11 +227,11 @@ Enum(frust_panic) String(abort) Value(1) frust-overflow-checks Rust Var(flag_overflow_checks) Init(1) -Enable the overflow checks in code generation +Enable the overflow checks in code generation. frust-assume-builtin-offset-of Rust Var(flag_assume_builtin_offset_of) -Define a built-in offset_of macro in the compiler and assume it is present +Define a built-in offset_of macro in the compiler and assume it is present. frust-unused-check-2.0 Rust Var(flag_unused_check_2_0) diff --git a/gcc/testsuite/gcc.misc-tests/help.exp b/gcc/testsuite/gcc.misc-tests/help.exp index 8b2b435aaf92..47bff2c07655 100644 --- a/gcc/testsuite/gcc.misc-tests/help.exp +++ b/gcc/testsuite/gcc.misc-tests/help.exp @@ -144,7 +144,8 @@ check_for_options c "--help=joined,undocumented" "" "" "" # find the source a failure. foreach cls { "ada" "c" "c++" "d" "fortran" "go" \ - "common" "optimizers" "param" "target" "warnings" } { + "objc" "objc++" "rust" "modula-2" "cobol" "algol68" \ + "common" "optimizers" "param" "target" "warnings" } { check_for_options c "--help=$cls" "" "^ +-.*\[^:.\]$" "" }
