OSDN Git Service

merge from gcc
authordj <dj>
Tue, 6 Mar 2001 18:26:32 +0000 (18:26 +0000)
committerdj <dj>
Tue, 6 Mar 2001 18:26:32 +0000 (18:26 +0000)
include/ChangeLog
include/libiberty.h

index 8eb61e6..21ce684 100644 (file)
@@ -1,3 +1,8 @@
+2001-03-06  Zack Weinberg  <zackw@stanford.edu>
+
+       * libiberty.h: Prototype C_alloca; define alloca to either
+       __builtin_alloca or C_alloca as appropriate.
+       
 2001-03-01  John David Anglin  <dave@hiauly1.hia.nrc.ca>
 
        * safe-ctype.h (_sch_test): Cast enum bit to unsigned short int for pcc
index 64d072b..e4fc2af 100644 (file)
@@ -206,6 +206,20 @@ extern int vasprintf PARAMS ((char **, const char *, va_list))
 
 #define ARRAY_SIZE(a) (sizeof (a) / sizeof ((a)[0]))
 
+/* Drastically simplified alloca configurator.  If we're using GCC,
+   we use __builtin_alloca; otherwise we use the C alloca.  The C
+   alloca is always available.  You can override GCC by defining
+   USE_C_ALLOCA yourself.  */
+extern PTR C_alloca PARAMS((size_t));
+#undef alloca
+#if GCC_VERSION >= 2000 && !defined USE_C_ALLOCA
+# define alloca(x) __builtin_alloca(x)
+#else
+# define alloca(x) C_alloca(x)
+# undef USE_C_ALLOCA
+# define USE_C_ALLOCA 1
+#endif
+
 #ifdef __cplusplus
 }
 #endif