1
0
mirror of git://git.sv.gnu.org/coreutils.git synced 2026-04-20 10:51:48 +02:00
Files
coreutils/lib/alloca_.h

55 lines
1.8 KiB
C
Raw Normal View History

2003-06-06 20:19:37 +00:00
/* Memory allocation on the stack.
2004-05-21 07:48:44 +00:00
Copyright (C) 1995, 1999, 2001, 2002, 2003, 2004 Free Software
Foundation, Inc.
2003-06-06 20:19:37 +00:00
This program is free software; you can redistribute it and/or modify it
2003-07-10 07:06:25 +00:00
under the terms of the GNU General Public License as published
2003-06-06 20:19:37 +00:00
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
2003-07-10 07:06:25 +00:00
General Public License for more details.
2003-06-06 20:19:37 +00:00
2003-07-10 07:06:25 +00:00
You should have received a copy of the GNU General Public
2003-06-06 20:19:37 +00:00
License along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
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
2004-05-21 07:48:44 +00:00
/* alloca (N) returns a pointer to N bytes of memory
allocated on the stack, which will last until the function returns.
2003-06-06 20:19:37 +00:00
Use of alloca should be avoided:
- inside arguments of function calls - undefined behaviour,
- in inline functions - the allocation may actually last until the
calling function returns,
- for huge N (say, N >= 65536) - you never know how large (or small)
the stack is, and when the stack cannot fulfill the memory allocation
request, the program just crashes.
*/
2004-05-21 07:48:44 +00:00
#ifdef __GNUC__
# define alloca __builtin_alloca
#elif defined _AIX
2004-05-29 22:12:15 +00:00
# define alloca __alloca
2004-05-21 07:48:44 +00:00
#elif defined _MSC_VER
# include <malloc.h>
# define alloca _alloca
#else
# include <stddef.h>
# ifdef __cplusplus
extern "C"
2003-06-06 20:19:37 +00:00
# endif
2004-05-21 07:48:44 +00:00
void *alloca (size_t);
#endif
2003-06-06 20:19:37 +00:00
#endif /* _ALLOCA_H */