diff options
author | obrien <obrien@FreeBSD.org> | 2003-06-25 18:11:32 +0000 |
---|---|---|
committer | obrien <obrien@FreeBSD.org> | 2003-06-25 18:11:32 +0000 |
commit | ea9527097aee0f726e4f21feda808b52867c6dd0 (patch) | |
tree | eabbc00cc6957f5edccf911879e997b859b13923 /include | |
parent | c078152e6c503b000cc07d865e8520d4082e6f21 (diff) | |
download | FreeBSD-src-ea9527097aee0f726e4f21feda808b52867c6dd0.zip FreeBSD-src-ea9527097aee0f726e4f21feda808b52867c6dd0.tar.gz |
Don't blindly provide alloca() for all compilers -- it is too implementation
dependent. Instead provide one for GCC & Intel's GCC copy and one for lint.
Anyone using any other translator tool needs to look closely at how that tool
can handle alloca.
Diffstat (limited to 'include')
-rw-r--r-- | include/stdlib.h | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/include/stdlib.h b/include/stdlib.h index a348ae1..9b1a1f4 100644 --- a/include/stdlib.h +++ b/include/stdlib.h @@ -222,7 +222,6 @@ extern const char *_malloc_options; extern void (*_malloc_message)(const char *, const char *, const char *, const char *); -#ifndef alloca /* * The alloca() function can't be implemented in C, and on some * platforms it can't be implemented at all as a callable function. @@ -232,11 +231,13 @@ extern void (*_malloc_message)(const char *, const char *, const char *, * programs which use it will fail to link when compiled with non-GNU * compilers. */ -#if defined(__GNUC__) || defined(__INTEL_COMPILER) +#if __GNUC__ >= 2 || defined(__INTEL_COMPILER) +#undef alloca /* some GNU bits try to get cute and define this on their own */ #define alloca(sz) __builtin_alloca(sz) -#else +#elif defined(lint) void *alloca(size_t); -#endif +#error Please add alloca support on all FreeBSD architectures for this compiler. +#else #endif __uint32_t |