From: Joel E. Denny <jdenny@ces.clemson.edu>
Date: Tue, 4 Nov 2008 20:03:00 +0000 (-0500)
Subject: Fix user actions without a trailing semicolon.
X-Git-Tag: v2.7.90~1145
X-Git-Url: https://git.saurik.com/bison.git/commitdiff_plain/58bd33b7fc5d13fbd4b61404e1e878ab3b3c16da

Fix user actions without a trailing semicolon.

Reported by Sergei Steshenko at
<http://lists.gnu.org/archive/html/bug-bison/2008-11/msg00001.html>.
* THANKS (Sergei Steshenko): Add.
* src/scan-code.l (SC_RULE_ACTION): Fix it.
* tests/regression.at (Fix user actions without a trailing semicolon):
New test case.
---

diff --git a/ChangeLog b/ChangeLog
index 0e93d7c5..ec5dd705 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2008-11-04  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Fix user actions without a trailing semicolon.
+	Reported by Sergei Steshenko at
+	<http://lists.gnu.org/archive/html/bug-bison/2008-11/msg00001.html>.
+	* THANKS (Sergei Steshenko): Add.
+	* src/scan-code.l (SC_RULE_ACTION): Fix it.
+	* tests/regression.at (Fix user actions without a trailing semicolon):
+	New test case.
+
 2008-11-04  Akim Demaille  <demaille@gostai.com>
 
 	Use b4_copyright_years.
diff --git a/THANKS b/THANKS
index 91459166..761e276f 100644
--- a/THANKS
+++ b/THANKS
@@ -81,6 +81,7 @@ Robert Anisko             anisko_r@epita.fr
 Satya Kiran Popuri        satyakiran@gmail.com
 Sebastien Fricker         sebastien.fricker@gmail.com
 Sebastian Setzer          sebastian.setzer.ext@siemens.com
+Sergei Steshenko          sergstesh@yahoo.com
 Shura                     debil_urod@ngs.ru
 Steve Murphy              murf@parsetree.com
 Tim Josling               tej@melbpc.org.au
diff --git a/src/scan-code.l b/src/scan-code.l
index 630d45d5..71c90768 100644
--- a/src/scan-code.l
+++ b/src/scan-code.l
@@ -1,6 +1,6 @@
 /* Bison Action Scanner                             -*- C -*-
 
-   Copyright (C) 2006, 2007 Free Software Foundation, Inc.
+   Copyright (C) 2006, 2007, 2008 Free Software Foundation, Inc.
 
    This file is part of Bison, the GNU Compiler Compiler.
 
@@ -170,7 +170,7 @@ splice	 (\\[ \f\t\v]*\n)*
 
   "{"  STRING_GROW; ++braces_level;
   "}"  {
-    bool outer_brace = --braces_level < 0;
+    bool outer_brace = --braces_level == 0;
 
     /* As an undocumented Bison extension, append `;' before the last
        brace in braced code, so that the user code can omit trailing
diff --git a/tests/regression.at b/tests/regression.at
index 51bf3f30..6bfc8d09 100644
--- a/tests/regression.at
+++ b/tests/regression.at
@@ -1201,7 +1201,7 @@ AT_CLEANUP
 ## Token number in precedence declaration.  ##
 ## ---------------------------------------- ##
 
-AT_SETUP([[Token number in precedence declaration.]])
+AT_SETUP([[Token number in precedence declaration]])
 
 # POSIX says token numbers can be declared in %left, %right, and %nonassoc, but
 # we lost this in Bison 1.50.
@@ -1255,3 +1255,27 @@ AT_COMPILE([[input]])
 AT_PARSER_CHECK([[./input]])
 
 AT_CLEANUP
+
+
+
+## ----------------------------------------------- ##
+## Fix user actions without a trailing semicolon.  ##
+## ----------------------------------------------- ##
+
+AT_SETUP([[Fix user actions without a trailing semicolon]])
+
+# This feature is undocumented, but we accidentally broke it in 2.3a, and there
+# was a complaint at:
+# <http://lists.gnu.org/archive/html/bug-bison/2008-11/msg00001.html>.
+
+AT_DATA([input.y],
+[[%%
+start: {asdffdsa} ;
+]])
+
+AT_BISON_CHECK([[-o input.c input.y]])
+AT_CHECK([[sed -n '/asdffdsa/s/^ *//p' input.c]], [[0]],
+[[{asdffdsa;}
+]])
+
+AT_CLEANUP