alloca cannot be a function. #define it to the gcc builtin if possible

gcc makes this mapping by default anyway, but it will be disabled by
-fno-builtin (and presumably by -std=c99 or similar). for the main
program the error will be reported by the linker, and the issue can
easily be fixed, but for dynamic-loaded so files, the error cannot be
detected until dlopen time, at which point it has become very obscure.
This commit is contained in:
Rich Felker 2012-04-09 15:06:58 -04:00
parent 5bd0ab8af6
commit d71d0805f9
1 changed files with 4 additions and 0 deletions

View File

@ -10,6 +10,10 @@ extern "C" {
void *alloca(size_t); void *alloca(size_t);
#ifdef __GNUC__
#define alloca __builtin_alloca
#endif
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif