warnings: display warnings categories

* src/complain.c (error_message): Call 'warnings_print_categories'.
* src/gram.c (grammar_rules_useless_report): Display itself warning
category.
* tests/actions.at, tests/conflicts.at, tests/existing.at,
tests/input.at, tests/named-refs.at, tests/output.at, tests/reduce.at,
tests/regression.at, tests/skeletons.at: Adjust.
* NEWS: Document this.

Signed-off-by: Akim Demaille <akim@lrde.epita.fr>
This commit is contained in:
Victor Santet
2012-06-29 16:23:42 +02:00
committed by Akim Demaille
parent b640317060
commit 73370a9daa
12 changed files with 216 additions and 207 deletions

14
NEWS
View File

@@ -2,7 +2,15 @@ GNU Bison NEWS
* Noteworthy changes in release ?.? (????-??-??) [?] * Noteworthy changes in release ?.? (????-??-??) [?]
** Warnings about useless semantic types ** Warnings
*** Warning categories are now diplayed in warnings
For instance:
foo.y:4.6: warning: type clash on default action: <foo> != <bar> [-Wother]
*** Useless semantic types
Bison now warns about useless (uninhabited) semantic types. Since Bison now warns about useless (uninhabited) semantic types. Since
semantic types are not declared to Bison (they are defined in the opaque semantic types are not declared to Bison (they are defined in the opaque
@@ -19,7 +27,7 @@ GNU Bison NEWS
3.28-34: warning: type <type3> is used, but is not associated to any symbol 3.28-34: warning: type <type3> is used, but is not associated to any symbol
4.28-34: warning: type <type4> is used, but is not associated to any symbol 4.28-34: warning: type <type4> is used, but is not associated to any symbol
** Warnings about undeclared symbols *** Undeclared symbols
Bison used to raise an error for %printer and %destructor directives for Bison used to raise an error for %printer and %destructor directives for
undefined symbols. undefined symbols.
@@ -31,7 +39,7 @@ GNU Bison NEWS
This is now only a warning. This is now only a warning.
** Warnings about useless destructors or printers *** Useless destructors or printers
Bison now warns about useless destructors or printers. In the following Bison now warns about useless destructors or printers. In the following
example, the printer for <type1>, and the destructor for <type2> are example, the printer for <type1>, and the destructor for <type2> are

View File

@@ -100,6 +100,7 @@ error_message (const location *loc, warnings flags, const char *prefix,
fprintf (stderr, "%s: ", prefix); fprintf (stderr, "%s: ", prefix);
vfprintf (stderr, message, args); vfprintf (stderr, message, args);
warnings_print_categories (flags);
{ {
size_t l = strlen (message); size_t l = strlen (message);
if (l < 2 || message[l-2] != ':' || message[l-1] != ' ') if (l < 2 || message[l-2] != ':' || message[l-1] != ' ')

View File

@@ -312,10 +312,10 @@ grammar_rules_useless_report (const char *message)
for (r = 0; r < nrules ; ++r) for (r = 0; r < nrules ; ++r)
if (!rules[r].useful) if (!rules[r].useful)
{ {
complain_at (rules[r].location, w, "%s: ", message); complain_at (rules[r].location, w | silent, "%s: ", message);
rule_print (&rules[r], stderr); rule_print (&rules[r], stderr);
warnings_print_categories (w);
fprintf (stderr, "\n"); fprintf (stderr, "\n");
fflush (stderr);
} }
} }
} }

View File

@@ -1132,8 +1132,8 @@ main (void)
AT_BISON_OPTION_POPDEFS AT_BISON_OPTION_POPDEFS
AT_BISON_CHECK([-o input.c input.y], 0,, AT_BISON_CHECK([-o input.c input.y], 0,,
[[input.y:33.3-23: warning: unset value: $$ [[input.y:33.3-23: warning: unset value: $$ [-Wother]
input.y:30.3-35.37: warning: unused value: $3 input.y:30.3-35.37: warning: unused value: $3 [-Wother]
]]) ]])
AT_COMPILE([input]) AT_COMPILE([input])
@@ -1292,42 +1292,42 @@ string;"}
AT_BISON_OPTION_POPDEFS AT_BISON_OPTION_POPDEFS
AT_BISON_CHECK([[-o input.c input.y]], [0], [], AT_BISON_CHECK([[-o input.c input.y]], [0], [],
[[input.y:8.48: warning: a ';' might be needed at the end of action code [[input.y:8.48: warning: a ';' might be needed at the end of action code [-Wother]
input.y:8.48: warning: future versions of Bison will not add the ';' input.y:8.48: warning: future versions of Bison will not add the ';' [-Wother]
input.y:9.48: warning: a ';' might be needed at the end of action code input.y:9.48: warning: a ';' might be needed at the end of action code [-Wother]
input.y:9.48: warning: future versions of Bison will not add the ';' input.y:9.48: warning: future versions of Bison will not add the ';' [-Wother]
input.y:10.48: warning: a ';' might be needed at the end of action code input.y:10.48: warning: a ';' might be needed at the end of action code [-Wother]
input.y:10.48: warning: future versions of Bison will not add the ';' input.y:10.48: warning: future versions of Bison will not add the ';' [-Wother]
input.y:11.48: warning: a ';' might be needed at the end of action code input.y:11.48: warning: a ';' might be needed at the end of action code [-Wother]
input.y:11.48: warning: future versions of Bison will not add the ';' input.y:11.48: warning: future versions of Bison will not add the ';' [-Wother]
input.y:12.48: warning: a ';' might be needed at the end of action code input.y:12.48: warning: a ';' might be needed at the end of action code [-Wother]
input.y:12.48: warning: future versions of Bison will not add the ';' input.y:12.48: warning: future versions of Bison will not add the ';' [-Wother]
input.y:13.48: warning: a ';' might be needed at the end of action code input.y:13.48: warning: a ';' might be needed at the end of action code [-Wother]
input.y:13.48: warning: future versions of Bison will not add the ';' input.y:13.48: warning: future versions of Bison will not add the ';' [-Wother]
input.y:20.1: warning: a ';' might be needed at the end of action code input.y:20.1: warning: a ';' might be needed at the end of action code [-Wother]
input.y:20.1: warning: future versions of Bison will not add the ';' input.y:20.1: warning: future versions of Bison will not add the ';' [-Wother]
input.y:21.1: warning: a ';' might be needed at the end of action code input.y:21.1: warning: a ';' might be needed at the end of action code [-Wother]
input.y:21.1: warning: future versions of Bison will not add the ';' input.y:21.1: warning: future versions of Bison will not add the ';' [-Wother]
input.y:22.1: warning: a ';' might be needed at the end of action code input.y:22.1: warning: a ';' might be needed at the end of action code [-Wother]
input.y:22.1: warning: future versions of Bison will not add the ';' input.y:22.1: warning: future versions of Bison will not add the ';' [-Wother]
input.y:23.1: warning: a ';' might be needed at the end of action code input.y:23.1: warning: a ';' might be needed at the end of action code [-Wother]
input.y:23.1: warning: future versions of Bison will not add the ';' input.y:23.1: warning: future versions of Bison will not add the ';' [-Wother]
input.y:24.1: warning: a ';' might be needed at the end of action code input.y:24.1: warning: a ';' might be needed at the end of action code [-Wother]
input.y:24.1: warning: future versions of Bison will not add the ';' input.y:24.1: warning: future versions of Bison will not add the ';' [-Wother]
input.y:25.1: warning: a ';' might be needed at the end of action code input.y:25.1: warning: a ';' might be needed at the end of action code [-Wother]
input.y:25.1: warning: future versions of Bison will not add the ';' input.y:25.1: warning: future versions of Bison will not add the ';' [-Wother]
input.y:31.1: warning: a ';' might be needed at the end of action code input.y:31.1: warning: a ';' might be needed at the end of action code [-Wother]
input.y:31.1: warning: future versions of Bison will not add the ';' input.y:31.1: warning: future versions of Bison will not add the ';' [-Wother]
input.y:32.1: warning: a ';' might be needed at the end of action code input.y:32.1: warning: a ';' might be needed at the end of action code [-Wother]
input.y:32.1: warning: future versions of Bison will not add the ';' input.y:32.1: warning: future versions of Bison will not add the ';' [-Wother]
input.y:33.1: warning: a ';' might be needed at the end of action code input.y:33.1: warning: a ';' might be needed at the end of action code [-Wother]
input.y:33.1: warning: future versions of Bison will not add the ';' input.y:33.1: warning: future versions of Bison will not add the ';' [-Wother]
input.y:34.1: warning: a ';' might be needed at the end of action code input.y:34.1: warning: a ';' might be needed at the end of action code [-Wother]
input.y:34.1: warning: future versions of Bison will not add the ';' input.y:34.1: warning: future versions of Bison will not add the ';' [-Wother]
input.y:35.1: warning: a ';' might be needed at the end of action code input.y:35.1: warning: a ';' might be needed at the end of action code [-Wother]
input.y:35.1: warning: future versions of Bison will not add the ';' input.y:35.1: warning: future versions of Bison will not add the ';' [-Wother]
input.y:36.1: warning: a ';' might be needed at the end of action code input.y:36.1: warning: a ';' might be needed at the end of action code [-Wother]
input.y:36.1: warning: future versions of Bison will not add the ';' input.y:36.1: warning: future versions of Bison will not add the ';' [-Wother]
]]) ]])
AT_MATCHES_CHECK([input.c], [[/\* TEST:N:2 \*/ \}$]], [[3]]) AT_MATCHES_CHECK([input.c], [[/\* TEST:N:2 \*/ \}$]], [[3]])

View File

@@ -37,7 +37,7 @@ e: 'e' | /* Nothing. */;
]]) ]])
AT_BISON_CHECK([-o input.c input.y], 0, [], AT_BISON_CHECK([-o input.c input.y], 0, [],
[[input.y:4.9: warning: rule useless in parser due to conflicts: e: /* empty */ [[input.y:4.9: warning: rule useless in parser due to conflicts: e: /* empty */ [-Wother]
]]) ]])
AT_CLEANUP AT_CLEANUP
@@ -785,7 +785,7 @@ cond:
AT_BISON_CHECK([-o input.c input.y], 0, [], AT_BISON_CHECK([-o input.c input.y], 0, [],
[[input.y: conflicts: 1 shift/reduce [[input.y: conflicts: 1 shift/reduce
input.y:12.3-18: warning: rule useless in parser due to conflicts: cond: cond "then" cond input.y:12.3-18: warning: rule useless in parser due to conflicts: cond: cond "then" cond [-Wother]
]]) ]])
AT_CLEANUP AT_CLEANUP
@@ -829,7 +829,7 @@ id : '0';
AT_BISON_CHECK([-o input.c --report=all input.y], 0, [], AT_BISON_CHECK([-o input.c --report=all input.y], 0, [],
[[input.y: conflicts: 1 reduce/reduce [[input.y: conflicts: 1 reduce/reduce
input.y:4.6-8: warning: rule useless in parser due to conflicts: id: '0' input.y:4.6-8: warning: rule useless in parser due to conflicts: id: '0' [-Wother]
]]) ]])
# Check the contents of the report. # Check the contents of the report.
@@ -1149,13 +1149,13 @@ reported_conflicts:
AT_BISON_CHECK([[--report=all input.y]], 0, [], AT_BISON_CHECK([[--report=all input.y]], 0, [],
[[input.y: conflicts: 1 shift/reduce, 1 reduce/reduce [[input.y: conflicts: 1 shift/reduce, 1 reduce/reduce
input.y:12.5-20: warning: rule useless in parser due to conflicts: resolved_conflict: 'a' unreachable1 input.y:12.5-20: warning: rule useless in parser due to conflicts: resolved_conflict: 'a' unreachable1 [-Wother]
input.y:20.5-20: warning: rule useless in parser due to conflicts: unreachable1: 'a' unreachable2 input.y:20.5-20: warning: rule useless in parser due to conflicts: unreachable1: 'a' unreachable2 [-Wother]
input.y:21.4: warning: rule useless in parser due to conflicts: unreachable1: /* empty */ input.y:21.4: warning: rule useless in parser due to conflicts: unreachable1: /* empty */ [-Wother]
input.y:25.13: warning: rule useless in parser due to conflicts: unreachable2: /* empty */ input.y:25.13: warning: rule useless in parser due to conflicts: unreachable2: /* empty */ [-Wother]
input.y:25.16: warning: rule useless in parser due to conflicts: unreachable2: /* empty */ input.y:25.16: warning: rule useless in parser due to conflicts: unreachable2: /* empty */ [-Wother]
input.y:31.5-7: warning: rule useless in parser due to conflicts: reported_conflicts: 'a' input.y:31.5-7: warning: rule useless in parser due to conflicts: reported_conflicts: 'a' [-Wother]
input.y:32.4: warning: rule useless in parser due to conflicts: reported_conflicts: /* empty */ input.y:32.4: warning: rule useless in parser due to conflicts: reported_conflicts: /* empty */ [-Wother]
]]) ]])
AT_CHECK([[cat input.output]], 0, AT_CHECK([[cat input.output]], 0,
@@ -1301,10 +1301,10 @@ AT_CHECK([[cat input.y >> input-keep.y]])
AT_BISON_CHECK([[input-keep.y]], 0, [], AT_BISON_CHECK([[input-keep.y]], 0, [],
[[input-keep.y: conflicts: 2 shift/reduce, 2 reduce/reduce [[input-keep.y: conflicts: 2 shift/reduce, 2 reduce/reduce
input-keep.y:22.4: warning: rule useless in parser due to conflicts: unreachable1: /* empty */ input-keep.y:22.4: warning: rule useless in parser due to conflicts: unreachable1: /* empty */ [-Wother]
input-keep.y:26.16: warning: rule useless in parser due to conflicts: unreachable2: /* empty */ input-keep.y:26.16: warning: rule useless in parser due to conflicts: unreachable2: /* empty */ [-Wother]
input-keep.y:32.5-7: warning: rule useless in parser due to conflicts: reported_conflicts: 'a' input-keep.y:32.5-7: warning: rule useless in parser due to conflicts: reported_conflicts: 'a' [-Wother]
input-keep.y:33.4: warning: rule useless in parser due to conflicts: reported_conflicts: /* empty */ input-keep.y:33.4: warning: rule useless in parser due to conflicts: reported_conflicts: /* empty */ [-Wother]
]]) ]])
AT_CLEANUP AT_CLEANUP

View File

@@ -1948,7 +1948,7 @@ dnl without being followed by "of".)
[[VARIABLE, '=', LABEL, LEFT, DOT_X]], [[VARIABLE, '=', LABEL, LEFT, DOT_X]],
dnl BISON-STDERR dnl BISON-STDERR
[[input.y:470.11-48: warning: rule useless in parser due to conflicts: path: ORDINAL LAST object_type relative_path [[input.y:470.11-48: warning: rule useless in parser due to conflicts: path: ORDINAL LAST object_type relative_path [-Wother]
]], ]],
dnl LAST-STATE dnl LAST-STATE

View File

@@ -60,9 +60,9 @@ exp: foo { $$; } foo { $2; } foo
AT_BISON_CHECK([input.y], [1], [], AT_BISON_CHECK([input.y], [1], [],
[[input.y:5.12-13: $$ for the midrule at $2 of 'exp' has no declared type [[input.y:5.12-13: $$ for the midrule at $2 of 'exp' has no declared type
input.y:5.24-25: $2 of 'exp' has no declared type input.y:5.24-25: $2 of 'exp' has no declared type
input.y:5.6-32: warning: type clash on default action: <bar> != <> input.y:5.6-32: warning: type clash on default action: <bar> != <> [-Wother]
input.y:6.6-8: warning: type clash on default action: <bar> != <> input.y:6.6-8: warning: type clash on default action: <bar> != <> [-Wother]
input.y:7.5: warning: empty rule for typed nonterminal, and no action input.y:7.5: warning: empty rule for typed nonterminal, and no action [-Wother]
]]) ]])
AT_CLEANUP AT_CLEANUP
@@ -113,39 +113,39 @@ _AT_UNUSED_VALUES_DECLARATIONS])
) )
AT_BISON_CHECK(m4_ifval($2, [ --warnings=midrule-values ])[ input.y], [0], [], AT_BISON_CHECK(m4_ifval($2, [ --warnings=midrule-values ])[ input.y], [0], [],
[[input.y:11.10-32: warning: unset value: $]$[ [[input.y:11.10-32: warning: unset value: $]$[ [-Wother]
input.y:11.10-32: warning: unused value: $]1[ input.y:11.10-32: warning: unused value: $]1[ [-Wother]
input.y:11.10-32: warning: unused value: $]3[ input.y:11.10-32: warning: unused value: $]3[ [-Wother]
input.y:11.10-32: warning: unused value: $]5[ input.y:11.10-32: warning: unused value: $]5[ [-Wother]
input.y:12.9: warning: empty rule for typed nonterminal, and no action input.y:12.9: warning: empty rule for typed nonterminal, and no action [-Wother]
]]m4_ifval($2, [[[input.y:13.14-20: warning: unset value: $$ ]]m4_ifval($2, [[[input.y:13.14-20: warning: unset value: $$ [-Wmidrule-values]
input.y:13.26-41: warning: unset value: $$ input.y:13.26-41: warning: unset value: $$ [-Wmidrule-values]
]]])[[input.y:13.10-62: warning: unset value: $]$[ ]]])[[input.y:13.10-62: warning: unset value: $]$[ [-Wother]
input.y:13.10-62: warning: unused value: $]3[ input.y:13.10-62: warning: unused value: $]3[ [-Wother]
input.y:13.10-62: warning: unused value: $]5[ input.y:13.10-62: warning: unused value: $]5[ [-Wother]
]]m4_ifval($2, [[[input.y:14.14-16: warning: unset value: $$ ]]m4_ifval($2, [[[input.y:14.14-16: warning: unset value: $$ [-Wmidrule-values]
]]])[[input.y:14.10-49: warning: unset value: $]$[ ]]])[[input.y:14.10-49: warning: unset value: $]$[ [-Wother]
input.y:14.10-49: warning: unused value: $]3[ input.y:14.10-49: warning: unused value: $]3[ [-Wother]
input.y:14.10-49: warning: unused value: $]5[ input.y:14.10-49: warning: unused value: $]5[ [-Wother]
input.y:15.10-37: warning: unset value: $]$[ input.y:15.10-37: warning: unset value: $]$[ [-Wother]
input.y:15.10-37: warning: unused value: $]3[ input.y:15.10-37: warning: unused value: $]3[ [-Wother]
input.y:15.10-37: warning: unused value: $]5[ input.y:15.10-37: warning: unused value: $]5[ [-Wother]
input.y:17.10-58: warning: unset value: $]$[ input.y:17.10-58: warning: unset value: $]$[ [-Wother]
input.y:17.10-58: warning: unused value: $]1[ input.y:17.10-58: warning: unused value: $]1[ [-Wother]
]]m4_ifval($2, [[[input.y:17.10-58: warning: unused value: $]2[ ]]m4_ifval($2, [[[input.y:17.10-58: warning: unused value: $]2[ [-Wmidrule-values]
]]])[[input.y:17.10-58: warning: unused value: $]3[ ]]])[[input.y:17.10-58: warning: unused value: $]3[ [-Wother]
]]m4_ifval($2, [[[input.y:17.10-58: warning: unused value: $]4[ ]]m4_ifval($2, [[[input.y:17.10-58: warning: unused value: $]4[ [-Wmidrule-values]
]]])[[input.y:17.10-58: warning: unused value: $]5[ ]]])[[input.y:17.10-58: warning: unused value: $]5[ [-Wother]
input.y:18.10-72: warning: unset value: $]$[ input.y:18.10-72: warning: unset value: $]$[ [-Wother]
input.y:18.10-72: warning: unused value: $]1[ input.y:18.10-72: warning: unused value: $]1[ [-Wother]
input.y:18.10-72: warning: unused value: $]3[ input.y:18.10-72: warning: unused value: $]3[ [-Wother]
]]m4_ifval($2, [[[input.y:18.10-72: warning: unused value: $]4[ ]]m4_ifval($2, [[[input.y:18.10-72: warning: unused value: $]4[ [-Wmidrule-values]
]]])[[input.y:18.10-72: warning: unused value: $]5[ ]]])[[input.y:18.10-72: warning: unused value: $]5[ [-Wother]
]]m4_ifval($2, [[[input.y:20.10-55: warning: unused value: $]3[ ]]m4_ifval($2, [[[input.y:20.10-55: warning: unused value: $]3[ [-Wmidrule-values]
]]])[[input.y:21.10-68: warning: unset value: $]$[ ]]])[[input.y:21.10-68: warning: unset value: $]$[ [-Wother]
input.y:21.10-68: warning: unused value: $]1[ input.y:21.10-68: warning: unused value: $]1[ [-Wother]
input.y:21.10-68: warning: unused value: $]2[ input.y:21.10-68: warning: unused value: $]2[ [-Wother]
]]m4_ifval($2, [[[input.y:21.10-68: warning: unused value: $]4[ ]]m4_ifval($2, [[[input.y:21.10-68: warning: unused value: $]4[ [-Wmidrule-values]
]]]))]) ]]]))])
@@ -287,8 +287,8 @@ exp: bar;
AT_BISON_CHECK([input.y], [1], [], AT_BISON_CHECK([input.y], [1], [],
[[input.y:2.16-18: symbol bar is used, but is not defined as a token and has no rules [[input.y:2.16-18: symbol bar is used, but is not defined as a token and has no rules
input.y:1.17-19: warning: symbol baz is used, but is not defined as a token and has no rules input.y:1.17-19: warning: symbol baz is used, but is not defined as a token and has no rules [-Wother]
input.y:1.13-15: warning: symbol foo is used, but is not defined as a token and has no rules input.y:1.13-15: warning: symbol foo is used, but is not defined as a token and has no rules [-Wother]
]]) ]])
AT_CLEANUP AT_CLEANUP
@@ -316,8 +316,8 @@ tag2: "a" { $$; }
]]) ]])
AT_BISON_CHECK([input.y], [0], [], AT_BISON_CHECK([input.y], [0], [],
[[input.y:4.22-28: warning: type <type3> is used, but is not associated to any symbol [[input.y:4.22-28: warning: type <type3> is used, but is not associated to any symbol [-Wother]
input.y:5.25-31: warning: type <type4> is used, but is not associated to any symbol input.y:5.25-31: warning: type <type4> is used, but is not associated to any symbol [-Wother]
]]) ]])
AT_CLEANUP AT_CLEANUP
@@ -360,8 +360,8 @@ exp: "a";
]]) ]])
AT_BISON_CHECK([input.y], [0], [], AT_BISON_CHECK([input.y], [0], [],
[[input.y:16.13-19: warning: useless %printer for type <type1> [[input.y:16.13-19: warning: useless %printer for type <type1> [-Wother]
input.y:17.16-22: warning: useless %destructor for type <type2> input.y:17.16-22: warning: useless %destructor for type <type2> [-Wother]
]]) ]])
@@ -386,9 +386,9 @@ tagged: { } ;
]]) ]])
AT_BISON_CHECK([input.y], [0], [], AT_BISON_CHECK([input.y], [0], [],
[[input.y:6.8-45: warning: unset value: $$ [[input.y:6.8-45: warning: unset value: $$ [-Wother]
input.y:6.8-45: warning: unused value: $2 input.y:6.8-45: warning: unused value: $2 [-Wother]
input.y:7.6-8: warning: unset value: $$ input.y:7.6-8: warning: unset value: $$ [-Wother]
]]) ]])
AT_DATA([[input.y]], AT_DATA([[input.y]],
@@ -403,8 +403,8 @@ tagged: { } ;
]]) ]])
AT_BISON_CHECK([input.y], [0], [], AT_BISON_CHECK([input.y], [0], [],
[[input.y:6.8-45: warning: unused value: $4 [[input.y:6.8-45: warning: unused value: $4 [-Wother]
input.y:8.9-11: warning: unset value: $$ input.y:8.9-11: warning: unset value: $$ [-Wother]
]]) ]])
AT_CLEANUP AT_CLEANUP
@@ -427,9 +427,9 @@ end: { } ;
]]) ]])
AT_BISON_CHECK([input.y], [0], [], AT_BISON_CHECK([input.y], [0], [],
[[input.y:6.8-22: warning: unset value: $$ [[input.y:6.8-22: warning: unset value: $$ [-Wother]
input.y:6.8-22: warning: unused value: $2 input.y:6.8-22: warning: unused value: $2 [-Wother]
input.y:7.6-8: warning: unset value: $$ input.y:7.6-8: warning: unset value: $$ [-Wother]
]]) ]])
AT_CLEANUP AT_CLEANUP
@@ -731,14 +731,14 @@ AT_BISON_OPTION_POPDEFS
# POSIX Yacc accept periods, but not dashes. # POSIX Yacc accept periods, but not dashes.
AT_BISON_CHECK([--yacc input.y], [1], [], AT_BISON_CHECK([--yacc input.y], [1], [],
[[input.y:9.8-16: POSIX Yacc forbids dashes in symbol names: WITH-DASH [[input.y:9.8-16: POSIX Yacc forbids dashes in symbol names: WITH-DASH [-Wyacc]
input.y:18.8-16: POSIX Yacc forbids dashes in symbol names: with-dash input.y:18.8-16: POSIX Yacc forbids dashes in symbol names: with-dash [-Wyacc]
]]) ]])
# So warn about them. # So warn about them.
AT_BISON_CHECK([-Wyacc input.y], [], [], AT_BISON_CHECK([-Wyacc input.y], [], [],
[[input.y:9.8-16: warning: POSIX Yacc forbids dashes in symbol names: WITH-DASH [[input.y:9.8-16: warning: POSIX Yacc forbids dashes in symbol names: WITH-DASH [-Wyacc]
input.y:18.8-16: warning: POSIX Yacc forbids dashes in symbol names: with-dash input.y:18.8-16: warning: POSIX Yacc forbids dashes in symbol names: with-dash [-Wyacc]
]]) ]])
# Dashes are fine for GNU Bison. # Dashes are fine for GNU Bison.
@@ -906,7 +906,7 @@ start: %prec PREC ;
]]) ]])
AT_BISON_CHECK([[input.y]], [[0]], [], AT_BISON_CHECK([[input.y]], [[0]], [],
[[input.y:2.8-17: warning: token for %prec is not defined: PREC [[input.y:2.8-17: warning: token for %prec is not defined: PREC [-Wother]
]]) ]])
AT_CLEANUP AT_CLEANUP
@@ -1299,10 +1299,10 @@ start: '
AT_CHECK([[perl -e "print 'start: \'';" >> empty.y || exit 77]]) AT_CHECK([[perl -e "print 'start: \'';" >> empty.y || exit 77]])
AT_BISON_CHECK([empty.y], [1], [], AT_BISON_CHECK([empty.y], [1], [],
[[empty.y:2.8-9: warning: empty character literal [[empty.y:2.8-9: warning: empty character literal [-Wother]
empty.y:3.8-4.0: warning: empty character literal empty.y:3.8-4.0: warning: empty character literal [-Wother]
empty.y:3.8-4.0: missing "'" at end of line empty.y:3.8-4.0: missing "'" at end of line
empty.y:4.8: warning: empty character literal empty.y:4.8: warning: empty character literal [-Wother]
empty.y:4.8: missing "'" at end of file empty.y:4.8: missing "'" at end of file
]]) ]])
@@ -1314,10 +1314,10 @@ start: 'ab
AT_CHECK([[perl -e "print 'start: \'ab';" >> two.y || exit 77]]) AT_CHECK([[perl -e "print 'start: \'ab';" >> two.y || exit 77]])
AT_BISON_CHECK([two.y], [1], [], AT_BISON_CHECK([two.y], [1], [],
[[two.y:2.8-11: warning: extra characters in character literal [[two.y:2.8-11: warning: extra characters in character literal [-Wother]
two.y:3.8-4.0: warning: extra characters in character literal two.y:3.8-4.0: warning: extra characters in character literal [-Wother]
two.y:3.8-4.0: missing "'" at end of line two.y:3.8-4.0: missing "'" at end of line
two.y:4.8-10: warning: extra characters in character literal two.y:4.8-10: warning: extra characters in character literal [-Wother]
two.y:4.8-10: missing "'" at end of file two.y:4.8-10: missing "'" at end of file
]]) ]])
@@ -1329,10 +1329,10 @@ start: 'abc
AT_CHECK([[perl -e "print 'start: \'abc';" >> three.y || exit 77]]) AT_CHECK([[perl -e "print 'start: \'abc';" >> three.y || exit 77]])
AT_BISON_CHECK([three.y], [1], [], AT_BISON_CHECK([three.y], [1], [],
[[three.y:2.8-12: warning: extra characters in character literal [[three.y:2.8-12: warning: extra characters in character literal [-Wother]
three.y:3.8-4.0: warning: extra characters in character literal three.y:3.8-4.0: warning: extra characters in character literal [-Wother]
three.y:3.8-4.0: missing "'" at end of line three.y:3.8-4.0: missing "'" at end of line
three.y:4.8-11: warning: extra characters in character literal three.y:4.8-11: warning: extra characters in character literal [-Wother]
three.y:4.8-11: missing "'" at end of file three.y:4.8-11: missing "'" at end of file
]]) ]])
@@ -1360,25 +1360,25 @@ AT_CHECK([[perl -e 'print "start: \"\\\t\\\f\\\0\\\1\" ;";' >> input.y \
AT_BISON_CHECK([input.y], [1], [], AT_BISON_CHECK([input.y], [1], [],
[[input.y:2.9-12: invalid number after \-escape: 777 [[input.y:2.9-12: invalid number after \-escape: 777
input.y:2.8-13: warning: empty character literal input.y:2.8-13: warning: empty character literal [-Wother]
input.y:2.16-17: invalid number after \-escape: 0 input.y:2.16-17: invalid number after \-escape: 0
input.y:2.15-18: warning: empty character literal input.y:2.15-18: warning: empty character literal [-Wother]
input.y:2.21-25: invalid number after \-escape: xfff input.y:2.21-25: invalid number after \-escape: xfff
input.y:2.20-26: warning: empty character literal input.y:2.20-26: warning: empty character literal [-Wother]
input.y:2.29-31: invalid number after \-escape: x0 input.y:2.29-31: invalid number after \-escape: x0
input.y:2.28-32: warning: empty character literal input.y:2.28-32: warning: empty character literal [-Wother]
input.y:3.9-14: invalid number after \-escape: uffff input.y:3.9-14: invalid number after \-escape: uffff
input.y:3.8-15: warning: empty character literal input.y:3.8-15: warning: empty character literal [-Wother]
input.y:3.18-23: invalid number after \-escape: u0000 input.y:3.18-23: invalid number after \-escape: u0000
input.y:3.17-24: warning: empty character literal input.y:3.17-24: warning: empty character literal [-Wother]
input.y:3.27-36: invalid number after \-escape: Uffffffff input.y:3.27-36: invalid number after \-escape: Uffffffff
input.y:3.26-37: warning: empty character literal input.y:3.26-37: warning: empty character literal [-Wother]
input.y:3.40-49: invalid number after \-escape: U00000000 input.y:3.40-49: invalid number after \-escape: U00000000
input.y:3.39-50: warning: empty character literal input.y:3.39-50: warning: empty character literal [-Wother]
input.y:4.9-10: invalid character after \-escape: ' ' input.y:4.9-10: invalid character after \-escape: ' '
input.y:4.8-11: warning: empty character literal input.y:4.8-11: warning: empty character literal [-Wother]
input.y:4.14-15: invalid character after \-escape: A input.y:4.14-15: invalid character after \-escape: A
input.y:4.13-16: warning: empty character literal input.y:4.13-16: warning: empty character literal [-Wother]
input.y:5.9-16: invalid character after \-escape: \t input.y:5.9-16: invalid character after \-escape: \t
input.y:5.17: invalid character after \-escape: \f input.y:5.17: invalid character after \-escape: \f
input.y:5.18: invalid character after \-escape: \0 input.y:5.18: invalid character after \-escape: \0
@@ -1423,20 +1423,20 @@ foo-bar: ;
# -Werror is not enabled by -Wall or equivalent. # -Werror is not enabled by -Wall or equivalent.
AT_BISON_CHECK([[-Wall input.y]], [[0]], [[]], AT_BISON_CHECK([[-Wall input.y]], [[0]], [[]],
[[input.y:2.1-7: warning: POSIX Yacc forbids dashes in symbol names: foo-bar [[input.y:2.1-7: warning: POSIX Yacc forbids dashes in symbol names: foo-bar [-Wyacc]
]]) ]])
AT_BISON_CHECK([[-W input.y]], [[0]], [[]], AT_BISON_CHECK([[-W input.y]], [[0]], [[]],
[[input.y:2.1-7: warning: POSIX Yacc forbids dashes in symbol names: foo-bar [[input.y:2.1-7: warning: POSIX Yacc forbids dashes in symbol names: foo-bar [-Wyacc]
]]) ]])
AT_BISON_CHECK([[-Wno-none input.y]], [[0]], [[]], AT_BISON_CHECK([[-Wno-none input.y]], [[0]], [[]],
[[input.y:2.1-7: warning: POSIX Yacc forbids dashes in symbol names: foo-bar [[input.y:2.1-7: warning: POSIX Yacc forbids dashes in symbol names: foo-bar [-Wyacc]
]]) ]])
# -Werror is not disabled by -Wnone or equivalent. # -Werror is not disabled by -Wnone or equivalent.
AT_BISON_CHECK([[-Werror,none,yacc input.y]], [[1]], [[]], [[stderr]]) AT_BISON_CHECK([[-Werror,none,yacc input.y]], [[1]], [[]], [[stderr]])
AT_CHECK([[sed 's/^.*bison:/bison:/' stderr]], [[0]], AT_CHECK([[sed 's/^.*bison:/bison:/' stderr]], [[0]],
[[bison: warnings being treated as errors [[bison: warnings being treated as errors
input.y:2.1-7: warning: POSIX Yacc forbids dashes in symbol names: foo-bar input.y:2.1-7: warning: POSIX Yacc forbids dashes in symbol names: foo-bar [-Wyacc]
]]) ]])
[mv stderr experr] [mv stderr experr]
AT_BISON_CHECK([[-Werror,no-all,yacc input.y]], [[1]], [[]], [[experr]]) AT_BISON_CHECK([[-Werror,no-all,yacc input.y]], [[1]], [[]], [[experr]])

View File

@@ -253,10 +253,10 @@ exp:
AT_BISON_CHECK([-o test.c test.y], 1, [], AT_BISON_CHECK([-o test.c test.y], 1, [],
[[test.y:50.51-60: invalid reference: '$<ival>lo9' [[test.y:50.51-60: invalid reference: '$<ival>lo9'
test.y:50.3-68: symbol not found in production: lo9 test.y:50.3-68: symbol not found in production: lo9
test.y:51.51-60: warning: misleading reference: '$<ival>exp' test.y:51.51-60: warning: misleading reference: '$<ival>exp' [-Wother]
test.y:42.1-3: warning: refers to: $exp at $$ test.y:42.1-3: warning: refers to: $exp at $$ [-Wother]
test.y:51.7: warning: possibly meant: $x, hiding $exp at $1 test.y:51.7: warning: possibly meant: $x, hiding $exp at $1 [-Wother]
test.y:51.41: warning: possibly meant: $r, hiding $exp at $4 test.y:51.41: warning: possibly meant: $r, hiding $exp at $4 [-Wother]
test.y:52.51-52: $l of 'exp' has no declared type test.y:52.51-52: $l of 'exp' has no declared type
test.y:55.46-49: invalid reference: '$r12' test.y:55.46-49: invalid reference: '$r12'
test.y:55.3-53: symbol not found in production: r12 test.y:55.3-53: symbol not found in production: r12
@@ -277,9 +277,9 @@ foo: '1'
foo.bar: '2' foo.bar: '2'
]]) ]])
AT_BISON_CHECK([-o test.c test.y], 0, [], AT_BISON_CHECK([-o test.c test.y], 0, [],
[[test.y:11.22-29: warning: misleading reference: '$foo.bar' [[test.y:11.22-29: warning: misleading reference: '$foo.bar' [-Wother]
test.y:11.8-10: warning: refers to: $foo at $1 test.y:11.8-10: warning: refers to: $foo at $1 [-Wother]
test.y:11.12-18: warning: possibly meant: $[foo.bar] at $2 test.y:11.12-18: warning: possibly meant: $[foo.bar] at $2 [-Wother]
]]) ]])
AT_CLEANUP AT_CLEANUP
@@ -573,7 +573,7 @@ start:
; ;
]]) ]])
AT_BISON_CHECK([[test.y]], [[0]], [], AT_BISON_CHECK([[test.y]], [[0]], [],
[[test.y:4.9: warning: stray '$' [[test.y:4.9: warning: stray '$' [-Wother]
test.y:5.9: warning: stray '@' test.y:5.9: warning: stray '@' [-Wother]
]]) ]])
AT_CLEANUP AT_CLEANUP

View File

@@ -165,22 +165,22 @@ AT_CLEANUP
AT_CHECK_CONFLICTING_OUTPUT([foo.y], AT_CHECK_CONFLICTING_OUTPUT([foo.y],
[], [--graph="foo.tab.c"], [], [--graph="foo.tab.c"],
[foo.y: warning: conflicting outputs to file 'foo.tab.c' [[foo.y: warning: conflicting outputs to file 'foo.tab.c' [-Wother]
]) ]])
AT_CHECK_CONFLICTING_OUTPUT([foo.y], AT_CHECK_CONFLICTING_OUTPUT([foo.y],
[%defines "foo.output"], [-v], [%defines "foo.output"], [-v],
[foo.y: warning: conflicting outputs to file 'foo.output' [[foo.y: warning: conflicting outputs to file 'foo.output' [-Wother]
]) ]])
AT_CHECK_CONFLICTING_OUTPUT([foo.y], AT_CHECK_CONFLICTING_OUTPUT([foo.y],
[%skeleton "lalr1.cc" %defines %locations], [--graph="location.hh"], [%skeleton "lalr1.cc" %defines %locations], [--graph="location.hh"],
[foo.y: warning: conflicting outputs to file 'location.hh' [[foo.y: warning: conflicting outputs to file 'location.hh' [-Wother]
]) ]])
AT_CHECK_CONFLICTING_OUTPUT([foo.y], [], [-o foo.y], AT_CHECK_CONFLICTING_OUTPUT([foo.y], [], [-o foo.y],
[foo.y: refusing to overwrite the input file 'foo.y' [[foo.y: refusing to overwrite the input file 'foo.y'
], 1) ]], 1)
# AT_CHECK_OUTPUT_FILE_NAME(FILE-NAME-PREFIX, [ADDITIONAL-TESTS]) # AT_CHECK_OUTPUT_FILE_NAME(FILE-NAME-PREFIX, [ADDITIONAL-TESTS])

View File

@@ -88,16 +88,16 @@ exp: useful;
]]) ]])
AT_BISON_CHECK([[input.y]], 0, [], AT_BISON_CHECK([[input.y]], 0, [],
[[input.y: warning: 9 nonterminals useless in grammar [[input.y: warning: 9 nonterminals useless in grammar [-Wother]
input.y:4.8-15: warning: nonterminal useless in grammar: useless1 input.y:4.8-15: warning: nonterminal useless in grammar: useless1 [-Wother]
input.y:5.8-15: warning: nonterminal useless in grammar: useless2 input.y:5.8-15: warning: nonterminal useless in grammar: useless2 [-Wother]
input.y:6.8-15: warning: nonterminal useless in grammar: useless3 input.y:6.8-15: warning: nonterminal useless in grammar: useless3 [-Wother]
input.y:7.8-15: warning: nonterminal useless in grammar: useless4 input.y:7.8-15: warning: nonterminal useless in grammar: useless4 [-Wother]
input.y:8.8-15: warning: nonterminal useless in grammar: useless5 input.y:8.8-15: warning: nonterminal useless in grammar: useless5 [-Wother]
input.y:9.8-15: warning: nonterminal useless in grammar: useless6 input.y:9.8-15: warning: nonterminal useless in grammar: useless6 [-Wother]
input.y:10.8-15: warning: nonterminal useless in grammar: useless7 input.y:10.8-15: warning: nonterminal useless in grammar: useless7 [-Wother]
input.y:11.8-15: warning: nonterminal useless in grammar: useless8 input.y:11.8-15: warning: nonterminal useless in grammar: useless8 [-Wother]
input.y:12.8-15: warning: nonterminal useless in grammar: useless9 input.y:12.8-15: warning: nonterminal useless in grammar: useless9 [-Wother]
]]) ]])
AT_CHECK([[sed -n '/^Grammar/q;/^$/!p' input.output]], 0, AT_CHECK([[sed -n '/^Grammar/q;/^$/!p' input.output]], 0,
@@ -143,26 +143,26 @@ useless9: '9';
]]) ]])
AT_BISON_CHECK([[input.y]], 0, [], AT_BISON_CHECK([[input.y]], 0, [],
[[input.y: warning: 9 nonterminals useless in grammar [[input.y: warning: 9 nonterminals useless in grammar [-Wother]
input.y: warning: 9 rules useless in grammar input.y: warning: 9 rules useless in grammar [-Wother]
input.y:6.1-8: warning: nonterminal useless in grammar: useless1 input.y:6.1-8: warning: nonterminal useless in grammar: useless1 [-Wother]
input.y:7.1-8: warning: nonterminal useless in grammar: useless2 input.y:7.1-8: warning: nonterminal useless in grammar: useless2 [-Wother]
input.y:8.1-8: warning: nonterminal useless in grammar: useless3 input.y:8.1-8: warning: nonterminal useless in grammar: useless3 [-Wother]
input.y:9.1-8: warning: nonterminal useless in grammar: useless4 input.y:9.1-8: warning: nonterminal useless in grammar: useless4 [-Wother]
input.y:10.1-8: warning: nonterminal useless in grammar: useless5 input.y:10.1-8: warning: nonterminal useless in grammar: useless5 [-Wother]
input.y:11.1-8: warning: nonterminal useless in grammar: useless6 input.y:11.1-8: warning: nonterminal useless in grammar: useless6 [-Wother]
input.y:12.1-8: warning: nonterminal useless in grammar: useless7 input.y:12.1-8: warning: nonterminal useless in grammar: useless7 [-Wother]
input.y:13.1-8: warning: nonterminal useless in grammar: useless8 input.y:13.1-8: warning: nonterminal useless in grammar: useless8 [-Wother]
input.y:14.1-8: warning: nonterminal useless in grammar: useless9 input.y:14.1-8: warning: nonterminal useless in grammar: useless9 [-Wother]
input.y:6.11-13: warning: rule useless in grammar: useless1: '1' input.y:6.11-13: warning: rule useless in grammar: useless1: '1' [-Wother]
input.y:7.11-13: warning: rule useless in grammar: useless2: '2' input.y:7.11-13: warning: rule useless in grammar: useless2: '2' [-Wother]
input.y:8.11-13: warning: rule useless in grammar: useless3: '3' input.y:8.11-13: warning: rule useless in grammar: useless3: '3' [-Wother]
input.y:9.11-13: warning: rule useless in grammar: useless4: '4' input.y:9.11-13: warning: rule useless in grammar: useless4: '4' [-Wother]
input.y:10.11-13: warning: rule useless in grammar: useless5: '5' input.y:10.11-13: warning: rule useless in grammar: useless5: '5' [-Wother]
input.y:11.11-13: warning: rule useless in grammar: useless6: '6' input.y:11.11-13: warning: rule useless in grammar: useless6: '6' [-Wother]
input.y:12.11-13: warning: rule useless in grammar: useless7: '7' input.y:12.11-13: warning: rule useless in grammar: useless7: '7' [-Wother]
input.y:13.11-13: warning: rule useless in grammar: useless8: '8' input.y:13.11-13: warning: rule useless in grammar: useless8: '8' [-Wother]
input.y:14.11-13: warning: rule useless in grammar: useless9: '9' input.y:14.11-13: warning: rule useless in grammar: useless9: '9' [-Wother]
]]) ]])
AT_CHECK([[sed -n '/^Grammar/q;/^$/!p' input.output]], 0, AT_CHECK([[sed -n '/^Grammar/q;/^$/!p' input.output]], 0,
@@ -239,13 +239,13 @@ non_productive: non_productive useless_token
]]) ]])
AT_BISON_CHECK([[not-reduced.y]], 0, [], AT_BISON_CHECK([[not-reduced.y]], 0, [],
[[not-reduced.y: warning: 2 nonterminals useless in grammar [[not-reduced.y: warning: 2 nonterminals useless in grammar [-Wother]
not-reduced.y: warning: 3 rules useless in grammar not-reduced.y: warning: 3 rules useless in grammar [-Wother]
not-reduced.y:14.1-13: warning: nonterminal useless in grammar: not_reachable not-reduced.y:14.1-13: warning: nonterminal useless in grammar: not_reachable [-Wother]
not-reduced.y:11.6-19: warning: nonterminal useless in grammar: non_productive not-reduced.y:11.6-19: warning: nonterminal useless in grammar: non_productive [-Wother]
not-reduced.y:11.6-57: warning: rule useless in grammar: exp: non_productive not-reduced.y:11.6-57: warning: rule useless in grammar: exp: non_productive [-Wother]
not-reduced.y:14.16-56: warning: rule useless in grammar: not_reachable: useful not-reduced.y:14.16-56: warning: rule useless in grammar: not_reachable: useful [-Wother]
not-reduced.y:17.17-18.63: warning: rule useless in grammar: non_productive: non_productive useless_token not-reduced.y:17.17-18.63: warning: rule useless in grammar: non_productive: non_productive useless_token [-Wother]
]]) ]])
AT_CHECK([[sed -n '/^Grammar/q;/^$/!p' not-reduced.output]], 0, AT_CHECK([[sed -n '/^Grammar/q;/^$/!p' not-reduced.output]], 0,
@@ -314,13 +314,13 @@ indirection: underivable;
]]) ]])
AT_BISON_CHECK([[input.y]], 0, [], AT_BISON_CHECK([[input.y]], 0, [],
[[input.y: warning: 2 nonterminals useless in grammar [[input.y: warning: 2 nonterminals useless in grammar [-Wother]
input.y: warning: 3 rules useless in grammar input.y: warning: 3 rules useless in grammar [-Wother]
input.y:5.15-25: warning: nonterminal useless in grammar: underivable input.y:5.15-25: warning: nonterminal useless in grammar: underivable [-Wother]
input.y:6.14-24: warning: nonterminal useless in grammar: indirection input.y:6.14-24: warning: nonterminal useless in grammar: indirection [-Wother]
input.y:5.15-25: warning: rule useless in grammar: exp: underivable input.y:5.15-25: warning: rule useless in grammar: exp: underivable [-Wother]
input.y:6.14-24: warning: rule useless in grammar: underivable: indirection input.y:6.14-24: warning: rule useless in grammar: underivable: indirection [-Wother]
input.y:7.14-24: warning: rule useless in grammar: indirection: underivable input.y:7.14-24: warning: rule useless in grammar: indirection: underivable [-Wother]
]]) ]])
AT_CHECK([[sed -n '/^Grammar/q;/^$/!p' input.output]], 0, AT_CHECK([[sed -n '/^Grammar/q;/^$/!p' input.output]], 0,
@@ -350,8 +350,8 @@ exp: exp;
]]) ]])
AT_BISON_CHECK([[input.y]], 1, [], AT_BISON_CHECK([[input.y]], 1, [],
[[input.y: warning: 2 nonterminals useless in grammar [[input.y: warning: 2 nonterminals useless in grammar [-Wother]
input.y: warning: 2 rules useless in grammar input.y: warning: 2 rules useless in grammar [-Wother]
input.y:3.1-3: fatal error: start symbol exp does not derive any sentence input.y:3.1-3: fatal error: start symbol exp does not derive any sentence
]]) ]])

View File

@@ -209,7 +209,7 @@ exp: '(' exp ')' | NUM ;
AT_BISON_OPTION_POPDEFS AT_BISON_OPTION_POPDEFS
AT_BISON_CHECK([-v -o input.c input.y], 0, [], AT_BISON_CHECK([-v -o input.c input.y], 0, [],
[[input.y:6.8-14: warning: symbol "<=" used more than once as a literal string [[input.y:6.8-14: warning: symbol "<=" used more than once as a literal string [-Wother]
]]) ]])
AT_CLEANUP AT_CLEANUP
@@ -478,8 +478,8 @@ AT_BISON_OPTION_POPDEFS
# C-string literal. Also notice that unnecessary escaping, such as "\?", from # C-string literal. Also notice that unnecessary escaping, such as "\?", from
# the user specification is eliminated. # the user specification is eliminated.
AT_BISON_CHECK([-o input.c input.y], [[0]], [[]], AT_BISON_CHECK([-o input.c input.y], [[0]], [[]],
[[input.y:22.8-14: warning: symbol SPECIAL redeclared [[input.y:22.8-14: warning: symbol SPECIAL redeclared [-Wother]
input.y:22.8-63: warning: symbol "\\'?\"\a\b\f\n\r\t\v\001\201\001\201??!" used more than once as a literal string input.y:22.8-63: warning: symbol "\\'?\"\a\b\f\n\r\t\v\001\201\001\201??!" used more than once as a literal string [-Wother]
]]) ]])
AT_COMPILE([input]) AT_COMPILE([input])
@@ -1184,8 +1184,8 @@ main (void)
AT_BISON_OPTION_POPDEFS AT_BISON_OPTION_POPDEFS
AT_BISON_CHECK([[-o input.c input.y]], [[0]],, AT_BISON_CHECK([[-o input.c input.y]], [[0]],,
[[input.y:23.5-19: warning: rule useless in parser due to conflicts: start: start [[input.y:23.5-19: warning: rule useless in parser due to conflicts: start: start [-Wother]
input.y:27.5-19: warning: rule useless in parser due to conflicts: sr_conflict: TK2 "tok alias" input.y:27.5-19: warning: rule useless in parser due to conflicts: sr_conflict: TK2 "tok alias" [-Wother]
]]) ]])
AT_COMPILE([[input]]) AT_COMPILE([[input]])
AT_PARSER_CHECK([[./input]]) AT_PARSER_CHECK([[./input]])

View File

@@ -191,8 +191,8 @@ start: ;
]]) ]])
AT_BISON_CHECK([[input1.y]], [[1]], [[]], AT_BISON_CHECK([[input1.y]], [[1]], [[]],
[[input1.y: warning: foow fubar [[input1.y: warning: foow fubar [-Wother]
foow.y:2.3-5.3: warning: foowat fubar foow.y:2.3-5.3: warning: foowat fubar [-Wother]
input1.y: fooc fubar input1.y: fooc fubar
fooc.y:1.1-10.5: foocat fubar fooc.y:1.1-10.5: foocat fubar
input1.y: fatal error: foof fubar input1.y: fatal error: foof fubar
@@ -281,7 +281,7 @@ start: ;
]]) ]])
AT_BISON_CHECK([[input2.y]], [[1]], [[]], AT_BISON_CHECK([[input2.y]], [[1]], [[]],
[[input2.y: warning: morning [[input2.y: warning: morning [-Wother]
foo.y:1.5-6: fatal error: M4 should exit immediately here foo.y:1.5-6: fatal error: M4 should exit immediately here
]]) ]])