diff --git a/include/ChangeLog b/include/ChangeLog index 2c5bc8513..550af2e9f 100644 --- a/include/ChangeLog +++ b/include/ChangeLog @@ -1,3 +1,7 @@ +2001-03-31 Kaveh R. Ghazi + + * libiberty.h (alloca): Handle setting C_ALLOCA. + 2001-03-20 Jim Blandy * demangle.h (enum gnu_v3_constructor_kinds, diff --git a/include/libiberty.h b/include/libiberty.h index c7a4d060c..effe5f628 100644 --- a/include/libiberty.h +++ b/include/libiberty.h @@ -238,15 +238,20 @@ extern int vasprintf PARAMS ((char **, const char *, va_list)) /* 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. */ + USE_C_ALLOCA yourself. The canonical autoconf macro C_ALLOCA is + also set/unset as it is often used to indicate whether code needs + to call alloca(0). */ extern PTR C_alloca PARAMS((size_t)); #undef alloca #if GCC_VERSION >= 2000 && !defined USE_C_ALLOCA # define alloca(x) __builtin_alloca(x) +# undef C_ALLOCA #else # define alloca(x) C_alloca(x) # undef USE_C_ALLOCA # define USE_C_ALLOCA 1 +# undef C_ALLOCA +# define C_ALLOCA 1 #endif #ifdef __cplusplus