]> git.saurik.com Git - bison.git/commitdiff
* data/glr.c (YYSTACKEXPANDABLE): Don't define if already defined.
authorPaul Eggert <eggert@cs.ucla.edu>
Thu, 14 Jul 2005 23:15:47 +0000 (23:15 +0000)
committerPaul Eggert <eggert@cs.ucla.edu>
Thu, 14 Jul 2005 23:15:47 +0000 (23:15 +0000)
(yyuserMerge): Provide a default case if b4_mergers is empty.
* tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Define YYSTACKEXPANDABLE.
* tests/glr-regression.at
(Improper handling of embedded actions and dollar(-N) in GLR parsers):
YYSTYPE is char *, not char const *, so that strcpy ($$, ...) works.

ChangeLog
data/glr.c
tests/cxx-type.at
tests/glr-regression.at

index 2b54398358e8a0f452a0c611ac1a329ca5a3f0fa..6343ff28dae639d31c0ab929638aa6eaea6a3549 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,12 @@
 2005-07-14  Paul Eggert  <eggert@cs.ucla.edu>
 
        Fix problems reported by twlevo@xs4all.nl.
+       * data/glr.c (YYSTACKEXPANDABLE): Don't define if already defined.
+       (yyuserMerge): Provide a default case if b4_mergers is empty.
+       * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Define YYSTACKEXPANDABLE.
+       * tests/glr-regression.at
+       (Improper handling of embedded actions and dollar(-N) in GLR parsers):
+       YYSTYPE is char *, not char const *, so that strcpy ($$, ...) works.
        * tests/glr-regression.at (Improper merging of GLR delayed action
        sets): Declare yylex before using it.
        * tests/Makefile.am (maintainer-check-g++): Fix a stray
index 0f38c2d6ff15e6d031f84a9b524e0b6c06e5fca4..f9835adabdfc147a303668e298afb8fc2e404671 100644 (file)
@@ -556,13 +556,14 @@ int yydebug;
    properly redirected to new data. */
 #define YYHEADROOM 2
 
-#if (! defined (YYSTACKEXPANDABLE) \
-     && (! defined (__cplusplus) \
-        || (]b4_location_if([[defined (YYLTYPE_IS_TRIVIAL) && YYLTYPE_IS_TRIVIAL \
-            && ]])[defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL)))
-#define YYSTACKEXPANDABLE 1
-#else
-#define YYSTACKEXPANDABLE 0
+#ifndef YYSTACKEXPANDABLE
+# if (! defined (__cplusplus) \
+      || (]b4_location_if([[defined (YYLTYPE_IS_TRIVIAL) && YYLTYPE_IS_TRIVIAL \
+         && ]])[defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL))
+#  define YYSTACKEXPANDABLE 1
+# else
+#  define YYSTACKEXPANDABLE 0
+# endif
 #endif
 
 #if YYERROR_VERBOSE
@@ -812,6 +813,7 @@ yyuserMerge (int yyn, YYSTYPE* yy0, YYSTYPE* yy1)
   switch (yyn)
     {
       b4_mergers
+      default: break;
     }
 }
 [
index e5b8778c697f5c1dc109e732a0e00cf7f37b944e..f9c093c55581fa3b867fec49471590b80ed0b503 100644 (file)
@@ -38,6 +38,7 @@ $1
 ]m4_bmatch([$2], [stmtMerge],
 [ static YYSTYPE stmtMerge (YYSTYPE x0, YYSTYPE x1);])[
   #define YYINITDEPTH 10
+  #define YYSTACKEXPANDABLE 1
   static char *format (char const *, ...);
   struct YYLTYPE;
 #if YYPURE
index df27f0a948a737475fb367f06c339b7cdcc0cedb..ae15e4cfef2037a692baedceee5f8191dc5a3424 100644 (file)
@@ -121,7 +121,7 @@ AT_DATA_GRAMMAR([glr-regr2a.y],
 /* Reported by S. Eken */
 
 %{
-  #define YYSTYPE char const *
+  #define YYSTYPE char *
   #define yyfalse 0
   #define yytrue 1