bison-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH 6/9] muscle: minor simplification which uncovers a missing warnin


From: Akim Demaille
Subject: [PATCH 6/9] muscle: minor simplification which uncovers a missing warning
Date: Mon, 15 Apr 2013 10:58:25 +0200

* src/muscle-tab.c (muscle_percent_define_ensure): Discover the virtues
of || to factor conditionals.
* NEWS: As api.pure is no longer flagged as "used" by accident,
we now have warnings for useless definitions.
* tests/calc.at: So remove api.pure settings when running C++ tests,
since C++ skeletons use a pure interface.
---
 NEWS             |  2 ++
 src/muscle-tab.c |  6 ++----
 tests/calc.at    | 19 +++++++++----------
 3 files changed, 13 insertions(+), 14 deletions(-)

diff --git a/NEWS b/NEWS
index 5bc4d31..e06cb77 100644
--- a/NEWS
+++ b/NEWS
@@ -62,6 +62,8 @@ GNU Bison NEWS
   Changes in Bison 2.7 introduced a dependency on FILE and fprintf when
   locations are enabled.  This is fixed.
 
+*** Warnings about useless %pure-parser/%define api.pure are restored
+
 ** Diagnostics reported by Bison
 
   Most of these features were contributed by Théophile Ranquet and Victor
diff --git a/src/muscle-tab.c b/src/muscle-tab.c
index 5e2275e..3f2793c 100644
--- a/src/muscle-tab.c
+++ b/src/muscle-tab.c
@@ -541,10 +541,8 @@ muscle_percent_define_ensure (char const *variable, 
location loc,
 
   /* Don't complain is VARIABLE is already defined, but be sure to set
      its value to VAL.  */
-  if (!muscle_find_const (name))
-    muscle_percent_define_insert (variable, loc, muscle_keyword, val,
-                                  MUSCLE_PERCENT_DEFINE_GRAMMAR_FILE);
-  if (muscle_percent_define_flag_if (variable) != value)
+  if (!muscle_find_const (name)
+      || muscle_percent_define_flag_if (variable) != value)
     muscle_percent_define_insert (variable, loc, muscle_keyword, val,
                                   MUSCLE_PERCENT_DEFINE_GRAMMAR_FILE);
 }
diff --git a/tests/calc.at b/tests/calc.at
index eedfc89..00741f8 100644
--- a/tests/calc.at
+++ b/tests/calc.at
@@ -683,13 +683,13 @@ AT_CHECK_CALC_LALR1_CC([%defines %locations %define 
parse.error verbose %name-pr
 AT_CHECK_CALC_LALR1_CC([%locations %define parse.error verbose %define 
api.prefix "calc" %verbose %yacc])
 AT_CHECK_CALC_LALR1_CC([%locations %define parse.error verbose %debug 
%name-prefix "calc" %verbose %yacc])
 
-AT_CHECK_CALC_LALR1_CC([%locations %pure-parser %define parse.error verbose 
%debug %define api.prefix "calc" %verbose %yacc])
-AT_CHECK_CALC_LALR1_CC([%locations %pure-parser %define parse.error verbose 
%debug %define api.prefix "calc" %define api.token.prefix {TOK_} %verbose 
%yacc])
+AT_CHECK_CALC_LALR1_CC([%locations %define parse.error verbose %debug %define 
api.prefix "calc" %verbose %yacc])
+AT_CHECK_CALC_LALR1_CC([%locations %define parse.error verbose %debug %define 
api.prefix "calc" %define api.token.prefix {TOK_} %verbose %yacc])
 
-AT_CHECK_CALC_LALR1_CC([%defines %locations %pure-parser %define parse.error 
verbose %debug %name-prefix "calc" %verbose %yacc %parse-param {semantic_value 
*result} %parse-param {int *count}])
+AT_CHECK_CALC_LALR1_CC([%defines %locations %define parse.error verbose %debug 
%name-prefix "calc" %verbose %yacc %parse-param {semantic_value *result} 
%parse-param {int *count}])
 
-AT_CHECK_CALC_LALR1_CC([%pure-parser %define parse.error verbose %debug 
%define api.prefix "calc" %verbose %yacc %parse-param {semantic_value *result} 
%parse-param {int *count}])
-AT_CHECK_CALC_LALR1_CC([%defines %locations %pure-parser %define parse.error 
verbose %debug %define api.prefix "calc" %verbose %yacc %parse-param 
{semantic_value *result} %parse-param {int *count}])
+AT_CHECK_CALC_LALR1_CC([%define parse.error verbose %debug %define api.prefix 
"calc" %verbose %yacc %parse-param {semantic_value *result} %parse-param {int 
*count}])
+AT_CHECK_CALC_LALR1_CC([%defines %locations %define parse.error verbose %debug 
%define api.prefix "calc" %verbose %yacc %parse-param {semantic_value *result} 
%parse-param {int *count}])
 
 
 
@@ -716,10 +716,9 @@ AT_CHECK_CALC_GLR_CC([%defines %define parse.error verbose 
%name-prefix "calc" %
 AT_CHECK_CALC_GLR_CC([%define parse.error verbose %define api.prefix "calc" 
%verbose %yacc])
 
 AT_CHECK_CALC_GLR_CC([%debug])
-AT_CHECK_CALC_GLR_CC([%define parse.error verbose %debug %name-prefix "calc" 
%verbose %yacc])
 
-AT_CHECK_CALC_GLR_CC([%pure-parser %define parse.error verbose %debug 
%name-prefix "calc" %verbose %yacc])
-AT_CHECK_CALC_GLR_CC([%pure-parser %define parse.error verbose %debug 
%name-prefix "calc" %define api.token.prefix {TOK_} %verbose %yacc])
+AT_CHECK_CALC_GLR_CC([%define parse.error verbose %debug %name-prefix "calc" 
%verbose %yacc])
+AT_CHECK_CALC_GLR_CC([%define parse.error verbose %debug %name-prefix "calc" 
%define api.token.prefix {TOK_} %verbose %yacc])
 
-AT_CHECK_CALC_GLR_CC([%locations %defines %pure-parser %define parse.error 
verbose %debug %name-prefix "calc" %verbose %yacc %parse-param {semantic_value 
*result} %parse-param {int *count}])
-AT_CHECK_CALC_GLR_CC([%locations %defines %pure-parser %define parse.error 
verbose %debug %define api.prefix "calc" %verbose %yacc %parse-param 
{semantic_value *result} %parse-param {int *count}])
+AT_CHECK_CALC_GLR_CC([%locations %defines %define parse.error verbose %debug 
%name-prefix "calc" %verbose %yacc %parse-param {semantic_value *result} 
%parse-param {int *count}])
+AT_CHECK_CALC_GLR_CC([%locations %defines %define parse.error verbose %debug 
%define api.prefix "calc" %verbose %yacc %parse-param {semantic_value *result} 
%parse-param {int *count}])
-- 
1.8.2




reply via email to

[Prev in Thread] Current Thread [Next in Thread]