]> git.saurik.com Git - bison.git/commit
diagnostics: "-Werror -Wno-error=foo" must not emit errors
authorAkim Demaille <akim@lrde.epita.fr>
Wed, 16 Oct 2013 08:55:28 +0000 (10:55 +0200)
committerAkim Demaille <akim@lrde.epita.fr>
Wed, 16 Oct 2013 12:56:09 +0000 (14:56 +0200)
commite4678430c2506c577c05e92437b187fe9daf0b7f
treed3149da011b30215dee8a9f24d29158253e73ff1
parent2b7fe38c36cdf69428039c4bafbf47be15b807fa
diagnostics: "-Werror -Wno-error=foo" must not emit errors

Currently "-Werror -Wno-error=foo" still turns "foo" warnings into errors.
Reported by Alexandre Duret-Lutz.
See http://lists.gnu.org/archive/html/bug-bison/2013-09/msg00015.html.

* src/complain.c (errority, errority_flag): New.
(complain_init): Initialize the latter.
(warning_argmatch): Extract the loop iterating on the flag's bits.
Set and unset errority_flag here.
(warnings_argmatch): -Wno-error is not the same as -Wno-error=everything:
we must remember if category foo was explicitly turned in an error/warning
via -W(no-)error=foo.
(warning_severity): Use errority_flag.

* tests/input.at (Symbols): Just check --yacc, not -Wyacc, that's the
job of tests on -W.
(-Werror is not affected by -Wnone and -Wall): Rename as...
(-Werror combinations): this.
Tests more combinations of -W, -W(no-)error, and -W(no-)error=foo.
* tests/local.at (AT_BISON_CHECK_WARNINGS): Don't expect -Werror
to turn runs that issue warnings into runs with errors, as the
warnings might be enforced as warnings by -Wno-error=foo, in which
case -Werror does not change anything.

* doc/bison.texi (Bison Options): Try to be clearer about how
-W(no-)error and -W(no-)error=foo interact.
NEWS
doc/bison.texi
src/complain.c
tests/input.at
tests/local.at