]> git.saurik.com Git - bison.git/commitdiff
Merge branch 'origin/maint'
authorAkim Demaille <akim@lrde.epita.fr>
Fri, 14 Dec 2012 12:56:11 +0000 (13:56 +0100)
committerAkim Demaille <akim@lrde.epita.fr>
Fri, 14 Dec 2012 12:58:04 +0000 (13:58 +0100)
* origin/maint:
  maint: credit Wojciech Polak
  maint: post-release administrivia
  version 2.7
  yacc.c: scope reduction
  tests: C90 compliance
  fix C90 compliance
  glr.c: scope reduction
  gnulib: update

Conflicts:
NEWS
gnulib
src/scan-gram.l
src/system.h

13 files changed:
.prev-version
NEWS
THANKS
data/glr.c
data/yacc.c
gnulib
src/graphviz.h
src/ielr.c
src/scan-gram.l
src/system.h
tests/actions.at
tests/glr-regression.at
tests/synclines.at

index 7d99c602b55338f03d95aa9a0f03a747c734cb80..1effb003408e4b9fa74b8896ac710b81b6a2e12d 100644 (file)
@@ -1 +1 @@
-2.6.90
+2.7
diff --git a/NEWS b/NEWS
index 7df5d87ef102132899944518407a5e0c15563343..39c812e0ddcd5d0be245f896063cd7e183c0d087 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -240,17 +240,14 @@ GNU Bison NEWS
   It used to be an error only if used in non GLR mode, _and_ if there are
   reduce/reduce conflicts.
 
-* Noteworthy changes in release ?.? (????-??-??) [?]
-
-** %language is no longer an experimental feature.
-
-  The introduction of this feature, in 2.4, was four years ago. The --language
-  option and the %language directive are no longer experimental.
+* Noteworthy changes in release 2.7 (2012-12-12) [stable]
 
 ** Bug fixes
 
   Warnings about uninitialized yylloc in yyparse have been fixed.
 
+  Restored C90 compliance (yet no report was ever made).
+
 ** Diagnostics are improved
 
 *** Changes in the format of error messages
@@ -748,6 +745,7 @@ GNU Bison NEWS
 
   These features are experimental in this version.  More user feedback
   will help to stabilize them.
+  Contributed by Alex Rozenman.
 
 ** IELR(1) and canonical LR(1):
 
@@ -1264,6 +1262,7 @@ GNU Bison NEWS
 
   The current Java interface is experimental and may evolve.  More user
   feedback will help to stabilize it.
+  Contributed by Paolo Bonzini.
 
 ** %language
 
@@ -1277,6 +1276,7 @@ GNU Bison NEWS
   Bison can now generate an XML report of the LALR(1) automaton using the new
   "--xml" option.  The current XML schema is experimental and may evolve.  More
   user feedback will help to stabilize it.
+  Contributed by Wojciech Polak.
 
 ** The grammar file may now specify the name of the parser header file using
   %defines.  For example:
diff --git a/THANKS b/THANKS
index dbe54791e383d85b72e1553b7a0aa5f02c8f3ca0..ed15fa02e7071567797aecfbd6b3cd67fb5bedd5 100644 (file)
--- a/THANKS
+++ b/THANKS
@@ -127,6 +127,7 @@ Vin Shelton               acs@alumni.princeton.edu
 W.C.A. Wijngaards         wouter@NLnetLabs.nl
 Wayne Green               wayne@infosavvy.com
 Wei Song                  wsong83@gmail.com
+Wojciech Polak            polak@gnu.org
 Wolfgang S. Kechel        wolfgang.kechel@prs.de
 Wolfram Wagner            ww@mpi-sb.mpg.de
 Wwp                       subscript@free.fr
index 1e82e5891ff472b1ce75c9cae3bf8b2cca979f02..6c03af3b0b749de590d7a42061e0c881aad00f2b 100644 (file)
@@ -286,7 +286,7 @@ b4_percent_code_get[]dnl
 # include <setjmp.h>
 # define YYJMP_BUF jmp_buf
 # define YYSETJMP(Env) setjmp (Env)
-// Pacify clang.
+/* Pacify clang.  */
 # define YYLONGJMP(Env, Val) (longjmp (Env, Val), YYASSERT (0))
 #endif
 
@@ -1997,10 +1997,10 @@ yyreportSyntaxError (yyGLRStack* yystackp]b4_user_formals[)
 #if ! YYERROR_VERBOSE
   yyerror (]b4_lyyerror_args[YY_("syntax error"));
 #else
+  {
   yySymbol yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
   size_t yysize0 = yytnamerr (YY_NULL, yytokenName (yytoken));
   size_t yysize = yysize0;
-  size_t yysize1;
   yybool yysize_overflow = yyfalse;
   char* yymsg = YY_NULL;
   enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
@@ -2060,9 +2060,11 @@ yyreportSyntaxError (yyGLRStack* yystackp]b4_user_formals[)
                     break;
                   }
                 yyarg[yycount++] = yytokenName (yyx);
-                yysize1 = yysize + yytnamerr (YY_NULL, yytokenName (yyx));
-                yysize_overflow |= yysize1 < yysize;
-                yysize = yysize1;
+                {
+                  size_t yysz = yysize + yytnamerr (YY_NULL, yytokenName (yyx));
+                  yysize_overflow |= yysz < yysize;
+                  yysize = yysz;
+                }
               }
         }
     }
@@ -2082,9 +2084,11 @@ yyreportSyntaxError (yyGLRStack* yystackp]b4_user_formals[)
 #undef YYCASE_
     }
 
-  yysize1 = yysize + strlen (yyformat);
-  yysize_overflow |= yysize1 < yysize;
-  yysize = yysize1;
+  {
+    size_t yysz = yysize + strlen (yyformat);
+    yysize_overflow |= yysz < yysize;
+    yysize = yysz;
+  }
 
   if (!yysize_overflow)
     yymsg = (char *) YYMALLOC (yysize);
@@ -2114,6 +2118,7 @@ yyreportSyntaxError (yyGLRStack* yystackp]b4_user_formals[)
       yyerror (]b4_lyyerror_args[YY_("syntax error"));
       yyMemoryExhausted (yystackp);
     }
+  }
 #endif /* YYERROR_VERBOSE */
   yynerrs += 1;
 }
index 9bd80280bd7d26cdbe06c46b56d706b10f76b456..7a2587abc8a49e76e83d9c82c1f9116ac58f625a 100644 (file)
@@ -1147,7 +1147,6 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
 {
   YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]);
   YYSIZE_T yysize = yysize0;
-  YYSIZE_T yysize1;
   enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
   /* Internationalized format string. */
   const char *yyformat = YY_NULL;
@@ -1224,11 +1223,13 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
                     break;
                   }
                 yyarg[yycount++] = yytname[yyx];
-                yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]);
-                if (! (yysize <= yysize1
-                       && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
-                  return 2;
-                yysize = yysize1;
+                {
+                  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]);
+                  if (! (yysize <= yysize1
+                         && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
+                    return 2;
+                  yysize = yysize1;
+                }
               }
         }]b4_lac_if([[
 # if ]b4_api_PREFIX[DEBUG
@@ -1252,10 +1253,12 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
 # undef YYCASE_
     }
 
-  yysize1 = yysize + yystrlen (yyformat);
-  if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
-    return 2;
-  yysize = yysize1;
+  {
+    YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
+    if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
+      return 2;
+    yysize = yysize1;
+  }
 
   if (*yymsg_alloc < yysize)
     {
diff --git a/gnulib b/gnulib
index daf7f8c02242c535d596231e2f655109b97fa2bc..4a8c422f3139a9b4fb2c7ffae5aef3bea28bdc65 160000 (submodule)
--- a/gnulib
+++ b/gnulib
@@ -1 +1 @@
-Subproject commit daf7f8c02242c535d596231e2f655109b97fa2bc
+Subproject commit 4a8c422f3139a9b4fb2c7ffae5aef3bea28bdc65
index 371b15c5c288021b5cc1215c5227f37044788838..239cdd21b2e53783b05080a5af16d18e33d954d2 100644 (file)
 
 #include "state.h"
 
-/// Begin a Dot graph.
-/// \param fout   output stream.
+/** Begin a Dot graph.
+ *
+ * \param fout   output stream.
+ */
 void start_graph (FILE *fout);
 
-/// Output a Dot node.
-/// \param id     identifier of the node
-/// \param label  human readable label of the node (no Dot escaping needed).
-/// \param fout   output stream.
+/** Output a Dot node.
+ *
+ * \param id     identifier of the node
+ * \param label  human readable label of the node (no Dot escaping needed).
+ * \param fout   output stream.
+ */
 void output_node (int id, char const *label, FILE *fout);
 
-/// Output a Dot edge.
-/// \param source       id of the source node
-/// \param destination  id of the target node
-/// \param label        human readable label of the edge
-///                     (no Dot escaping needed).  Can be 0.
-/// \param style        Dot style of the edge (e.g., "dotted" or "solid").
-/// \param fout         output stream.
+/** Output a Dot edge.
+ * \param source       id of the source node
+ * \param destination  id of the target node
+ * \param label        human readable label of the edge
+ *                     (no Dot escaping needed).  Can be 0.
+ * \param style        Dot style of the edge (e.g., "dotted" or "solid").
+ * \param fout         output stream.
+ */
 void output_edge (int source, int destination, char const *label,
                   char const *style, FILE *fout);
 
-/// Output a reduction.
-/// \param s            current state
-/// \param reds         the set of reductions
-/// \param fout         output stream.
+/** Output a reduction.
+ * \param s            current state
+ * \param reds         the set of reductions
+ * \param fout         output stream.
+ */
 void output_red (state const *s, reductions const *reds, FILE *fout);
 
-/// End a Dot graph.
-/// \param fout  output stream.
+/** End a Dot graph.
+ *
+ * \param fout  output stream.
+ */
 void finish_graph (FILE *fout);
 
-/// Escape a lookahead token.
-/// \param name         the token.
+/** Escape a lookahead token.
+ *
+ * \param name         the token.
+ */
 char const *escape (char const *name);
 
 #endif /* ! GRAPHVIZ_H_ */
index 39e9cb6695c858eeb2ec8cbe6f3a585c8792cf3b..997ba13a5882b2563054b0ddf01e8dfb440bc1f1 100644 (file)
@@ -758,8 +758,8 @@ ielr_compute_state (bitsetv follow_kernel_items, bitsetv always_follows,
                     if (!bitset_empty_p (lookaheads[i]))
                       break;
                   }
-                // bitset_equal_p uses the size of the first argument, so
-                // lookaheads[i] must be the second argument.
+                /* bitset_equal_p uses the size of the first argument,
+                   so lookaheads[i] must be the second argument.  */
                 else if (!bitset_equal_p ((*this_isocorep)->lookaheads[i],
                                           lookaheads[i]))
                   break;
@@ -1187,8 +1187,8 @@ ielr (void)
   free (to_state);
   if (lr_type == LR_TYPE__CANONICAL_LR)
     {
-      // Reduction lookaheads are computed in ielr_split_states above but are
-      // timed as part of phase 4.
+      /* Reduction lookaheads are computed in ielr_split_states above
+         but are timed as part of phase 4. */
       set_goto_map ();
     }
   else
index e6f42ea934c57a539f659d869100855821032739..d02b26bb618983734e4327ac88ed68762a1ec557 100644 (file)
@@ -1012,7 +1012,7 @@ unexpected_end (boundary start, char const *msgid, char const *token_end)
   loc.start = start;
   loc.end = scanner_cursor;
   token_end = quote (token_end);
-  // Instead of '\'', display "'".
+  /* Instead of '\'', display "'".  */
   if (STREQ (token_end, "'\\''"))
     token_end = "\"'\"";
   complain (&loc, complaint, _(msgid), token_end);
index 987ebe2adb2c5368424fd0f8c14503006276912e..01cce6dcf9b14feecedfa10997d0dfe8ee1fac4c 100644 (file)
@@ -65,7 +65,7 @@
 typedef size_t uintptr_t;
 #endif
 
-// Version mismatch.
+/* Version mismatch. */
 #define EX_MISMATCH 63
 
 /*---------.
index f62c43dd9b2b6213e860619af188249d4b8d6cb6..84e840fad428f1bcbc52b2b25a42bdf53e813c12 100644 (file)
@@ -90,7 +90,7 @@ AT_DATA_GRAMMAR([[input.y]],
 %code
 {
 # include <stdio.h>
-# include <stdlib.h> // getenv
+# include <stdlib.h> /* getenv */
 ]AT_YYERROR_DECLARE[
 ]AT_YYLEX_DECLARE[
 }
@@ -195,7 +195,7 @@ AT_DATA_GRAMMAR([[input.y]],
 %code
 {
 # include <stdio.h>
-# include <stdlib.h> // getenv
+# include <stdlib.h> /* getenv */
 ]AT_YYERROR_DECLARE[
 ]AT_YYLEX_DECLARE[
 }
@@ -223,6 +223,7 @@ main (void)
 
   TEST(7, 2, 0, 2);
   TEST(8, 0, 8, 0);
+  return 0;
 }
 ]])
 
index 1ab922386305597a8e4a53a5f36a0f53e43a8a71..41fc7bc73a3872cd7d6ec975ba1d2b34773139a9 100644 (file)
@@ -195,10 +195,11 @@ yylex (void)
 int
 main (int argc, char **argv)
 {
+  int res;
   input = stdin;
   if (argc == 2 && !(input = fopen (argv[1], "r")))
     return 3;
-  int res = yyparse ();
+  res = yyparse ();
   if (argc == 2 && fclose (input))
     return 4;
   return res;
@@ -327,10 +328,11 @@ int yylex (void)
 int
 main(int argc, char* argv[])
 {
+  int res;
   input = stdin;
   if (argc == 2 && !(input = fopen (argv[1], "r")))
     return 3;
-  int res = yyparse ();
+  res = yyparse ();
   if (argc == 2 && fclose (input))
     return 4;
   return res;
index 2fc74fe0c118693e71eea9e4eca300d7b91ed2e1..6b84719569563e7c6f7dbdbf46b49f3a01a47520 100644 (file)
@@ -127,7 +127,7 @@ AT_BISON_OPTION_PUSHDEFS
 
 AT_DATA([syncline.c],
 [[#error "1"
-int i; // avoids -pedantic warning about an empty translation unit
+int i; /* avoids -pedantic warning about an empty translation unit. */
 ]])
 
 AT_SYNCLINES_COMPILE([syncline.c])