mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-09 12:23:04 +00:00
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:
committed by
Akim Demaille
parent
b640317060
commit
73370a9daa
14
NEWS
14
NEWS
@@ -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
|
||||||
|
|||||||
@@ -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] != ' ')
|
||||||
|
|||||||
@@ -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);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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]])
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
156
tests/input.at
156
tests/input.at
@@ -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]])
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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])
|
||||||
|
|||||||
@@ -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
|
||||||
]])
|
]])
|
||||||
|
|
||||||
|
|||||||
@@ -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]])
|
||||||
|
|||||||
@@ -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
|
||||||
]])
|
]])
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user