]> git.saurik.com Git - bison.git/commitdiff
Merge remote-tracking branch 'origin/maint'
authorAkim Demaille <akim@lrde.epita.fr>
Wed, 10 Apr 2013 07:23:20 +0000 (09:23 +0200)
committerAkim Demaille <akim@lrde.epita.fr>
Wed, 10 Apr 2013 08:24:56 +0000 (10:24 +0200)
* origin/maint:
  glr.cc: fix a clang warning
  maint: update copyright years
  build: fix VPATH issue
  build: avoid clang's colored diagnostics in the test suite
  tests: please clang and use ".cc", not ".c", for C++ input
  gnulib: update
  skeletons: avoid empty switch constructs
  lalr1.cc: fix compiler warnings
  yacc.c: do not use __attribute__ unprotected
  tests: style changes

14 files changed:
Makefile.am
NEWS
THANKS
bootstrap
build-aux/local.mk
data/bison.m4
data/c.m4
data/glr.c
data/glr.cc
data/lalr1.cc
data/stack.hh
data/yacc.c
gnulib
tests/glr-regression.at

index 7a752d7d6be0d0df25243882f563729048d14713..339a3c63ae4eb14b0fd645b2a64b0cdc51963101 100644 (file)
@@ -78,11 +78,11 @@ dist-hook: gen-ChangeLog
 
 .PHONY: update-b4-copyright update-package-copyright-year
 update-b4-copyright:
-       find $(srcdir)/data -type f          \
+       $(AM_V_GEN)find $(srcdir)/data -type f          \
          | xargs $(srcdir)/build-aux/$@
        @echo 'warning: src/parse-gram.[hc] may need to be regenerated.'
 update-package-copyright-year:
-       $(srcdir)/build-aux/$@ $(srcdir)/configure.ac
+       $(AM_V_GEN)$(srcdir)/build-aux/$@ $(srcdir)/configure.ac
 
 gen_start_date = 2012-01-16
 .PHONY: gen-ChangeLog
diff --git a/NEWS b/NEWS
index 406521b9a9dfd0ca61761d156f5fa873b1c33623..d7d89d2a86589bb9dcb73364dcd55da9ce306a25 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -569,6 +569,16 @@ GNU Bison NEWS
       ...
     }
 
+* Noteworthy changes in release ?.? (????-??-??) [?]
+
+** Bug fixes
+
+*** Fix compiler attribute portability (yacc.c)
+
+  With locations enabled, __attribute__ was used unprotected.
+
+*** Fix some compiler warnings (lalr1.cc)
+
 * Noteworthy changes in release 2.7 (2012-12-12) [stable]
 
 ** Bug fixes
diff --git a/THANKS b/THANKS
index f30602cb49f49260c6999ab54670f46496e52a6c..a7d1d47ec9c244f9d4dd74dafd2c3e0134a75106 100644 (file)
--- a/THANKS
+++ b/THANKS
@@ -107,6 +107,7 @@ Ralf Wildenhues           Ralf.Wildenhues@gmx.de
 Richard Stallman          rms@gnu.org
 Rob Vermaas               rob.vermaas@gmail.com
 Robert Anisko             anisko_r@epita.fr
+Rob Conde                 rob.conde@ai-solutions.com
 Roland Levillain          roland@lrde.epita.fr
 Satya Kiran Popuri        satyakiran@gmail.com
 Sebastian Setzer          sebastian.setzer.ext@siemens.com
@@ -127,6 +128,7 @@ Tommy Nordgren            tommy.nordgren@chello.se
 Troy A. Johnson           troyj@ecn.purdue.edu
 Tys Lefering              gccbison@gmail.com
 Valentin Tolmer           nitnelave1@gmail.com
+Victor Khomenko           victor.khomenko@newcastle.ac.uk
 Vin Shelton               acs@alumni.princeton.edu
 W.C.A. Wijngaards         wouter@NLnetLabs.nl
 Wayne Green               wayne@infosavvy.com
index bee7765fedcb22debbd1d6c84ff7d68227998ffa..96f1e7625279cba31a61154c261ef53908f6ea43 100755 (executable)
--- a/bootstrap
+++ b/bootstrap
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Print a version string.
-scriptversion=2013-01-20.16; # UTC
+scriptversion=2013-03-08.16; # UTC
 
 # Bootstrap this package from checked-out sources.
 
@@ -630,9 +630,13 @@ esac
 if $bootstrap_sync; then
   cmp -s "$0" "$GNULIB_SRCDIR/build-aux/bootstrap" || {
     echo "$0: updating bootstrap and restarting..."
+    case $(sh -c 'echo "$1"' -- a) in
+      a) ignored=--;;
+      *) ignored=ignored;;
+    esac
     exec sh -c \
       'cp "$1" "$2" && shift && exec "${CONFIG_SHELL-/bin/sh}" "$@"' \
-      -- "$GNULIB_SRCDIR/build-aux/bootstrap" \
+      $ignored "$GNULIB_SRCDIR/build-aux/bootstrap" \
       "$0" "$@" --no-bootstrap-sync
   }
 fi
index c5f87ad281db455fcbe6663845f6693171f6e8b1..8922ea5fec77274a29014aa383b292fd947c2a67 100644 (file)
@@ -1,5 +1,3 @@
-## Makefile for Bison testsuite.
-
 # Copyright (C) 2000-2013 Free Software Foundation, Inc.
 #
 # This program is free software: you can redistribute it and/or modify
index dc12ad2bad9faf192b9a9412c20f0075643b59f6..910cdf26270e79a6cc4a0fddcaa9feb5c116f8e4 100644 (file)
@@ -461,6 +461,24 @@ m4_define([b4_symbol_destructor], [b4_symbol_action([$1], [destructor])])
 m4_define([b4_symbol_printer],    [b4_symbol_action([$1], [printer])])
 
 
+# b4_symbol_actions(KIND, [TYPE = yytype])
+# ----------------------------------------
+# Emit the symbol actions for KIND ("printer" or "destructor").
+# Dispatch on TYPE.
+m4_define([b4_symbol_actions],
+[m4_pushdef([b4_actions_], m4_expand([b4_symbol_foreach([b4_symbol_$1])]))dnl
+m4_ifval(m4_defn([b4_actions_]),
+[switch (m4_default([$2], [yytype]))
+    {
+      m4_defn([b4_actions_])
+      default:
+        break;
+    }dnl
+],
+[YYUSE (m4_default([$2], [yytype]));])dnl
+m4_popdef([b4_actions_])dnl
+])
+
 # b4_symbol_case_(SYMBOL-NUM)
 # ---------------------------
 # Issue a "case NUM" for SYMBOL-NUM.
index edf9991ff8d5415b77e4c5e5edd88efa997b6213..abc769b9c3adfa1483e566ecca61d6d1d19577cc 100644 (file)
--- a/data/c.m4
+++ b/data/c.m4
@@ -199,6 +199,31 @@ m4_define([b4_table_value_equals],
        [(!!(($2) == ($3)))])])
 
 
+## ----------------- ##
+## Compiler issues.  ##
+## ----------------- ##
+
+# b4_attribute_define
+# -------------------
+# Provide portability for __attribute__.
+m4_define([b4_attribute_define],
+[#ifndef __attribute__
+/* This feature is available in gcc versions 2.5 and later.  */
+# if (! defined __GNUC__ || __GNUC__ < 2 \
+      || (__GNUC__ == 2 && __GNUC_MINOR__ < 5))
+#  define __attribute__(Spec) /* empty */
+# endif
+#endif
+
+/* Suppress unused-variable warnings by "using" E.  */
+#if ! defined lint || defined __GNUC__
+# define YYUSE(E) ((void) (E))
+#else
+# define YYUSE(E) /* empty */
+#endif
+])
+
+
 ## ---------##
 ## Values.  ##
 ## ---------##
@@ -421,12 +446,7 @@ m4_ifset([b4_parse_param], [, b4_parse_param]))[
     yymsg = "Deleting";
   YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
 
-  switch (yytype)
-    {
-]b4_symbol_foreach([b4_symbol_destructor])dnl
-[      default:
-        break;
-    }
+  ]b4_symbol_actions([destructor])[
 }]dnl
 ])
 
@@ -459,12 +479,7 @@ m4_if(b4_skeleton, ["yacc.c"],
     YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
 # endif
 ]])dnl
-[  switch (yytype)
-    {
-]b4_symbol_foreach([b4_symbol_printer])dnl
-[      default:
-        break;
-    }
+  b4_symbol_actions([printer])[
 }
 
 
index 7ab3823589e99d7f05fa02aa69e70e2737fec23a..ff70890f334f6b739e94d09d82004ae438ee099f 100644 (file)
@@ -246,13 +246,6 @@ b4_percent_code_get[]dnl
 # endif
 #endif
 
-/* Suppress unused-variable warnings by "using" E.  */
-#ifdef __GNUC__
-# define YYUSE(E) ((void) (E))
-#else
-# define YYUSE(E) /* empty */
-#endif
-
 #ifndef YYFREE
 # define YYFREE free
 #endif
@@ -281,17 +274,7 @@ b4_percent_code_get[]dnl
 # define YYLONGJMP(Env, Val) (longjmp (Env, Val), YYASSERT (0))
 #endif
 
-/*-----------------.
-| GCC extensions.  |
-`-----------------*/
-
-#ifndef __attribute__
-/* This feature is available in gcc versions 2.5 and later.  */
-# if (! defined __GNUC__ || __GNUC__ < 2 \
-      || (__GNUC__ == 2 && __GNUC_MINOR__ < 5))
-#  define __attribute__(Spec) /* empty */
-# endif
-#endif
+]b4_attribute_define[
 
 #ifndef YYASSERT
 # define YYASSERT(Condition) ((void) ((Condition) || (abort (), 0)))
index 0164eda6b439c5ddde10e82bac75b6342f4c32c9..e57308bd82514cbebe68a6457acf4fd7b0d6bb5b 100644 (file)
@@ -187,12 +187,7 @@ m4_pushdef([b4_parse_param], m4_defn([b4_parse_param_orig]))dnl
     std::ostream& yyoutput = debug_stream ();
     std::ostream& yyo = yyoutput;
     YYUSE (yyo);
-    switch (yytype)
-      {
-]b4_symbol_foreach([b4_symbol_printer])dnl
-[        default:
-          break;
-      }
+    ]b4_symbol_actions([printer])[
   }
 
 
index 4eec878abdf9295ec477cf39b6430800803637fb..3294f591106d6cbe53c80c32241e1632990861b9 100644 (file)
@@ -40,7 +40,6 @@ m4_define([b4_integral_parser_table_define],
   };dnl
 ])
 
-
 # b4_symbol_value_template(VAL, [TYPE])
 # -------------------------------------
 # Same as b4_symbol_value, but used in a template method.  It makes
@@ -205,6 +204,10 @@ b4_location_define])])[
     void error (const syntax_error& err);
 
   private:
+    /// This class is not copyable.
+    ]b4_parser_class_name[ (const ]b4_parser_class_name[&);
+    ]b4_parser_class_name[& operator= (const ]b4_parser_class_name[&);
+
     /// State numbers.
     typedef int state_type;
 
@@ -595,13 +598,7 @@ m4_if(b4_prefix, [yy], [],
       YY_SYMBOL_PRINT (yymsg, yysym);]b4_variant_if([], [
 
     // User destructor.
-    symbol_number_type yytype = yysym.type_get ();
-    switch (yytype)
-      {
-]b4_symbol_foreach([b4_symbol_destructor])dnl
-[       default:
-          break;
-      }])[
+    b4_symbol_actions([destructor], [yysym.type_get ()])])[
   }
 
 #if ]b4_api_PREFIX[DEBUG
@@ -616,12 +613,7 @@ m4_if(b4_prefix, [yy], [],
     yyo << (yytype < yyntokens_ ? "token" : "nterm")
         << ' ' << yytname_[yytype] << " ("]b4_locations_if([
         << yysym.location << ": "])[;
-    switch (yytype)
-      {
-]b4_symbol_foreach([b4_symbol_printer])dnl
-[       default:
-          break;
-      }
+    ]b4_symbol_actions([printer])[
     yyo << ')';
   }
 #endif
@@ -741,7 +733,7 @@ b4_dollar_popdef])[]dnl
        yynewstate, since the latter expects the semantical and the
        location values to have been already stored, initialize these
        stacks with a primary value.  */
-    yystack_ = stack_type (0);
+    yystack_.clear ();
     yypush_ (YY_NULL, 0, yyla);
 
     // A new symbol was pushed on the stack.
index 037c212fc6a549462f8a480d5982495ce1eed8bd..aa64d63d842cce563540a8254251dc1135ba9e5c 100644 (file)
@@ -72,6 +72,12 @@ m4_define([b4_stack_define],
         seq_.pop_back ();
     }
 
+    void
+    clear ()
+    {
+      seq_.clear ();
+    }
+
     inline
     typename S::size_type
     size () const
@@ -94,6 +100,8 @@ m4_define([b4_stack_define],
     }
 
   private:
+    stack (const stack&);
+    stack& operator= (const stack&);
     /// The wrapped container.
     S seq_;
   };
index c47114ab4b7ea9c621b3017d46c4a4d28caf9e44..74fadd1d725b02596e7d9c4a2b6e7fd73f7722a4 100644 (file)
@@ -430,12 +430,7 @@ typedef short int yytype_int16;
 # endif
 #endif
 
-/* Suppress unused-variable warnings by "using" E.  */
-#ifdef __GNUC__
-# define YYUSE(E) ((void) (E))
-#else
-# define YYUSE(E) /* empty */
-#endif
+]b4_attribute_define[
 
 #if ]b4_lac_if([[1]], [[! defined yyoverflow || YYERROR_VERBOSE]])[
 
diff --git a/gnulib b/gnulib
index 38e8c084b95e98c4e763df8cfc43a141aa93fc5f..076ac82d1d7f4df54630f1b4917b3c14f227f032 160000 (submodule)
--- a/gnulib
+++ b/gnulib
@@ -1 +1 @@
-Subproject commit 38e8c084b95e98c4e763df8cfc43a141aa93fc5f
+Subproject commit 076ac82d1d7f4df54630f1b4917b3c14f227f032
index 9eb429c77908db9363404a4f840bb300c68074f0..711ab7ec597fc6d588ba0527f4ab85330a30c5c0 100644 (file)
@@ -486,8 +486,8 @@ start:
    ;
 
 %%
-]AT_YYLEX_DEFINE(["a"])[
 ]AT_YYERROR_DEFINE[
+]AT_YYLEX_DEFINE(["a"])[
 ]AT_MAIN_DEFINE[
 ]])
 AT_BISON_OPTION_POPDEFS
@@ -1679,8 +1679,8 @@ start:
 b: 'b';
 d: /* nada.  */;
 %%
-]AT_YYLEX_DEFINE(["abc"])[
 ]AT_YYERROR_DEFINE[
+]AT_YYLEX_DEFINE(["abc"])[
 ]AT_MAIN_DEFINE[
 ]])
 AT_BISON_OPTION_POPDEFS