mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-09 12:23:04 +00:00
Don't declare calloc() and realloc() if not necessary.
This commit is contained in:
@@ -31,6 +31,14 @@
|
||||
|
||||
/* The location of the semantic parser (bison.hairy). */
|
||||
#undef XPFILE1
|
||||
|
||||
/* Define as 1 if realloc must be declared even if <stdlib.h> is
|
||||
included. */
|
||||
#undef NEED_DECLARATION_REALLOC
|
||||
|
||||
/* Define as 1 if calloc must be declared even if <stdlib.h> is
|
||||
included. */
|
||||
#undef NEED_DECLARATION_CALLOC
|
||||
@BOTTOM@
|
||||
|
||||
#if defined(PROTOTYPES) || defined(__cplusplus)
|
||||
|
||||
47
acinclude.m4
47
acinclude.m4
@@ -11,3 +11,50 @@ AC_DEFUN(BISON_DEFINE_FILE, [
|
||||
)`
|
||||
AC_DEFINE_UNQUOTED($1, "$ac_expanded")
|
||||
])
|
||||
|
||||
dnl See whether we need a declaration for a function.
|
||||
dnl BISON_NEED_DECLARATION(FUNCTION [, EXTRA-HEADER-FILES])
|
||||
AC_DEFUN(BISON_NEED_DECLARATION,
|
||||
[AC_MSG_CHECKING([whether $1 must be declared])
|
||||
AC_CACHE_VAL(bison_cv_decl_needed_$1,
|
||||
[AC_TRY_COMPILE([
|
||||
#include <stdio.h>
|
||||
#ifdef HAVE_STRING_H
|
||||
#include <string.h>
|
||||
#else
|
||||
#ifdef HAVE_STRINGS_H
|
||||
#include <strings.h>
|
||||
#endif
|
||||
#endif
|
||||
#ifdef HAVE_STDLIB_H
|
||||
#include <stdlib.h>
|
||||
#endif
|
||||
#ifdef HAVE_UNISTD_H
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
#ifndef HAVE_RINDEX
|
||||
#define rindex strrchr
|
||||
#endif
|
||||
#ifndef HAVE_INDEX
|
||||
#define index strchr
|
||||
#endif
|
||||
$2],
|
||||
[char *(*pfn) = (char *(*)) $1],
|
||||
eval "bison_cv_decl_needed_$1=no", eval "bison_cv_decl_needed_$1=yes")])
|
||||
if eval "test \"`echo '$bison_cv_decl_needed_'$1`\" = yes"; then
|
||||
AC_MSG_RESULT(yes)
|
||||
bison_tr_decl=NEED_DECLARATION_`echo $1 | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
|
||||
AC_DEFINE_UNQUOTED($bison_tr_decl)
|
||||
else
|
||||
AC_MSG_RESULT(no)
|
||||
fi
|
||||
])dnl
|
||||
|
||||
dnl Check multiple functions to see whether each needs a declaration.
|
||||
dnl BISON_NEED_DECLARATIONS(FUNCTION... [, EXTRA-HEADER-FILES])
|
||||
AC_DEFUN(BISON_NEED_DECLARATIONS,
|
||||
[for ac_func in $1
|
||||
do
|
||||
BISON_NEED_DECLARATION($ac_func, $2)
|
||||
done
|
||||
])
|
||||
|
||||
@@ -31,6 +31,7 @@ AM_C_PROTOTYPES
|
||||
dnl Checks for library functions.
|
||||
AC_FUNC_ALLOCA
|
||||
AC_CHECK_FUNCS(mkstemp setlocale)
|
||||
BISON_NEED_DECLARATIONS(calloc realloc)
|
||||
|
||||
AM_GNU_GETTEXT
|
||||
|
||||
|
||||
@@ -22,13 +22,21 @@ Boston, MA 02111-1307, USA. */
|
||||
#include <stdio.h>
|
||||
#include "system.h"
|
||||
|
||||
#ifdef NEED_DECLARATION_CALLOC
|
||||
#if defined (__STDC__) || defined (_MSC_VER)
|
||||
extern void *calloc ();
|
||||
extern void *realloc ();
|
||||
#else
|
||||
extern char *calloc ();
|
||||
#endif
|
||||
#endif /* NEED_DECLARATION_CALLOC */
|
||||
|
||||
#ifdef NEED_DECLARATION_REALLOC
|
||||
#if defined (__STDC__) || defined (_MSC_VER)
|
||||
extern void *realloc ();
|
||||
#else
|
||||
extern char *realloc ();
|
||||
#endif
|
||||
#endif /* NEED_DECLARATION_REALLOC */
|
||||
|
||||
char *xmalloc PARAMS((register unsigned));
|
||||
char *xrealloc PARAMS((register char *, register unsigned));
|
||||
|
||||
Reference in New Issue
Block a user