X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2Falloca_.h;h=8a91698c54ada91d9627195a5b13919d3d4fc06b;hb=10cf9b5e371bc4927b2b28354c19b62943dfe95e;hp=86aa0a558821af0987127b80854f79ef20d7e212;hpb=4589d52c7c039b9d9c9d7bec075f00c9d57ee6e1;p=gnulib.git diff --git a/lib/alloca_.h b/lib/alloca_.h index 86aa0a558..8a91698c5 100644 --- a/lib/alloca_.h +++ b/lib/alloca_.h @@ -1,5 +1,7 @@ /* Memory allocation on the stack. - Copyright (C) 1995, 1999, 2001-2003 Free Software Foundation, Inc. + + Copyright (C) 1995, 1999, 2001, 2002, 2003, 2004 Free Software + Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published @@ -21,10 +23,10 @@ "config.h", not later. */ #ifndef _ALLOCA_H -#define _ALLOCA_H +# define _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 @@ -35,34 +37,18 @@ */ #ifdef __GNUC__ -# ifndef alloca -# define alloca __builtin_alloca -# endif +# define alloca __builtin_alloca +#elif defined _AIX +# define alloca __alloca +#elif defined _MSC_VER +# include +# define alloca _alloca #else -# ifdef _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 -# endif +# include +# ifdef __cplusplus +extern "C" # endif +void *alloca (size_t); #endif #endif /* _ALLOCA_H */