From f5d704dec1abdeca1180ae0129918f2f0766f4ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Grubbstr=C3=B6m=20=28Grubba=29?= <grubba@grubba.org> Date: Sat, 20 Jan 2001 02:15:44 +0100 Subject: [PATCH] Support for bison 1.25 and earlier. Rev: src/acconfig.h:1.72 Rev: src/configure.in:1.457 Rev: src/language.yacc:1.223 --- src/acconfig.h | 5 ++++- src/configure.in | 46 +++++++++++++++++++++++++++++++++++++++++++++- src/language.yacc | 4 ++-- 3 files changed, 51 insertions(+), 4 deletions(-) diff --git a/src/acconfig.h b/src/acconfig.h index a8480b2010..ed790d42f5 100644 --- a/src/acconfig.h +++ b/src/acconfig.h @@ -1,5 +1,5 @@ /* - * $Id: acconfig.h,v 1.71 2000/12/27 10:38:16 mirar Exp $ + * $Id: acconfig.h,v 1.72 2001/01/20 01:15:44 grubba Exp $ */ #ifndef MACHINE_H #define MACHINE_H @@ -361,6 +361,9 @@ /* Enable tracing of the compiler */ #undef YYDEBUG +/* The type of the last argument to __yy_memcpy (usually unsigned int). */ +#define YY_COUNT_TYPE unsigned int + /* Define if your compiler has a symbol __func__ */ #undef HAVE_WORKING___FUNC__ diff --git a/src/configure.in b/src/configure.in index e73c09c7f1..b4f69a05d8 100644 --- a/src/configure.in +++ b/src/configure.in @@ -1,4 +1,4 @@ -AC_REVISION("$Id: configure.in,v 1.456 2001/01/19 19:45:00 grubba Exp $") +AC_REVISION("$Id: configure.in,v 1.457 2001/01/20 01:15:43 grubba Exp $") AC_INIT(interpret.c) AC_CONFIG_HEADER(machine.h) @@ -1460,6 +1460,50 @@ else AC_MSG_RESULT($YACC) fi +AC_MSG_CHECKING(for the type of the last argument to __yy_memcpy) +AC_CACHE_VAL(pike_cv___yy_memcpy_count_type, [ + pike_cv___yy_memcpy_count_type=unknown + for count_type in "unsigned int" "size_t" "int"; do + cat >conftest.y<<\EOF +%pure_parser +%{ +#include <stdio.h> + +#ifndef __GNUC__ +#ifndef __cplusplus +static void __yy_memcpy(char *to, char *from, $count_type count); +#endif /* !__cplusplus */ +#endif /* !__GNUC__ */ +%} +%% +all: foo bar +foo: 'f' 'o' 'o' { fprintf(stderr, "foo\n"); } ; +bar: 'b' 'a' 'r' ; +%% +int yylex(YYSTYPE *yylval) { return 'f'; } +void yyerror(char *err) { fprintf(stderr, "ERR: %s\n", err); } +EOF + if $YACC -d conftest.y 1>&5 2>&5; then + AC_TRY_LINK([ +#include "y.tab.c" + ], [ + yyparse(); + exit(0); + ], [ + pike_cv___yy_memcpy_count_type=$count_type + break + ]) + fi + done +]) +AC_MSG_RESULT($pike_cv___yy_memcpy_count_type) +if test "x$pike_cv___yy_memcpy_count_type" = "xunknown"; then + AC_MSG_WARN([Defaulting to unsigned int.]) + AC_DEFINE(YY_COUNT_TYPE, [unsigned int]) +else + AC_DEFINE_UNQUOTED(YY_COUNT_TYPE, $pike_cv___yy_memcpy_count_type) +fi + ############################################################################# ## At this point we have found all binaries we are going to use. diff --git a/src/language.yacc b/src/language.yacc index b21711eafa..fa9c016862 100644 --- a/src/language.yacc +++ b/src/language.yacc @@ -110,7 +110,7 @@ /* This is the grammar definition of Pike. */ #include "global.h" -RCSID("$Id: language.yacc,v 1.222 2001/01/16 09:36:30 hubbe Exp $"); +RCSID("$Id: language.yacc,v 1.223 2001/01/20 01:15:44 grubba Exp $"); #ifdef HAVE_MEMORY_H #include <memory.h> #endif @@ -154,7 +154,7 @@ static struct program_state *inherit_state = NULL; */ #ifndef __GNUC__ #ifndef __cplusplus -static void __yy_memcpy(char *to, char *from, unsigned int count); +static void __yy_memcpy(char *to, char *from, YY_COUNT_TYPE count); #endif /* !__cplusplus */ #endif /* !__GNUC__ */ -- GitLab