From be3d9d4219cb668d2c03267e220418f9252a6747 Mon Sep 17 00:00:00 2001
From: Akim Demaille <akim@epita.fr>
Date: Tue, 23 Nov 2004 19:56:12 +0000
Subject: [PATCH] 2004-11-23  Akim Demaille  <akim@epita.fr>

	* data/lalr1.cc (YYSTYPE): Define it as is done for C, instead
	of #defining from yystype.
	Don't typedef yystype, C++ does not need it.
	This lets it possible to forward declare it as union.
---
 ChangeLog     |  7 +++++++
 data/lalr1.cc | 14 +++++++-------
 2 files changed, 14 insertions(+), 7 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 98ad13db..915a3b98 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2004-11-23  Akim Demaille  <akim@epita.fr>
+
+	* data/lalr1.cc (YYSTYPE): Define it as is done for C, instead
+	of #defining from yystype.
+	Don't typedef yystype, C++ does not need it.
+	This lets it possible to forward declare it as union.
+
 2004-11-23  Paul Eggert  <eggert@cs.ucla.edu>
 
 	* bootstrap (gnulib_modules): Add extensions.
diff --git a/data/lalr1.cc b/data/lalr1.cc
index 4e9f9cb2..817b3833 100644
--- a/data/lalr1.cc
+++ b/data/lalr1.cc
@@ -164,16 +164,16 @@ b4_syncline([@oline@], [@ofile@])[
 # define YYERROR_VERBOSE ]b4_error_verbose[
 #endif
 
-#ifdef YYSTYPE
-typedef YYSTYPE yystype;
-#else
+#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
 ]m4_ifdef([b4_stype],
 [b4_syncline([b4_stype_line], [b4_filename])
-typedef union b4_stype yystype;
+union YYSTYPE b4_stype;
 /* Line __line__ of lalr1.cc.  */
 b4_syncline([@oline@], [@ofile@])],
-[typedef int yystype;])[
-# define YYSTYPE yystype
+[typedef int YYSTYPE;])[
+# define yystype YYSTYPE /* obsolescent; will be withdrawn */
+# define YYSTYPE_IS_DECLARED 1
+# define YYSTYPE_IS_TRIVIAL 1
 #endif
 
 /* Copy the second part of user declarations.  */
@@ -215,7 +215,7 @@ namespace yy
     typedef ]b4_int_type_for([b4_translate])[ TokenNumberType;
     typedef ]b4_int_type_for([b4_rhs])[       RhsNumberType;
     typedef int StateType;
-    typedef yystype SemanticType;
+    typedef YYSTYPE SemanticType;
     typedef ]b4_location_type[ LocationType;
   };
 }
-- 
2.45.2