Browse Source

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.
Rich Felker 13 years ago
parent
commit
d71d0805f9
1 changed files with 4 additions and 0 deletions
  1. 4 0
      include/alloca.h

+ 4 - 0
include/alloca.h

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