X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2Falloca_.h;h=dd0b3e98f5465978e7822b6e920e1a3be5279b88;hb=2354d5ead305b61c925e53bcfb73d47de7c53162;hp=b834871b497d4841c27e8dd0c2f8ed2ff2e3393f;hpb=ffdc9a193564452fada6edbf618c901cb9697990;p=gnulib.git diff --git a/lib/alloca_.h b/lib/alloca_.h index b834871b4..dd0b3e98f 100644 --- a/lib/alloca_.h +++ b/lib/alloca_.h @@ -1,30 +1,30 @@ /* Memory allocation on the stack. - Copyright (C) 1995, 1999, 2001-2003 Free Software Foundation, Inc. + + Copyright (C) 1995, 1999, 2001, 2002, 2003, 2004, 2006 Free Software + Foundation, Inc. This program is free software; you can redistribute it and/or modify it - under the terms of the GNU Library General Public License as published + under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. + General Public License for more details. - You should have received a copy of the GNU Library General Public + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -/* When this file is included, it may be preceded only by preprocessor - declarations. Thanks to AIX. Therefore we include it right after - "config.h", not later. */ - -#ifndef _ALLOCA_H -#define _ALLOCA_H +/* Avoid using the symbol _ALLOCA_H here, as Bison assumes _ALLOCA_H + means there is a real alloca function. */ +#ifndef _GNULIB_ALLOCA_H +# define _GNULIB_ALLOCA_H -/* alloca(N) returns a pointer (void* or char*) to N bytes of memory - allocated on the stack, and which will last until the function returns. +/* alloca (N) returns a pointer to N bytes of memory + allocated on the stack, which will last until the function returns. Use of alloca should be avoided: - inside arguments of function calls - undefined behaviour, - in inline functions - the allocation may actually last until the @@ -34,35 +34,21 @@ request, the program just crashes. */ -#ifdef __GNUC__ -# ifndef alloca +#ifndef alloca +# ifdef __GNUC__ # define alloca __builtin_alloca -# endif -#else -# ifdef _MSC_VER +# elif defined _AIX +# define alloca __alloca +# elif defined _MSC_VER # include # define alloca _alloca # else -# if HAVE_ALLOCA_H -# include -# else -# ifdef _AIX - #pragma alloca -# else -# ifdef __hpux /* This section must match that of bison generated files. */ -# ifdef __cplusplus -extern "C" void *alloca (unsigned int); -# else /* not __cplusplus */ -extern void *alloca (); -# endif /* not __cplusplus */ -# else /* not __hpux */ -# ifndef alloca -extern char *alloca (); -# endif -# endif /* __hpux */ -# endif +# include +# ifdef __cplusplus +extern "C" # endif +void *alloca (size_t); # endif #endif -#endif /* _ALLOCA_H */ +#endif /* _GNULIB_ALLOCA_H */