While fixing up the ChangeLogs for the commit (as requested below) I noticed that a number of new options have been added with help text with no period at the end. The attached patch fixes those up and adds a test to help catch these problems before they creep in again.
Martin https://gcc.gnu.org/ml/gcc-patches/2015-10/msg02224.html
gcc/ChangeLog: 2015-10-22 Martin Sebor <mse...@redhat.com> PR driver/68043 * config/i386/i386.opt: Add missing periods to the ends of sentences. * config/msp430/msp430.opt: Same. gcc/testsuite/ChangeLog: 2015-10-22 Martin Sebor <mse...@redhat.com> PR driver/68043 * gcc.misc-tests/help.exp: Verify that option descriptions end in periods. * lib/options.exp (check_for_options): Use the regexp --line option. Print unexpected match on failure. Index: gcc/config/i386/i386.opt =================================================================== --- gcc/config/i386/i386.opt (revision 229177) +++ gcc/config/i386/i386.opt (working copy) @@ -701,15 +701,15 @@ mfma4 Target Report Mask(ISA_FMA4) Var(ix86_isa_flags) Save -Support FMA4 built-in functions and code generation +Support FMA4 built-in functions and code generation. mxop Target Report Mask(ISA_XOP) Var(ix86_isa_flags) Save -Support XOP built-in functions and code generation +Support XOP built-in functions and code generation. mlwp Target Report Mask(ISA_LWP) Var(ix86_isa_flags) Save -Support LWP built-in functions and code generation +Support LWP built-in functions and code generation. mabm Target Report Mask(ISA_ABM) Var(ix86_isa_flags) Save Index: gcc/config/msp430/msp430.opt =================================================================== --- gcc/config/msp430/msp430.opt (revision 229177) +++ gcc/config/msp430/msp430.opt (working copy) @@ -83,8 +83,8 @@ msilicon-errata= Target Joined RejectNegative Report ToLower -Passes on a request to the assembler to enable fixes for various silicon errata +Passes on a request to the assembler to enable fixes for various silicon errata. msilicon-errata-warn= Target Joined RejectNegative Report ToLower -Passes on a request to the assembler to warn about various silicon errata +Passes on a request to the assembler to warn about various silicon errata. Index: gcc/testsuite/gcc.misc-tests/help.exp =================================================================== --- gcc/testsuite/gcc.misc-tests/help.exp (revision 229177) +++ gcc/testsuite/gcc.misc-tests/help.exp (working copy) @@ -81,24 +81,40 @@ # Specify patterns (arguments 3 and later) that match option names # at the beginning of the line and not when they are referenced by # some other options later on. -# The (?w) Tcl embedded option tells the Tcl regexp parser to treat -# the '^' character as an anchor. check_for_options c "--help=joined" \ - "(?w)^ *-Wformat=" "(?w)^ *-fstrict-prototype" "" + "^ +-Wformat=" "^ +-fstrict-prototype" "" check_for_options c "--help=separate" \ - "(?w)^ *-MF" "(?w)^ *-fstrict-prototype" "" + "^ +-MF" "^ +-fstrict-prototype" "" check_for_options c "--help=warnings,joined" \ - "(?w)^ *-Wformat=" "(?w)^ *-Wtrigraphs" "" + "^ +-Wformat=" "^ +-Wtrigraphs" "" check_for_options c "--help=warnings,^joined" \ - "(?w)^ *-Wtrigraphs" "(?w)^ *-Wformat=" "" + "^ +-Wtrigraphs" "^ +-Wformat=" "" check_for_options c "--help=joined,separate" \ - "(?w)^ *-I" "" "" + "^ +-I" "" "" check_for_options c "--help=^joined,separate" \ - "(?w)^ *--param " "" "" + "^ +--param " "" "" check_for_options c "--help=joined,^separate" \ - "(?w)^ *--help=" "" "" + "^ +--help=" "" "" check_for_options c "--help=joined,undocumented" "" "" "" +# Check to make sure the description for every option is a complete +# sentence ending in a period. This matters not just for consistency +# but also because other sentences may be appended to it by the help +# subsystem. Do this one help class at a time to make it easier to +# find the source a failure. + +# GCC breaks up --help output into lines at most $COLUMNS characters +# wide (or 80 when COLUMNS is not defined), set the COLUMNS environment +# variable to a value large enough to prevent this. +global env +set env(COLUMNS) 1024 + +foreach cls { "ada" "c" "c++" "fortran" "go" \ + "optimizers" "param" "target" "warnings" } { + + check_for_options c "--help=$cls" "" "^ +-.*\[^:.\]$" "" +} + # Listing only excludes gives empty results. check_for_options c "--help=^joined,^separate" "" "" "" Index: gcc/testsuite/lib/options.exp =================================================================== --- gcc/testsuite/lib/options.exp (revision 229177) +++ gcc/testsuite/lib/options.exp (working copy) @@ -50,7 +50,7 @@ # Verify that COMPILER_PATTERRNS appear in gcc output. foreach pattern [split $compiler_patterns "\n"] { if {$pattern != ""} { - if {[regexp -- "$pattern" $gcc_output]} { + if {[regexp -line -- "$pattern" $gcc_output]} { pass "$test $pattern" } else { if {$expected_failure != ""} { @@ -65,13 +65,15 @@ # Verify that COMPILER_NON_PATTERRNS do not appear in gcc output. foreach pattern [split $compiler_non_patterns "\n"] { if {$pattern != ""} { - if {![regexp -- "$pattern" $gcc_output]} { + if {![regexp -line -- "$pattern" $gcc_output result]} { pass "$test $pattern" } else { if {$expected_failure != ""} { xfail "$test \"$pattern\" absent from output" } else { - fail "$test \"$pattern\" absent from output" + # Print the unexpected line that caused the failure + # to make it easier to find in the multiline output. + fail "$test \"$pattern\" absent from output: \"$result\"" } } }