diagnostics: Add new option -fdiagnostics-plain-output
authorLewis Hyatt <lhyatt@gmail.com>
Thu, 13 Aug 2020 17:05:46 +0000 (13:05 -0400)
committerLewis Hyatt <lhyatt@gmail.com>
Fri, 14 Aug 2020 13:29:19 +0000 (09:29 -0400)
commit129a1319c0ab73f4bfc5598dffedb06378b00fc0
tree968c9d5710c2a4431c5c98d8e15ca9474b7ca9be
parent22dc89f8073cd0126efa72aa3ab88e80c78d45e3
diagnostics: Add new option -fdiagnostics-plain-output

Adds the new option -fdiagnostics-plain-output, which is an alias for
several others:

    -fno-diagnostics-show-caret
    -fno-diagnostics-show-line-numbers
    -fdiagnostics-color=never
    -fdiagnostics-urls=never

The idea is that in the future, if the default behavior of diagnostics is
changed to add some fancy feature or other, then the
-fdiagnostics-plain-output option will also be changed accordingly so that
the old behavior is preserved in the presence of this option. This allows
us to use -fdiagnostics-plain-output in in the testsuite, such that the
testsuite (specifically the setting of TEST_ALWAYS_FLAGS in prune.exp)
does not need to be touched whenever diagnostics get a new look. This also
removes the need to add workarounds to compat.exp for every new option
that may be needed in a newer version of the compiler, but is not
supported in older versions.

gcc/ChangeLog:

* common.opt: Add new option -fdiagnostics-plain-output.
* doc/invoke.texi: Document it.
* opts-common.c (decode_cmdline_options_to_array): Implement it.
(decode_cmdline_option): Add missing const qualifier to argv.

libstdc++-v3/ChangeLog:

* testsuite/lib/libstdc++.exp: Use the new option
-fdiagnostics-plain-output.

gcc/testsuite/ChangeLog:

* lib/prune.exp: Change TEST_ALWAYS_FLAGS to use -fdiagnostics-plain-output.
* lib/c-compat.exp: Adapt to the prune.exp change.
gcc/common.opt
gcc/doc/invoke.texi
gcc/opts-common.c
gcc/testsuite/lib/c-compat.exp
gcc/testsuite/lib/prune.exp
libstdc++-v3/testsuite/lib/libstdc++.exp