Convert multiple variable definition warnings to complaints.

* NEWS (2.5): Add a new entry for that change.
* doc/bison.texinfo (Decl Summary): Update %define entry.
(Bison Options): Update -D/--define/-F/--force-define entry.
* src/muscle-tab.c (muscle_percent_define_insert): Implement.
* src/muscle-tab.h (muscle_percent_define_insert): Update
comments.
* tests/input.at (`%define errors'): Update.
(`%define, --define, --force-define'): Update.
(cherry picked from commit e3a33f7c23)
This commit is contained in:
Joel E. Denny
2009-05-23 02:25:28 -04:00
parent de5ab9400a
commit 0b6d43c52f
6 changed files with 62 additions and 35 deletions

View File

@@ -888,7 +888,7 @@ AT_CLEANUP
AT_SETUP([%define errors])
AT_DATA([input.y],
AT_DATA([input-redefined.y],
[[%define var "value1"
%define var "value1"
%define var "value2"
@@ -898,16 +898,21 @@ AT_DATA([input.y],
start: ;
]])
AT_BISON_CHECK([[input.y]], [0], [],
[[input.y:2.9-11: warning: %define variable `var' redefined
input.y:1.9-11: warning: previous definition
input.y:3.10-12: warning: %define variable `var' redefined
input.y:2.9-11: warning: previous definition
input.y:1.9-11: warning: %define variable `var' is not used
input.y:2.9-11: warning: %define variable `var' is not used
input.y:3.10-12: warning: %define variable `var' is not used
input.y:4.9-16: warning: %define variable `special1' is not used
input.y:5.9-16: warning: %define variable `special2' is not used
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
]])
AT_DATA([input-unused.y],
[[%define var "value"
%%
start: ;
]])
AT_BISON_CHECK([[input-unused.y]], [[0]], [],
[[input-unused.y:1.9-11: warning: %define variable `var' is not used
]])
AT_CLEANUP
@@ -924,40 +929,45 @@ AT_DATA([skel.c],
@output(b4_parser_file_name@)@
[var-dd: ]b4_percent_define_get([[var-dd]])[
var-ff: ]b4_percent_define_get([[var-ff]])[
var-dg: ]b4_percent_define_get([[var-dg]])[
var-dfg: ]b4_percent_define_get([[var-dfg]])[
var-fd: ]b4_percent_define_get([[var-fd]])
m4@&t@_divert_pop(0)
]])
AT_DATA([input.y],
[[%define var-dg "gram"
%define var-dfg "gram"
[[%define var-dfg "gram"
%%
start: ;
]])
AT_BISON_CHECK([[-Dvar-dd=cmd-d1 -Dvar-dd=cmd-d2 \
-Fvar-ff=cmd-f1 -Fvar-ff=cmd-f2 \
-Dvar-dg=cmd-d \
-Dvar-dfg=cmd-d -Fvar-dfg=cmd-f \
-Fvar-fd=cmd-f -Dvar-fd=cmd-d \
-Dunused-d -Funused-f \
--skeleton ./skel.c input.y]], [0], [],
[[input.y:1.9-14: warning: %define variable `var-dg' redefined
<command line>:6: warning: previous definition
<command line>:11: warning: %define variable `unused-d' is not used
<command line>:12: warning: %define variable `unused-f' is not used
--skeleton ./skel.c input.y]], [[0]], [],
[[<command line>:10: warning: %define variable `unused-d' is not used
<command line>:11: warning: %define variable `unused-f' is not used
]])
AT_CHECK([[cat input.tab.c]], [[0]],
[[var-dd: cmd-d2
var-ff: cmd-f2
var-dg: gram
var-dfg: cmd-f
var-fd: cmd-d
]])
AT_DATA([input-dg.y],
[[%define var "gram"
%%
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
]])
AT_CLEANUP
## --------------------------- ##