# Named references test. -*- Autotest -*-
-# Copyright (C) 2009-2013 Free Software Foundation, Inc.
+# Copyright (C) 2009-2015 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
(2^2)^3 = 64
]])
-AT_BISON_CHECK([-o test.c test.y])
-AT_COMPILE([[test]])
+AT_FULL_COMPILE([[test]])
AT_PARSER_CHECK([./test input.txt], 0, [], [stderr])
AT_BISON_OPTION_POPDEFS
AT_CLEANUP
-#######################################################################
+## ------------------------------------ ##
+## Undefined and ambiguous references. ##
+## ------------------------------------ ##
AT_SETUP([Undefined and ambiguous references])
]])
AT_BISON_CHECK([-fcaret -o test.c test.y], 1, [],
-[[test.y:50.51-60: error: invalid reference: '$<ival>lo9'
+[[test.y:52.51-60: error: invalid reference: '$<ival>lo9'
| exp[x] '+' { $<ival>$ = $x; } [l] exp[r] { $$ = $<ival>lo9 + $r; }
^^^^^^^^^^
-test.y:50.3-68: symbol not found in production: lo9
+test.y:52.3-68: symbol not found in production: lo9
| exp[x] '+' { $<ival>$ = $x; } [l] exp[r] { $$ = $<ival>lo9 + $r; }
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-test.y:51.51-60: warning: misleading reference: '$<ival>exp' [-Wother]
+test.y:53.51-60: warning: misleading reference: '$<ival>exp' [-Wother]
| exp[x] '-' { $<ival>$ = $x; } [l] exp[r] { $$ = $<ival>exp - $r; }
^^^^^^^^^^
-test.y:42.1-3: refers to: $exp at $$
+test.y:44.1-3: refers to: $exp at $$
exp:
^^^
-test.y:51.7: possibly meant: $x, hiding $exp at $1
+test.y:53.7: possibly meant: $x, hiding $exp at $1
| exp[x] '-' { $<ival>$ = $x; } [l] exp[r] { $$ = $<ival>exp - $r; }
^
-test.y:51.41: possibly meant: $r, hiding $exp at $4
+test.y:53.41: possibly meant: $r, hiding $exp at $4
| exp[x] '-' { $<ival>$ = $x; } [l] exp[r] { $$ = $<ival>exp - $r; }
^
-test.y:52.51-52: error: $l of 'exp' has no declared type
+test.y:54.51-52: error: $l of 'exp' has no declared type
| exp[x] '*' { $<ival>$ = $x; } [l] exp[r] { $$ = $l * $r; }
^^
-test.y:55.40-43: error: invalid reference: '$r12'
+test.y:57.40-43: error: invalid reference: '$r12'
| exp[l] '^' exp[r] { $$ = power ($l, $r12); }
^^^^
-test.y:55.3-47: symbol not found in production: r12
+test.y:57.3-47: symbol not found in production: r12
| exp[l] '^' exp[r] { $$ = power ($l, $r12); }
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-test.y:56.29-33: error: invalid reference: '$expo'
+test.y:58.29-33: error: invalid reference: '$expo'
| '(' exp ')' { $$ = $expo; }
^^^^^
-test.y:56.3-46: symbol not found in production: expo
+test.y:58.3-46: symbol not found in production: expo
| '(' exp ')' { $$ = $expo; }
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
]])
AT_BISON_OPTION_POPDEFS
AT_CLEANUP
-#######################################################################
+
+## ----------------------- ##
+## Misleading references. ##
+## ----------------------- ##
AT_SETUP([Misleading references])
AT_DATA_GRAMMAR([test.y],