Merge branch 'maint'

* maint:
  warnings: introduce -Wdeprecated in the usage info
  errors: prefix the output with "error: "
  errors: indent "invalid value for %define" context
  errors: indent "%define var" redefinition context
  errors: indent "symbol redeclaration" context
  errors: indent "result type clash" error context

Conflicts:
	src/complain.c
	src/muscle-tab.c
	src/reader.c
	src/symtab.c
	tests/conflicts.at
	tests/input.at
	tests/named-refs.at
	tests/output.at
	tests/skeletons.at
This commit is contained in:
Akim Demaille
2012-09-26 14:35:47 +02:00
16 changed files with 288 additions and 240 deletions

View File

@@ -945,7 +945,7 @@ exp: exp OP exp | NUM;
]])
AT_BISON_CHECK([-o input.c input.y], 1, [],
[[input.y: shift/reduce conflicts: 1 found, 0 expected
[[input.y: error: shift/reduce conflicts: 1 found, 0 expected
]])
AT_CLEANUP
@@ -981,7 +981,7 @@ exp: exp OP exp | NUM;
]])
AT_BISON_CHECK([-o input.c input.y], 1, [],
[[input.y: shift/reduce conflicts: 1 found, 2 expected
[[input.y: error: shift/reduce conflicts: 1 found, 2 expected
]])
AT_CLEANUP
@@ -1000,7 +1000,7 @@ a: 'a';
]])
AT_BISON_CHECK([-o input.c input.y], 1, [],
[[input.y: reduce/reduce conflicts: 1 found, 0 expected
[[input.y: error: reduce/reduce conflicts: 1 found, 0 expected
]])
AT_CLEANUP
@@ -1584,12 +1584,12 @@ for gram in sr-rr sr rr; do
if test -z "$sr_exp_i" && test "$sr_count" -ne 0; then
echo "warning: $sr_count shift/reduce conflicts"
elif test "$sr_exp_i" -ne "$sr_count"; then
echo "shift/reduce conflicts: $sr_count found, $sr_exp_i expected"
echo "error: shift/reduce conflicts: $sr_count found, $sr_exp_i expected"
fi
if test -z "$rr_exp_i" && test "$rr_count" -ne 0; then
echo "warning: $rr_count reduce/reduce conflicts"
elif test "$rr_exp_i" -ne "$rr_count"; then
echo "reduce/reduce conflicts: $rr_count found, $rr_exp_i expected"
echo "error: reduce/reduce conflicts: $rr_count found, $rr_exp_i expected"
fi
} | sed -e "s/^/$file: /" > experr
]AT_BISON_CHECK([[-Wnone $file]], [[1]], [[]], [[experr]])[

View File

@@ -1652,11 +1652,11 @@ main (void)
AT_BISON_OPTION_POPDEFS
AT_BISON_CHECK([[-o glr-regr18.c glr-regr18.y]], 1, [],
[glr-regr18.y:26.18-24: result type clash on merge function 'merge': <type2> != <type1>
glr-regr18.y:25.18-24: previous declaration
glr-regr18.y:27.13-19: result type clash on merge function 'merge': <type3> != <type2>
glr-regr18.y:26.18-24: previous declaration
])
[[glr-regr18.y:26.18-24: error: result type clash on merge function 'merge': <type2> != <type1>
glr-regr18.y:25.18-24: previous declaration
glr-regr18.y:27.13-19: error: result type clash on merge function 'merge': <type3> != <type2>
glr-regr18.y:26.18-24: previous declaration
]])
AT_CLEANUP

View File

@@ -33,8 +33,8 @@ exp: { @$ = @1 ; };
]])
AT_BISON_CHECK([input.y], [1], [],
[[input.y:2.13-14: integer out of range: '$1'
input.y:3.13-14: integer out of range: '@1'
[[input.y:2.13-14: error: integer out of range: '$1'
input.y:3.13-14: error: integer out of range: '@1'
]])
AT_CLEANUP
@@ -58,8 +58,8 @@ exp: foo { $$; } foo { $2; } foo
]])
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.24-25: $2 of 'exp' has no declared type
[[input.y:5.12-13: error: $$ for the midrule at $2 of 'exp' has no declared type
input.y:5.24-25: error: $2 of 'exp' has no declared type
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> != <> [-Wother]
input.y:7.5: warning: empty rule for typed nonterminal, and no action [-Wother]
@@ -200,30 +200,30 @@ start: ;
]])
AT_BISON_CHECK([input.y], [1], [],
[[input.y:1.13-29: %destructor redeclaration for <*>
input.y:1.13-29: previous declaration
input.y:2.10-24: %printer redeclaration for <*>
input.y:2.10-24: previous declaration
input.y:4.13-29: %destructor redeclaration for <*>
input.y:1.13-29: previous declaration
input.y:5.10-24: %printer redeclaration for <*>
input.y:2.10-24: previous declaration
input.y:7.13-29: %destructor redeclaration for <>
input.y:7.13-29: previous declaration
input.y:8.10-24: %printer redeclaration for <>
input.y:8.10-24: previous declaration
input.y:10.13-29: %destructor redeclaration for <>
input.y:7.13-29: previous declaration
input.y:11.10-24: %printer redeclaration for <>
input.y:8.10-24: previous declaration
input.y:17.13-29: %destructor redeclaration for <*>
input.y:4.13-29: previous declaration
input.y:18.10-24: %printer redeclaration for <*>
input.y:5.10-24: previous declaration
input.y:20.13-29: %destructor redeclaration for <>
input.y:10.13-29: previous declaration
input.y:21.10-24: %printer redeclaration for <>
input.y:11.10-24: previous declaration
[[input.y:1.13-29: error: %destructor redeclaration for <*>
input.y:1.13-29: previous declaration
input.y:2.10-24: error: %printer redeclaration for <*>
input.y:2.10-24: previous declaration
input.y:4.13-29: error: %destructor redeclaration for <*>
input.y:1.13-29: previous declaration
input.y:5.10-24: error: %printer redeclaration for <*>
input.y:2.10-24: previous declaration
input.y:7.13-29: error: %destructor redeclaration for <>
input.y:7.13-29: previous declaration
input.y:8.10-24: error: %printer redeclaration for <>
input.y:8.10-24: previous declaration
input.y:10.13-29: error: %destructor redeclaration for <>
input.y:7.13-29: previous declaration
input.y:11.10-24: error: %printer redeclaration for <>
input.y:8.10-24: previous declaration
input.y:17.13-29: error: %destructor redeclaration for <*>
input.y:4.13-29: previous declaration
input.y:18.10-24: error: %printer redeclaration for <*>
input.y:5.10-24: previous declaration
input.y:20.13-29: error: %destructor redeclaration for <>
input.y:10.13-29: previous declaration
input.y:21.10-24: error: %printer redeclaration for <>
input.y:11.10-24: previous declaration
]])
AT_CLEANUP
@@ -251,22 +251,22 @@ start: ;
]])
AT_BISON_CHECK([input.y], [1], [],
[[input.y:4.13-29: %destructor redeclaration for <field1>
input.y:1.13-29: previous declaration
input.y:4.13-29: %destructor redeclaration for <field1>
input.y:4.13-29: previous declaration
input.y:5.10-24: %printer redeclaration for <field2>
input.y:2.10-24: previous declaration
input.y:5.10-24: %printer redeclaration for <field2>
input.y:5.10-24: previous declaration
input.y:11.13-29: %destructor redeclaration for <field1>
input.y:4.13-29: previous declaration
input.y:11.13-29: %destructor redeclaration for <field2>
input.y:1.13-29: previous declaration
input.y:12.10-24: %printer redeclaration for <field1>
input.y:2.10-24: previous declaration
input.y:12.10-24: %printer redeclaration for <field2>
input.y:5.10-24: previous declaration
[[input.y:4.13-29: error: %destructor redeclaration for <field1>
input.y:1.13-29: previous declaration
input.y:4.13-29: error: %destructor redeclaration for <field1>
input.y:4.13-29: previous declaration
input.y:5.10-24: error: %printer redeclaration for <field2>
input.y:2.10-24: previous declaration
input.y:5.10-24: error: %printer redeclaration for <field2>
input.y:5.10-24: previous declaration
input.y:11.13-29: error: %destructor redeclaration for <field1>
input.y:4.13-29: previous declaration
input.y:11.13-29: error: %destructor redeclaration for <field2>
input.y:1.13-29: previous declaration
input.y:12.10-24: error: %printer redeclaration for <field1>
input.y:2.10-24: previous declaration
input.y:12.10-24: error: %printer redeclaration for <field2>
input.y:5.10-24: previous declaration
]])
AT_CLEANUP
@@ -286,7 +286,7 @@ exp: bar;
]])
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: error: 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 [-Wother]
input.y:1.13-15: warning: symbol foo is used, but is not defined as a token and has no rules [-Wother]
input.y:3.13-15: warning: symbol qux is used, but is not defined as a token and has no rules [-Wother]
@@ -480,14 +480,14 @@ exp: foo;
]])
AT_BISON_CHECK([input.y], [1], [],
[[input.y:8.7-11: %type redeclaration for foo
input.y:3.7-11: previous declaration
input.y:10.13-17: %destructor redeclaration for foo
input.y:5.13-17: previous declaration
input.y:9.10-14: %printer redeclaration for foo
input.y:4.10-14: previous declaration
input.y:11.1-5: %left redeclaration for foo
input.y:6.1-5: previous declaration
[[input.y:8.7-11: error: %type redeclaration for foo
input.y:3.7-11: previous declaration
input.y:10.13-17: error: %destructor redeclaration for foo
input.y:5.13-17: previous declaration
input.y:9.10-14: error: %printer redeclaration for foo
input.y:4.10-14: previous declaration
input.y:11.1-5: error: %left redeclaration for foo
input.y:6.1-5: previous declaration
]])
AT_CLEANUP
@@ -506,7 +506,7 @@ AT_SETUP([Torturing the Scanner])
AT_BISON_OPTION_PUSHDEFS
AT_DATA([input.y], [])
AT_BISON_CHECK([input.y], [1], [],
[[input.y:1.1: syntax error, unexpected end of file
[[input.y:1.1: error: syntax error, unexpected end of file
]])
@@ -514,7 +514,7 @@ AT_DATA([input.y],
[{}
])
AT_BISON_CHECK([input.y], [1], [],
[[input.y:1.1-2: syntax error, unexpected {...}
[[input.y:1.1-2: error: syntax error, unexpected {...}
]])
@@ -780,9 +780,9 @@ AT_DATA_GRAMMAR([input.y],
start: .GOOD GOOD
]])
AT_BISON_CHECK([-o input.c input.y], [1], [],
[[input.y:10.10: invalid character: '-'
input.y:11.10-16: invalid identifier: '1NV4L1D'
input.y:12.10: invalid character: '-'
[[input.y:10.10: error: invalid character: '-'
input.y:11.10-16: error: invalid identifier: '1NV4L1D'
input.y:12.10: error: invalid character: '-'
]])
AT_CLEANUP
@@ -804,9 +804,9 @@ start: DECIMAL_1 HEXADECIMAL_2;
]])
AT_BISON_CHECK([redecl.y], [1], [],
[[redecl.y:10.10-22: user token number 11259375 redeclaration for HEXADECIMAL_1
redecl.y:9.8-16: previous declaration for DECIMAL_1
redecl.y:12.10-18: user token number 16702650 redeclaration for DECIMAL_2
[[redecl.y:10.10-22: error: user token number 11259375 redeclaration for HEXADECIMAL_1
redecl.y:9.8-16: previous declaration for DECIMAL_1
redecl.y:12.10-18: error: user token number 16702650 redeclaration for DECIMAL_2
redecl.y:11.10-22: previous declaration for HEXADECIMAL_2
]])
@@ -819,8 +819,8 @@ start: TOO_LARGE_DEC TOO_LARGE_HEX
]])
AT_BISON_CHECK([too-large.y], [1], [],
[[too-large.y:9.22-42: integer out of range: '999999999999999999999'
too-large.y:10.24-44: integer out of range: '0xFFFFFFFFFFFFFFFFFFF'
[[too-large.y:9.22-42: error: integer out of range: '999999999999999999999'
too-large.y:10.24-44: error: integer out of range: '0xFFFFFFFFFFFFFFFFFFF'
]])
AT_CLEANUP
@@ -860,12 +860,12 @@ start: ;
]])
AT_BISON_CHECK([-o input.c input.y], 1, [],
[[input.y:1.10-2.0: missing '"' at end of line
input.y:4.10-5.0: missing "'" at end of line
input.y:14.11-15.0: missing "'" at end of line
input.y:16.11-17.0: missing '"' at end of line
input.y:19.13-20.0: missing '}' at end of file
input.y:20.1: syntax error, unexpected end of file
[[input.y:1.10-2.0: error: missing '"' at end of line
input.y:4.10-5.0: error: missing "'" at end of line
input.y:14.11-15.0: error: missing "'" at end of line
input.y:16.11-17.0: error: missing '"' at end of line
input.y:19.13-20.0: error: missing '}' at end of file
input.y:20.1: error: syntax error, unexpected end of file
]])
AT_CLEANUP
@@ -907,7 +907,7 @@ PREC: ;
]])
AT_BISON_CHECK([input.y], [1], [],
[[input.y:3.1-4: rule given for PREC, which is a token
[[input.y:3.1-4: error: rule given for PREC, which is a token
]])
AT_CLEANUP
@@ -948,10 +948,10 @@ AT_DATA([input-c.y],
start: ;
]])
AT_BISON_CHECK([[input-c.y]], [[1]], [],
[[input-c.y:1.7: %code qualifier 'q' is not used
input-c.y:2.7-9: %code qualifier 'bad' is not used
input-c.y:3.7-9: %code qualifier 'bad' is not used
input-c.y:4.7-12: %code qualifier 'format' is not used
[[input-c.y:1.7: error: %code qualifier 'q' is not used
input-c.y:2.7-9: error: %code qualifier 'bad' is not used
input-c.y:3.7-9: error: %code qualifier 'bad' is not used
input-c.y:4.7-12: error: %code qualifier 'format' is not used
]])
AT_DATA([input-c-glr.y],
@@ -962,9 +962,9 @@ AT_DATA([input-c-glr.y],
start: ;
]])
AT_BISON_CHECK([[input-c-glr.y]], [[1]], [],
[[input-c-glr.y:1.7: %code qualifier 'q' is not used
input-c-glr.y:2.7-9: %code qualifier 'bad' is not used
input-c-glr.y:3.8-10: %code qualifier 'bad' is not used
[[input-c-glr.y:1.7: error: %code qualifier 'q' is not used
input-c-glr.y:2.7-9: error: %code qualifier 'bad' is not used
input-c-glr.y:3.8-10: error: %code qualifier 'bad' is not used
]])
AT_DATA([input-c++.y],
@@ -975,9 +975,9 @@ AT_DATA([input-c++.y],
start: ;
]])
AT_BISON_CHECK([[input-c++.y]], [[1]], [],
[[input-c++.y:1.7: %code qualifier 'q' is not used
input-c++.y:2.7-9: %code qualifier 'bad' is not used
input-c++.y:3.8: %code qualifier 'q' is not used
[[input-c++.y:1.7: error: %code qualifier 'q' is not used
input-c++.y:2.7-9: error: %code qualifier 'bad' is not used
input-c++.y:3.8: error: %code qualifier 'q' is not used
]])
AT_DATA([input-c++-glr.y],
@@ -988,9 +988,9 @@ AT_DATA([input-c++-glr.y],
start: ;
]])
AT_BISON_CHECK([[input-c++-glr.y]], [[1]], [],
[[input-c++-glr.y:1.7-9: %code qualifier 'bad' is not used
input-c++-glr.y:2.7: %code qualifier 'q' is not used
input-c++-glr.y:3.7: %code qualifier 'q' is not used
[[input-c++-glr.y:1.7-9: error: %code qualifier 'bad' is not used
input-c++-glr.y:2.7: error: %code qualifier 'q' is not used
input-c++-glr.y:3.7: error: %code qualifier 'q' is not used
]])
AT_DATA([special-char-@@.y],
@@ -1001,9 +1001,9 @@ AT_DATA([special-char-@@.y],
start: ;
]])
AT_BISON_CHECK([[special-char-@@.y]], [[1]], [],
[[special-char-@@.y:1.7-9: %code qualifier 'bad' is not used
special-char-@@.y:2.7: %code qualifier 'q' is not used
special-char-@@.y:3.7: %code qualifier 'q' is not used
[[special-char-@@.y:1.7-9: error: %code qualifier 'bad' is not used
special-char-@@.y:2.7: error: %code qualifier 'q' is not used
special-char-@@.y:3.7: error: %code qualifier 'q' is not used
]])
AT_DATA([special-char-@:>@.y],
@@ -1014,9 +1014,9 @@ AT_DATA([special-char-@:>@.y],
start: ;
]])
AT_BISON_CHECK([[special-char-@:>@.y]], [[1]], [],
[[special-char-@:>@.y:1.7-9: %code qualifier 'bad' is not used
special-char-@:>@.y:2.7: %code qualifier 'q' is not used
special-char-@:>@.y:3.7: %code qualifier 'q' is not used
[[special-char-@:>@.y:1.7-9: error: %code qualifier 'bad' is not used
special-char-@:>@.y:2.7: error: %code qualifier 'q' is not used
special-char-@:>@.y:3.7: error: %code qualifier 'q' is not used
]])
AT_CLEANUP
@@ -1039,10 +1039,10 @@ start: ;
]])
AT_BISON_CHECK([[input-redefined.y]], [[1]], [],
[[input-redefined.y:2.9-11: %define variable 'var' redefined
input-redefined.y:1.9-11: previous definition
input-redefined.y:3.10-12: %define variable 'var' redefined
input-redefined.y:2.9-11: previous definition
[[input-redefined.y:2.9-11: error: %define variable 'var' redefined
input-redefined.y:1.9-11: previous definition
input-redefined.y:3.10-12: error: %define variable 'var' redefined
input-redefined.y:2.9-11: previous definition
]])
AT_DATA([input-unused.y],
@@ -1052,7 +1052,7 @@ start: ;
]])
AT_BISON_CHECK([[input-unused.y]], [[1]], [],
[[input-unused.y:1.9-11: %define variable 'var' is not used
[[input-unused.y:1.9-11: error: %define variable 'var' is not used
]])
AT_CLEANUP
@@ -1096,8 +1096,8 @@ AT_DATA([[input-dg.y]],
start: ;
]])
AT_BISON_CHECK([[-Dvar=cmd-d input-dg.y]], [[1]], [],
[[input-dg.y:1.9-11: %define variable 'var' redefined
<command line>:2: previous definition
[[input-dg.y:1.9-11: error: %define variable 'var' redefined
<command line>:2: previous definition
]])
AT_DATA([[input-unused.y]],
@@ -1105,8 +1105,8 @@ AT_DATA([[input-unused.y]],
start: ;
]])
AT_BISON_CHECK([[-Dunused-d -Funused-f input-unused.y]], [[1]], [],
[[<command line>:2: %define variable 'unused-d' is not used
<command line>:3: %define variable 'unused-f' is not used
[[<command line>:2: error: %define variable 'unused-d' is not used
<command line>:3: error: %define variable 'unused-f' is not used
]])
AT_CLEANUP
@@ -1126,7 +1126,7 @@ start: ;
]])
AT_BISON_CHECK([[Input.y]], [1], [],
[[Input.y:2.9-14: invalid value for %define Boolean variable 'public'
[[Input.y:2.9-14: error: invalid value for %define Boolean variable 'public'
]])
AT_CLEANUP
@@ -1144,23 +1144,24 @@ AT_DATA([[input.y]],
start: ;
]])
AT_BISON_CHECK([[input.y]], [[1]], [[]],
[[input.y:1.9-29: invalid value for %define variable 'lr.default-reductions': 'bogus'
input.y:1.9-29: accepted value: 'most'
input.y:1.9-29: accepted value: 'consistent'
input.y:1.9-29: accepted value: 'accepting'
[[input.y:1.9-29: error: invalid value for %define variable 'lr.default-reductions': 'bogus'
input.y:1.9-29: accepted value: 'most'
input.y:1.9-29: accepted value: 'consistent'
input.y:1.9-29: accepted value: 'accepting'
]])
# Back-end.
# FIXME: these should be indented, but we shouldn't mess with the m4 yet
AT_DATA([[input.y]],
[[%define api.push-pull neither
%%
start: ;
]])
AT_BISON_CHECK([[input.y]], [1], [],
[[input.y:1.9-21: invalid value for %define variable 'api.push-pull': 'neither'
input.y:1.9-21: accepted value: 'pull'
input.y:1.9-21: accepted value: 'push'
input.y:1.9-21: accepted value: 'both'
[[input.y:1.9-21: error: invalid value for %define variable 'api.push-pull': 'neither'
input.y:1.9-21: error: accepted value: 'pull'
input.y:1.9-21: error: accepted value: 'push'
input.y:1.9-21: error: accepted value: 'both'
]])
AT_CLEANUP
@@ -1181,10 +1182,10 @@ start: ;
]])
AT_BISON_CHECK([[input.y]], [1], [],
[[input.y:1.9-21: warning: deprecated %define variable name: 'api.push_pull', use 'api.push-pull' [-Wdeprecated]
input.y:1.9-21: invalid value for %define variable 'api.push-pull': 'neither'
input.y:1.9-21: accepted value: 'pull'
input.y:1.9-21: accepted value: 'push'
input.y:1.9-21: accepted value: 'both'
input.y:1.9-21: error: invalid value for %define variable 'api.push-pull': 'neither'
input.y:1.9-21: error: accepted value: 'pull'
input.y:1.9-21: error: accepted value: 'push'
input.y:1.9-21: error: accepted value: 'both'
]])
AT_DATA([[input.y]],
@@ -1194,7 +1195,7 @@ start: ;
]])
AT_BISON_CHECK([[input.y]], [1], [],
[[input.y:1.9-34: warning: deprecated %define variable name: 'lr.keep_unreachable_states', use 'lr.keep-unreachable-states' [-Wdeprecated]
input.y:1.9-34: invalid value for %define Boolean variable 'lr.keep-unreachable-states'
input.y:1.9-34: error: invalid value for %define Boolean variable 'lr.keep-unreachable-states'
]])
AT_DATA([[input.y]],
@@ -1205,8 +1206,8 @@ start: ;
]])
AT_BISON_CHECK([[input.y]], [1], [],
[[input.y:1.9-17: warning: deprecated %define variable name: 'namespace', use 'api.namespace' [-Wdeprecated]
input.y:2.9-21: %define variable 'api.namespace' redefined
input.y:1.9-17: previous definition
input.y:2.9-21: error: %define variable 'api.namespace' redefined
input.y:1.9-17: previous definition
]])
AT_DATA([[input.y]],
@@ -1215,7 +1216,7 @@ AT_DATA([[input.y]],
start: ;
]])
AT_BISON_CHECK([[input.y]], [[1]], [],
[[input.y:1.9-15: %define variable 'foo_bar' is not used
[[input.y:1.9-15: error: %define variable 'foo_bar' is not used
]])
AT_CLEANUP
@@ -1240,7 +1241,7 @@ start: ;
]])
AT_BISON_CHECK([[input.y]], [[1]], [],
[[input.y:1.9-16: %define variable 'api.pure' is not used
[[input.y:1.9-16: error: %define variable 'api.pure' is not used
]])
])
@@ -1274,7 +1275,7 @@ start: ;
AT_BISON_CHECK([[input.y]], [1], [],
[m4_foreach([b4_arg], m4_dquote(m4_shift($@)),
[[input.y:3.9-21: ]b4_arg[
[[input.y:3.9-21: error: ]b4_arg[
]])])
])
@@ -1325,9 +1326,9 @@ AT_CHECK([[perl -e "print 'start: \'';" >> empty.y || exit 77]])
AT_BISON_CHECK([empty.y], [1], [],
[[empty.y:2.8-9: warning: empty character literal [-Wother]
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: error: missing "'" at end of line
empty.y:4.8: warning: empty character literal [-Wother]
empty.y:4.8: missing "'" at end of file
empty.y:4.8: error: missing "'" at end of file
]])
AT_DATA([two.y],
@@ -1340,9 +1341,9 @@ AT_CHECK([[perl -e "print 'start: \'ab';" >> two.y || exit 77]])
AT_BISON_CHECK([two.y], [1], [],
[[two.y:2.8-11: warning: extra characters in character literal [-Wother]
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: error: missing "'" at end of line
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: error: missing "'" at end of file
]])
AT_DATA([three.y],
@@ -1355,9 +1356,9 @@ AT_CHECK([[perl -e "print 'start: \'abc';" >> three.y || exit 77]])
AT_BISON_CHECK([three.y], [1], [],
[[three.y:2.8-12: warning: extra characters in character literal [-Wother]
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: error: missing "'" at end of line
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: error: missing "'" at end of file
]])
AT_CLEANUP
@@ -1383,30 +1384,30 @@ AT_CHECK([[perl -e 'print "start: \"\\\t\\\f\\\0\\\1\" ;";' >> input.y \
|| exit 77]])
AT_BISON_CHECK([input.y], [1], [],
[[input.y:2.9-12: invalid number after \-escape: 777
[[input.y:2.9-12: error: invalid number after \-escape: 777
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: error: invalid number after \-escape: 0
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: error: invalid number after \-escape: xfff
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: error: invalid number after \-escape: x0
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: error: invalid number after \-escape: uffff
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: error: invalid number after \-escape: u0000
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: error: invalid number after \-escape: Uffffffff
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: error: invalid number after \-escape: U00000000
input.y:3.39-50: warning: empty character literal [-Wother]
input.y:4.9-10: invalid character after \-escape: ' '
input.y:4.9-10: error: invalid character after \-escape: ' '
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: error: invalid character after \-escape: A
input.y:4.13-16: warning: empty character literal [-Wother]
input.y:5.9-16: invalid character after \-escape: \t
input.y:5.17: invalid character after \-escape: \f
input.y:5.18: invalid character after \-escape: \0
input.y:5.19: invalid character after \-escape: \001
input.y:5.9-16: error: invalid character after \-escape: \t
input.y:5.17: error: invalid character after \-escape: \f
input.y:5.18: error: invalid character after \-escape: \0
input.y:5.19: error: invalid character after \-escape: \001
]])
AT_CLEANUP
@@ -1425,11 +1426,11 @@ start: ;
# parse.lac.* options are useless if LAC isn't actually activated.
AT_BISON_CHECK([[-Dparse.lac.es-capacity-initial=1 input.y]],
[[1]], [],
[[<command line>:2: %define variable 'parse.lac.es-capacity-initial' is not used
[[<command line>:2: error: %define variable 'parse.lac.es-capacity-initial' is not used
]])
AT_BISON_CHECK([[-Dparse.lac.memory-trace=full input.y]],
[[1]], [],
[[<command line>:2: %define variable 'parse.lac.memory-trace' is not used
[[<command line>:2: error: %define variable 'parse.lac.memory-trace' is not used
]])
AT_CLEANUP
@@ -1483,7 +1484,7 @@ m4_pushdef([AT_TEST],
exp:;
]])
AT_BISON_CHECK([[$2 input.y]], [[1]], [[]],
[[$3: '%name-prefix' and '%define api.prefix' cannot be used together
[[$3: error: '%name-prefix' and '%define api.prefix' cannot be used together
]])
])

View File

@@ -251,16 +251,16 @@ exp:
]])
AT_BISON_CHECK([-o test.c test.y], 1, [],
[[test.y:50.51-60: invalid reference: '$<ival>lo9'
[[test.y:50.51-60: error: invalid reference: '$<ival>lo9'
test.y:50.3-68: symbol not found in production: lo9
test.y:51.51-60: warning: misleading reference: '$<ival>exp' [-Wother]
test.y:42.1-3: warning: refers to: $exp at $$ [-Wother]
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 [-Wother]
test.y:52.51-52: $l of 'exp' has no declared type
test.y:55.46-49: invalid reference: '$r12'
test.y:42.1-3: refers to: $exp at $$ [-Wother]
test.y:51.7: possibly meant: $x, hiding $exp at $1 [-Wother]
test.y:51.41: possibly meant: $r, hiding $exp at $4 [-Wother]
test.y:52.51-52: error: $l of 'exp' has no declared type
test.y:55.46-49: error: invalid reference: '$r12'
test.y:55.3-53: symbol not found in production: r12
test.y:56.29-33: invalid reference: '$expo'
test.y:56.29-33: error: invalid reference: '$expo'
test.y:56.3-46: symbol not found in production: expo
]])
AT_BISON_OPTION_POPDEFS
@@ -278,8 +278,8 @@ foo.bar: '2'
]])
AT_BISON_CHECK([-o test.c test.y], 0, [],
[[test.y:11.22-29: warning: misleading reference: '$foo.bar' [-Wother]
test.y:11.8-10: warning: refers to: $foo at $1 [-Wother]
test.y:11.12-18: warning: possibly meant: $[foo.bar] at $2 [-Wother]
test.y:11.8-10: refers to: $foo at $1 [-Wother]
test.y:11.12-18: possibly meant: $[foo.bar] at $2 [-Wother]
]])
AT_CLEANUP
@@ -353,43 +353,43 @@ factor: '(' expr ')' { $$ = $2; }
;
]])
AT_BISON_CHECK([-o test.c test.y], 1, [],
[[test.y:24.36-41: invalid reference: '$cond1'
[[test.y:24.36-41: error: invalid reference: '$cond1'
test.y:23.11-24.62: symbol not found in production: cond1
test.y:26.43-53: invalid reference: '$stmt.field'
test.y:26.43-53: error: invalid reference: '$stmt.field'
test.y:25.11-26.60: symbol not found in production: stmt
test.y:25.35-38: possibly meant: $then.field, hiding $stmt.field at $4
test.y:28.43-52: invalid reference: '$stmt.list'
test.y:28.43-52: error: invalid reference: '$stmt.list'
test.y:27.11-28.59: symbol not found in production: stmt
test.y:27.30-38: possibly meant: $[stmt.list] at $4
test.y:30.43-46: ambiguous reference: '$xyz'
test.y:30.43-46: error: ambiguous reference: '$xyz'
test.y:29.35-37: refers to: $xyz at $4
test.y:29.50-52: refers to: $xyz at $6
test.y:32.43-52: invalid reference: '$stmt.list'
test.y:32.43-52: error: invalid reference: '$stmt.list'
test.y:31.11-32.63: symbol not found in production: stmt
test.y:31.40-43: possibly meant: $then, hiding $[stmt.list] at $4
test.y:31.61-64: possibly meant: $else, hiding $[stmt.list] at $6
test.y:34.43-58: invalid reference: '$stmt.list.field'
test.y:34.43-58: error: invalid reference: '$stmt.list.field'
test.y:33.11-34.69: symbol not found in production: stmt
test.y:33.40-43: possibly meant: $then.field, hiding $[stmt.list].field at $4
test.y:33.61-64: possibly meant: $else.field, hiding $[stmt.list].field at $6
test.y:36.43-54: invalid reference: '$[stmt.list]'
test.y:36.43-54: error: invalid reference: '$[stmt.list]'
test.y:35.11-36.71: symbol not found in production: stmt.list
test.y:35.40-43: possibly meant: $then, hiding $[stmt.list] at $4
test.y:35.61-64: possibly meant: $else, hiding $[stmt.list] at $6
test.y:38.43-49: invalid reference: '$then.1'
test.y:38.43-49: error: invalid reference: '$then.1'
test.y:37.11-38.60: symbol not found in production: then
test.y:37.40-45: possibly meant: $[then.1] at $4
test.y:40.43-55: invalid reference: '$then.1.field'
test.y:40.43-55: error: invalid reference: '$then.1.field'
test.y:39.11-40.66: symbol not found in production: then
test.y:39.40-45: possibly meant: $[then.1].field at $4
test.y:42.44-50: invalid reference: '$stmt.x'
test.y:42.44-50: error: invalid reference: '$stmt.x'
test.y:41.12-42.57: symbol not found in production: stmt
test.y:41.36-41: possibly meant: $[stmt.x].x, hiding $stmt.x at $4
test.y:41.36-41: possibly meant: $[stmt.x] at $4
test.y:44.13-22: invalid reference: '$if-stmt-a'
test.y:44.13-22: error: invalid reference: '$if-stmt-a'
test.y:43.12-44.59: symbol not found in production: if
test.y:43.1-9: possibly meant: $[if-stmt-a] at $$
test.y:46.46-54: invalid reference: '$then-a.f'
test.y:46.46-54: error: invalid reference: '$then-a.f'
test.y:45.12-46.65: symbol not found in production: then
test.y:45.41-46: possibly meant: $[then-a].f at $4
]])
@@ -405,7 +405,7 @@ start: foo[] bar
{ s = $foo; }
]])
AT_BISON_CHECK([-o test.c test.y], 1, [],
[[test.y:11.12: an identifier expected
[[test.y:11.12: error: an identifier expected
]])
AT_CLEANUP
@@ -419,7 +419,7 @@ start: foo[ a d ] bar
{ s = $foo; }
]])
AT_BISON_CHECK([-o test.c test.y], 1, [],
[[test.y:11.15: unexpected identifier in bracketed name: 'd'
[[test.y:11.15: error: unexpected identifier in bracketed name: 'd'
]])
AT_CLEANUP
@@ -433,7 +433,7 @@ start: foo[/* comment */] bar
{ s = $foo; }
]])
AT_BISON_CHECK([-o test.c test.y], 1, [],
[[test.y:11.25: an identifier expected
[[test.y:11.25: error: an identifier expected
]])
AT_CLEANUP
@@ -447,10 +447,10 @@ start: foo[ /* aaa */ *&-.+ ] bar
{ s = $foo; }
]])
AT_BISON_CHECK([-o test.c test.y], 1, [],
[[test.y:11.23: invalid character in bracketed name: '*'
test.y:11.24: invalid character in bracketed name: '&'
test.y:11.25: invalid character in bracketed name: '-'
test.y:11.27: invalid character in bracketed name: '+'
[[test.y:11.23: error: invalid character in bracketed name: '*'
test.y:11.24: error: invalid character in bracketed name: '&'
test.y:11.25: error: invalid character in bracketed name: '-'
test.y:11.27: error: invalid character in bracketed name: '+'
]])
AT_CLEANUP
@@ -463,7 +463,7 @@ AT_DATA_GRAMMAR([test.y],
start[a s]: foo;
]])
AT_BISON_CHECK([-o test.c test.y], 1, [],
[[test.y:11.9: unexpected identifier in bracketed name: 's'
[[test.y:11.9: error: unexpected identifier in bracketed name: 's'
]])
AT_CLEANUP
@@ -510,37 +510,37 @@ sym_a: 'a';
sym_b: 'b';
]])
AT_BISON_CHECK([-o test.c test.y], 1, [],
[[test.y:12.22-31: invalid reference: '$sym.field'
[[test.y:12.22-31: error: invalid reference: '$sym.field'
test.y:12.3-35: symbol not found in production: sym
test.y:13.22-35: invalid reference: '$<aa>sym.field'
test.y:13.22-35: error: invalid reference: '$<aa>sym.field'
test.y:13.3-39: symbol not found in production: sym
test.y:14.22-33: invalid reference: '$[sym.field]'
test.y:14.22-33: error: invalid reference: '$[sym.field]'
test.y:14.3-37: symbol not found in production: sym.field
test.y:15.22-37: invalid reference: '$<aa>[sym.field]'
test.y:15.22-37: error: invalid reference: '$<aa>[sym.field]'
test.y:15.3-41: symbol not found in production: sym.field
test.y:16.22-25: invalid reference: '$sym'
test.y:16.22-25: error: invalid reference: '$sym'
test.y:16.3-29: symbol not found in production: sym
test.y:17.22-29: invalid reference: '$<aa>sym'
test.y:17.22-29: error: invalid reference: '$<aa>sym'
test.y:17.3-33: symbol not found in production: sym
test.y:18.22-27: invalid reference: '$[sym]'
test.y:18.22-27: error: invalid reference: '$[sym]'
test.y:18.3-65: symbol not found in production before $3: sym
test.y:18.52-61: invalid reference: '$<aa>[sym]'
test.y:18.52-61: error: invalid reference: '$<aa>[sym]'
test.y:18.3-65: symbol not found in production: sym
test.y:22.22-31: invalid reference: '$sym-field'
test.y:22.22-31: error: invalid reference: '$sym-field'
test.y:22.3-35: symbol not found in production: sym
test.y:23.22-35: invalid reference: '$<aa>sym-field'
test.y:23.22-35: error: invalid reference: '$<aa>sym-field'
test.y:23.3-39: symbol not found in production: sym
test.y:24.22-33: invalid reference: '$[sym-field]'
test.y:24.22-33: error: invalid reference: '$[sym-field]'
test.y:24.3-37: symbol not found in production: sym-field
test.y:25.22-37: invalid reference: '$<aa>[sym-field]'
test.y:25.22-37: error: invalid reference: '$<aa>[sym-field]'
test.y:25.3-41: symbol not found in production: sym-field
test.y:26.22-25: invalid reference: '$sym'
test.y:26.22-25: error: invalid reference: '$sym'
test.y:26.3-29: symbol not found in production: sym
test.y:27.22-29: invalid reference: '$<aa>sym'
test.y:27.22-29: error: invalid reference: '$<aa>sym'
test.y:27.3-33: symbol not found in production: sym
test.y:28.22-27: invalid reference: '$[sym]'
test.y:28.22-27: error: invalid reference: '$[sym]'
test.y:28.3-65: symbol not found in production before $3: sym
test.y:28.52-61: invalid reference: '$<aa>[sym]'
test.y:28.52-61: error: invalid reference: '$<aa>[sym]'
test.y:28.3-65: symbol not found in production: sym
]])
AT_CLEANUP
@@ -558,10 +558,10 @@ start:
.field: ;
]])
AT_BISON_CHECK([[test.y]], [[1]], [],
[[test.y:4.12-18: invalid reference: '$.field'
[[test.y:4.12-18: error: invalid reference: '$.field'
test.y:4.13: syntax error after '$', expecting integer, letter, '_', '@<:@', or '$'
test.y:4.3-8: possibly meant: $[.field] at $1
test.y:5.12-18: invalid reference: '@.field'
test.y:5.12-18: error: invalid reference: '@.field'
test.y:5.13: syntax error after '@', expecting integer, letter, '_', '@<:@', or '$'
]])
AT_DATA([[test.y]],

View File

@@ -191,7 +191,7 @@ AT_CHECK_CONFLICTING_OUTPUT([foo.y],
]])
AT_CHECK_CONFLICTING_OUTPUT([foo.y], [], [-o foo.y],
[[foo.y: refusing to overwrite the input file 'foo.y'
[[foo.y: error: refusing to overwrite the input file 'foo.y'
]], 1)

View File

@@ -153,7 +153,7 @@ start: ;
AT_BISON_OPTION_POPDEFS
AT_BISON_CHECK([[input.y]], [[1]], [],
[[input.y:2.9-21: %define variable 'api.push-pull' is not used
[[input.y:2.9-21: error: %define variable 'api.push-pull' is not used
]])
AT_CLEANUP

View File

@@ -401,15 +401,15 @@ default: 'a' }
]])
AT_BISON_CHECK([input.y], [1], [],
[[input.y:2.1: invalid character: '?'
input.y:3.14: invalid character: '}'
input.y:4.1: invalid character: '%'
input.y:4.2: invalid character: '&'
input.y:5.1-17: invalid directive: '%a-does-not-exist'
input.y:6.1: invalid character: '%'
input.y:6.2: invalid character: '-'
input.y:7.1-8.0: missing '%}' at end of file
input.y:7.1-8.0: syntax error, unexpected %{...%}
[[input.y:2.1: error: invalid character: '?'
input.y:3.14: error: invalid character: '}'
input.y:4.1: error: invalid character: '%'
input.y:4.2: error: invalid character: '&'
input.y:5.1-17: error: invalid directive: '%a-does-not-exist'
input.y:6.1: error: invalid character: '%'
input.y:6.2: error: invalid character: '-'
input.y:7.1-8.0: error: missing '%}' at end of file
input.y:7.1-8.0: error: syntax error, unexpected %{...%}
]])
AT_CLEANUP
@@ -428,7 +428,7 @@ AT_DATA([input.y],
]])
AT_BISON_CHECK([input.y], [1], [],
[[input.y:3.1-15: syntax error, unexpected %initial-action, expecting {...}
[[input.y:3.1-15: error: syntax error, unexpected %initial-action, expecting {...}
]])
AT_CLEANUP

View File

@@ -157,7 +157,7 @@ start: ;
]])
AT_BISON_CHECK([[input.y]], [[1]], [[]],
[[<skeleton default value>: invalid value for %define Boolean variable 'foo'
[[<skeleton default value>: error: invalid value for %define Boolean variable 'foo'
]])
AT_CLEANUP
@@ -193,8 +193,8 @@ start: ;
AT_BISON_CHECK([[input1.y]], [[1]], [[]],
[[input1.y: warning: foow fubar [-Wother]
foow.y:2.3-5.3: warning: foowat fubar [-Wother]
input1.y: fooc fubar
fooc.y:1.1-10.5: foocat fubar
input1.y: error: fooc fubar
fooc.y:1.1-10.5: error: foocat fubar
input1.y: fatal error: foof fubar
]])
@@ -264,7 +264,7 @@ start: ;
]])
AT_BISON_CHECK([[input1.y]], [[1]], [[]],
[[input1.y: non-fatal error
[[input1.y: error: non-fatal error
input1.y: fatal error: M4 should exit immediately here
]])