bison-patches
[Top][All Lists]
Advanced

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

invalid %define boolean variable


From: Joel E. Denny
Subject: invalid %define boolean variable
Date: Sat, 28 Jul 2007 21:17:43 -0400 (EDT)

I committed this.

Index: ChangeLog
===================================================================
RCS file: /sources/bison/bison/ChangeLog,v
retrieving revision 1.1714
diff -p -u -r1.1714 ChangeLog
--- ChangeLog   28 Jul 2007 04:27:32 -0000      1.1714
+++ ChangeLog   29 Jul 2007 01:06:41 -0000
@@ -1,3 +1,11 @@
+2007-07-28  Joel E. Denny  <address@hidden>
+
+       * src/muscle_tab.c (muscle_percent_define_flag_if): In order to
+       determine whether this function has already complained about an invalid
+       value for a %define boolean variable, don't check whether Bison has
+       ever examined the value.  As written, the check was a tautology.
+       Instead, record and check for this complaint using a separate muscle.
+
 2007-07-27  Joel E. Denny  <address@hidden>
 
        Fix push parsing memory leak reported by Brandon Lucia at
Index: src/muscle_tab.c
===================================================================
RCS file: /sources/bison/bison/src/muscle_tab.c,v
retrieving revision 1.49
diff -p -u -r1.49 muscle_tab.c
--- src/muscle_tab.c    29 May 2007 03:06:34 -0000      1.49
+++ src/muscle_tab.c    29 Jul 2007 01:06:41 -0000
@@ -460,12 +460,15 @@ muscle_percent_define_flag_if (char cons
   char const *name;
   char const *loc_name;
   char const *usage_name;
+  char const *invalid_boolean_name;
   bool result = false;
 
   MUSCLE_USER_NAME_CONVERT (name, "percent_define(", variable, ")");
   MUSCLE_USER_NAME_CONVERT (loc_name, "percent_define_loc(", variable, ")");
   MUSCLE_USER_NAME_CONVERT (usage_name, "percent_define_bison_variables(",
                             variable, ")");
+  MUSCLE_USER_NAME_CONVERT (invalid_boolean_name,
+                            "percent_define_invalid_boolean(", variable, ")");
 
   if (muscle_percent_define_ifdef (variable))
     {
@@ -474,10 +477,13 @@ muscle_percent_define_flag_if (char cons
         result = true;
       else if (0 == strcmp (value, "false"))
         result = false;
-      else if (!muscle_find_const (usage_name))
-        complain_at(muscle_location_decode (loc_name),
-                    _("invalid value for %%define boolean variable `%s'"),
-                    variable);
+      else if (!muscle_find_const (invalid_boolean_name))
+        {
+          muscle_insert (invalid_boolean_name, "");
+          complain_at(muscle_location_decode (loc_name),
+                      _("invalid value for %%define boolean variable `%s'"),
+                      variable);
+        }
       free (value);
     }
   else




reply via email to

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