bug-bison
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: bison 2.5 on sparc solaris 10


From: Joel E. Denny
Subject: Re: bison 2.5 on sparc solaris 10
Date: Sun, 21 Aug 2011 17:47:38 -0400 (EDT)
User-agent: Alpine 2.00 (DEB 1167 2008-08-23)

Hi Wolfgang,

On Mon, 15 Aug 2011, Wolfgang S. Kechel wrote:

> 217: GNU Cim Grammar: LALR(1)                        FAILED
> (existing.at:780)
> 218: GNU Cim Grammar: IELR(1)                        FAILED
> (existing.at:780)
> 219: GNU Cim Grammar: Canonical LR(1)                FAILED
> (existing.at:780)
> 220: GNU pic (Groff 1.18.1) Grammar: LALR(1)         FAILED
> (existing.at:1401)
> 221: GNU pic (Groff 1.18.1) Grammar: IELR(1)         FAILED
> (existing.at:1401)
> 222: GNU pic (Groff 1.18.1) Grammar: Canonical LR(1) FAILED
> (existing.at:1401)

Thanks.

For every test group, the complaint is:

  "input.c", line 214: zero-sized struct/union

Indeed, each of these test groups is generating an empty union, which is 
not accepted by the ISO C99 grammar and is apparently not portable.  The 
first patch below fixes that.  I pushed it to branch-2.5 and master.

I can get gcc to report that problem by adding the -pedantic option in the 
test suite.  The second patch below adds -pedantic when bison is 
configured with --enable-gcc-warnings, and it fixes another minor test 
suite problem reported by -pedantic.  The third patch fixes a problem it 
reports for data/lalr1.cc on master.  I haven't pushed either of these 
patches yet.  Any objections from anyone?

If I also use -pedantic when compiling bison, I see two problems in 
bison's source.  The first is an assert whose argument is too long for a C 
string.  That's easy enough to work around.  The second problem comes from 
gnulib: bison's src/scan-code.l uses gnulib's c_isdigit, which uses gcc's 
statement expression extension, which also appears in many other places in 
gnulib.  I find that surprising given that one of the purposes of gnulib is 
to improve portability.  Does anyone have advice on this issue?  If not, 
I'll soon ask at bug-gnulib.

> 247: parse-gram.y: LALR = IELR                       ok

In your original report, this test group also failed.  Do you know what 
the problem was?  Maybe you still have the original tests/testsuite.log.

>From 7451638148706f6317975db418cc78e488f420aa Mon Sep 17 00:00:00 2001
From: Joel E. Denny <address@hidden>
Date: Sun, 21 Aug 2011 14:45:03 -0400
Subject: [PATCH 1/2] tests: fix empty unions.

Empty unions are not accepted by the ISO C99 grammar or by at
least some versions of Sun Studio.  Reported by Wolfgang S. Kechel
at
<http://lists.gnu.org/archive/html/bug-bison/2011-08/msg00003.html>.
* NEWS (2.5.1): Document fix.
* THANKS (Wolfgang S. Kechel): Add.
* tests/existing.at (GNU Cim Grammar)
(GNU pic (Groff 1.18.1) Grammar.): Remove empty %union.
---
 ChangeLog         |   12 ++++++++++++
 NEWS              |    2 ++
 THANKS            |    1 +
 tests/existing.at |    6 ++----
 4 files changed, 17 insertions(+), 4 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 0034da1..b1d9ba4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2011-08-21  Joel E. Denny  <address@hidden>
+
+       tests: fix empty unions.
+       Empty unions are not accepted by the ISO C99 grammar or by at
+       least some versions of Sun Studio.  Reported by Wolfgang S. Kechel
+       at
+       <http://lists.gnu.org/archive/html/bug-bison/2011-08/msg00003.html>.
+       * NEWS (2.5.1): Document fix.
+       * THANKS (Wolfgang S. Kechel): Add.
+       * tests/existing.at (GNU Cim Grammar)
+       (GNU pic (Groff 1.18.1) Grammar.): Remove empty %union.
+
 2011-07-10  Joel E. Denny  <address@hidden>
 
        build: avoid YACC typo inherited from Autoconf.
diff --git a/NEWS b/NEWS
index f847988..f4b9769 100644
--- a/NEWS
+++ b/NEWS
@@ -3,6 +3,8 @@ Bison News
 
 * Changes in version 2.5.1 (????-??-??):
 
+** Some portability problems in the test suite have been fixed.
+
 ** Minor improvements have been made to the manual.
 
 * Changes in version 2.5 (2011-05-14):
diff --git a/THANKS b/THANKS
index 7fee37e..8d044c6 100644
--- a/THANKS
+++ b/THANKS
@@ -107,6 +107,7 @@ Tys Lefering              address@hidden
 Vin Shelton               address@hidden
 W.C.A. Wijngaards         address@hidden
 Wayne Green               address@hidden
+Wolfgang S. Kechel        address@hidden
 Wolfram Wagner            address@hidden
 Wwp                       address@hidden
 Zack Weinberg             address@hidden
diff --git a/tests/existing.at b/tests/existing.at
index 64e0b7b..8dce318 100644
--- a/tests/existing.at
+++ b/tests/existing.at
@@ -778,8 +778,7 @@ dnl In the case of the syntax error, the parser recovers, 
so it returns 0.
 # It reported 80 SR && 99 RR conflicts instead of 78/10!!!
 
 AT_TEST_EXISTING_GRAMMAR([[GNU Cim Grammar]],
-[[%union {}
-
+[[
 %token
        HACTIVATE HAFTER /*HAND*/ HARRAY HAT
        HBEFORE HBEGIN HBOOLEAN
@@ -1400,7 +1399,6 @@ State 427 conflicts: 9 shift/reduce, 2 reduce/reduce
 
 AT_TEST_EXISTING_GRAMMAR([[GNU pic (Groff 1.18.1) Grammar]],
 [[%error-verbose
-%union {}
 
 %token LABEL
 %token VARIABLE
@@ -1950,7 +1948,7 @@ dnl without being followed by "of".)
 [[VARIABLE, '=', LABEL, LEFT, DOT_X]],
 
 dnl BISON-STDERR
-[[input.y:471.11-48: warning: rule useless in parser due to conflicts: path: 
ORDINAL LAST object_type relative_path
+[[input.y:470.11-48: warning: rule useless in parser due to conflicts: path: 
ORDINAL LAST object_type relative_path
 ]],
 
 dnl LAST-STATE
-- 
1.7.0.4


>From 5422d56a718805a2470558808355e04182a12d65 Mon Sep 17 00:00:00 2001
From: Joel E. Denny <address@hidden>
Date: Sun, 21 Aug 2011 13:07:16 -0400
Subject: [PATCH 2/2] tests: add -pedantic for --enable-gcc-warnings.

This should help to avoid some portability problems.  For example,
it would have revealed the empty unions fixed by the last patch
* configure.ac (WARN_CFLAGS_TESTS, WARN_CXXFLAGS_TEST): Implement.
* tests/synclines.at (AT_TEST_SYNCLINE): Avoid -pedantic warning
about an empty translation unit.
---
 ChangeLog          |    9 +++++++++
 configure.ac       |    7 +++----
 tests/synclines.at |    1 +
 3 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index b1d9ba4..f1175f8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,14 @@
 2011-08-21  Joel E. Denny  <address@hidden>
 
+       tests: add -pedantic for --enable-gcc-warnings.
+       This should help to avoid some portability problems.  For example,
+       it would have revealed the empty unions fixed by the last patch
+       * configure.ac (WARN_CFLAGS_TESTS, WARN_CXXFLAGS_TEST): Implement.
+       * tests/synclines.at (AT_TEST_SYNCLINE): Avoid -pedantic warning
+       about an empty translation unit.
+
+2011-08-21  Joel E. Denny  <address@hidden>
+
        tests: fix empty unions.
        Empty unions are not accepted by the ISO C99 grammar or by at
        least some versions of Sun Studio.  Reported by Wolfgang S. Kechel
diff --git a/configure.ac b/configure.ac
index 2152c84..f2490c9 100644
--- a/configure.ac
+++ b/configure.ac
@@ -82,10 +82,9 @@ if test "${enableval}" = yes; then
   AC_SUBST([WARN_CFLAGS])
   # Warnings for the test suite only.
   gl_WARN_ADD([-Wundef], [WARN_CFLAGS_TEST])
-  WARN_CXXFLAGS_TEST="$WARN_CXXFLAGS $WARN_CFLAGS_TEST"
-  WARN_CFLAGS_TEST="$WARN_CFLAGS $WARN_CFLAGS_TEST"
-  AC_SUBST([WARN_CXXFLAGS_TEST])
-  AC_SUBST([WARN_CFLAGS_TEST])
+  gl_WARN_ADD([-pedantic], [WARN_CFLAGS_TEST])
+  AC_SUBST([WARN_CXXFLAGS_TEST], ["$WARN_CXXFLAGS $WARN_CFLAGS_TEST"])
+  AC_SUBST([WARN_CFLAGS_TEST], ["$WARN_CFLAGS $WARN_CFLAGS_TEST"])
 fi
 
 BISON_TEST_FOR_WORKING_C_COMPILER
diff --git a/tests/synclines.at b/tests/synclines.at
index cc2a722..42b2a66 100644
--- a/tests/synclines.at
+++ b/tests/synclines.at
@@ -88,6 +88,7 @@ m4_define([AT_TEST_SYNCLINE],
 
 AT_DATA([syncline.c],
 [[#error "1"
+int i; // avoids -pedantic warning about an empty translation unit
 ]])
 
 AT_SYNCLINES_COMPILE([syncline.c])
-- 
1.7.0.4

>From f3bd3f7876b4d4c6d22b9590e1a0938ad342c91f Mon Sep 17 00:00:00 2001
From: Joel E. Denny <address@hidden>
Date: Sun, 21 Aug 2011 17:35:26 -0400
Subject: [PATCH] lalr1.cc: remove trailing comma from enumerator list.

* data/lalr1.cc (yy::parser): Here.  This suppresses a -pedantic
warning.
---
 ChangeLog     |    6 ++++++
 data/lalr1.cc |    2 +-
 2 files changed, 7 insertions(+), 1 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index ced339c..76397fb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
 2011-08-21  Joel E. Denny  <address@hidden>
 
+       lalr1.cc: remove trailing comma from enumerator list.
+       * data/lalr1.cc (yy::parser): Here.  This suppresses a -pedantic
+       warning.
+
+2011-08-21  Joel E. Denny  <address@hidden>
+
        tests: add -pedantic for --enable-gcc-warnings.
        This should help to avoid some portability problems.  For example,
        it would have revealed the empty unions fixed by the last patch
diff --git a/data/lalr1.cc b/data/lalr1.cc
index 37b91ed..cb77025 100644
--- a/data/lalr1.cc
+++ b/data/lalr1.cc
@@ -336,7 +336,7 @@ b4_namespace_close])[
       yyfinal_ = ]b4_final_state_number[, //< Termination state number.
       yyterror_ = 1,
       yyerrcode_ = 256,
-      yyntokens_ = ]b4_tokens_number[,   //< Number of tokens.
+      yyntokens_ = ]b4_tokens_number[    //< Number of tokens.
     };
 
 ]b4_parse_param_vars[
-- 
1.7.0.4




reply via email to

[Prev in Thread] Current Thread [Next in Thread]