-Werror: fix for rules useless in parser after conflicts.

* NEWS (2.4.3): Document fix.
* src/complain.c (error_message): Extend to handle incomplete
error messages so warn and warn_at can be used in more cases.
* src/gram.c (grammar_rules_useless_report): Use warn_at so that
-Werror is always obeyed.
* src/reduce.c (reduce_print): Use warn so that the "warnings
being treated as errors" message is printed consistently before
the first warning message.  This makes testing easier.
* tests/local.at (AT_BISON_WERROR_MSG): New macro.
(AT_BISON_CHECK_NO_XML): Extend to check -Werror and
--warnings=error when warnings appear in bison's stderr.
(cherry picked from commit 954474bfa1)
This commit is contained in:
Joel E. Denny
2010-08-01 18:51:46 -04:00
parent 20be2f9227
commit 2bfcac9a2b
6 changed files with 106 additions and 24 deletions

View File

@@ -383,23 +383,15 @@ static void
reduce_print (void)
{
if (nuseless_nonterminals > 0)
{
fprintf (stderr, "%s: %s: ", grammar_file, _("warning"));
fprintf (stderr, ngettext ("%d nonterminal useless in grammar",
"%d nonterminals useless in grammar",
nuseless_nonterminals),
nuseless_nonterminals);
fprintf (stderr, "\n");
}
warn (ngettext ("%d nonterminal useless in grammar",
"%d nonterminals useless in grammar",
nuseless_nonterminals),
nuseless_nonterminals);
if (nuseless_productions > 0)
{
fprintf (stderr, "%s: %s: ", grammar_file, _("warning"));
fprintf (stderr, ngettext ("%d rule useless in grammar",
"%d rules useless in grammar",
nuseless_productions),
nuseless_productions);
fprintf (stderr, "\n");
}
warn (ngettext ("%d rule useless in grammar",
"%d rules useless in grammar",
nuseless_productions),
nuseless_productions);
}
void