On Fri, 22 Jan 2010, tys lefering wrote: > bison compiled without > warnings but make maintainer-check issued these errors: > 239: Dancer %skeleton "lalr1.cc" FAILED > (regression.at:941) > 240: Expecting two tokens ok > 241: Expecting two tokens %glr-parser ok > 242: Expecting two tokens %skeleton "lalr1.cc" FAILED > (regression.at:1037) > attached the testsuite.log file with more info.
> dancer.y:85: error: 'abort' was not declared in this scope > stdout: > ./regression.at:941: exit code was 1, expected 0 > 239. regression.at:941: 239. Dancer %skeleton "lalr1.cc" (regression.at:941): > FAILED (regression.at:941) > expect2.y:53: error: 'abort' was not declared in this scope > stdout: > ./regression.at:1037: exit code was 1, expected 0 > 242. regression.at:1037: 242. Expecting two tokens %skeleton "lalr1.cc" > (regression.at:1037): FAILED (regression.at:1037) > the g++ version installed on suse linux 11.2 is: > g++ (SUSE Linux) 4.4.1 [gcc-4_4-branch revision 150839] With g++ 4.4.1, I see it too with just `make check'. I pushed the patch below to master to fix that. This doesn't happen on branch-2.5 or branch-2.4.2. There, regardless of whether locations are requested, the parser header includes location.hh includes position.hh includes <algorithm>, which grabs the abort definition. On master, location.hh isn't included because locations are not requested. > Thanks for your help. Thank you. >From 95611b56170082a1152416368f519f4392123fdd Mon Sep 17 00:00:00 2001 From: Joel E. Denny <[email protected]> Date: Fri, 22 Jan 2010 14:53:42 -0500 Subject: [PATCH] tests: fix missing include caught by g++ 4.4.1. Reported by Tys Lefering. * HACKING (Release checks): Add note about trying a recent GCC. * tests/regression.at (_AT_DATA_DANCER_Y): For C++, include cstdlib for abort. (_AT_DATA_EXPECT2_Y): Likewise. --- ChangeLog | 9 +++++++++ HACKING | 3 +++ tests/regression.at | 4 ++-- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 6ef4332..6248886 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2010-01-22 Joel E. Denny <[email protected]> + + tests: fix missing include caught by g++ 4.4.1. + Reported by Tys Lefering. + * HACKING (Release checks): Add note about trying a recent GCC. + * tests/regression.at (_AT_DATA_DANCER_Y): For C++, include + cstdlib for abort. + (_AT_DATA_EXPECT2_Y): Likewise. + 2010-01-21 Joel E. Denny <[email protected]> * cfg.mk (gnulib_dir): Assume gnulib is a subdirectory. diff --git a/HACKING b/HACKING index 680ca99..f16d4f6 100644 --- a/HACKING +++ b/HACKING @@ -197,6 +197,9 @@ release: that it does not make sense for glr.c, which should be ANSI, but currently is actually GNU C, nor for lalr1.cc. +- Test with a very recent version of GCC for both C and C++. Testing + with older versions that are still in use is nice too. + * Release Procedure diff --git a/tests/regression.at b/tests/regression.at index c530428..3ef8541 100644 --- a/tests/regression.at +++ b/tests/regression.at @@ -824,7 +824,7 @@ m4_define([_AT_DATA_DANCER_Y], [AT_DATA_GRAMMAR([dancer.y], [%{ static int yylex (AT_LALR1_CC_IF([int *], [void])); -AT_LALR1_CC_IF([], +AT_LALR1_CC_IF([#include <cstdlib>], [#include <stdlib.h> #include <stdio.h> static void yyerror (const char *);]) @@ -952,7 +952,7 @@ m4_define([_AT_DATA_EXPECT2_Y], [AT_DATA_GRAMMAR([expect2.y], [%{ static int yylex (AT_LALR1_CC_IF([int *], [void])); -AT_LALR1_CC_IF([], +AT_LALR1_CC_IF([#include <cstdlib>], [#include <stdio.h> #include <stdlib.h> static void yyerror (const char *);]) -- 1.5.4.3
