summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/my_sys.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/include/my_sys.h b/include/my_sys.h
index 8cdc78025f3..61395114a5d 100644
--- a/include/my_sys.h
+++ b/include/my_sys.h
@@ -146,6 +146,15 @@ extern my_string my_strdup(const char *from,myf MyFlags);
#define ORIG_CALLER_INFO /* nothing */
#endif
#ifdef HAVE_ALLOCA
+#ifdef __GNUC__
+/* Remove any previous definitions. */
+#undef alloca
+#define alloca(size) __builtin_alloca (size)
+#else /* xlc */
+#ifdef _AIX
+ #pragma alloca
+#endif /* _AIX */
+#endif /* __GNUC__ */
#define my_alloca(SZ) alloca((size_t) (SZ))
#define my_afree(PTR) {}
#else