diff options
Diffstat (limited to 'include/alloca-conf.h')
-rw-r--r-- | include/alloca-conf.h | 60 |
1 files changed, 40 insertions, 20 deletions
diff --git a/include/alloca-conf.h b/include/alloca-conf.h index 9c3eea3..9ba7795 100644 --- a/include/alloca-conf.h +++ b/include/alloca-conf.h @@ -1,24 +1,44 @@ #include "config.h" -#if defined(__GNUC__) && !defined(C_ALLOCA) -# ifndef alloca -# define alloca __builtin_alloca -# endif -#else /* ! defined (__GNUC__) */ -# ifdef _AIX - #pragma alloca +/* This is a merge of code recommended in the autoconf-2.61 documentation + with that recommended in the autoconf-2.13 documentation, with added + tweaks to heed C_ALLOCA. */ + +#if defined HAVE_ALLOCA_H && !defined C_ALLOCA +# include <alloca.h> +#else +# if defined __GNUC__ && !defined C_ALLOCA +# if !defined alloca +# define alloca __builtin_alloca +# endif +# else +# if defined _AIX +/* Indented so that pre-ansi C compilers will ignore it, rather than + choke on it. Some versions of AIX require this to be the first + thing in the file except for comments and preprocessor directives. */ + #pragma alloca # else -# if defined(HAVE_ALLOCA_H) && !defined(C_ALLOCA) -# include <alloca.h> -# else /* ! defined (HAVE_ALLOCA_H) */ -# ifdef __STDC__ -extern PTR alloca (size_t); -# else /* ! defined (__STDC__) */ -extern PTR alloca (); -# endif /* ! defined (__STDC__) */ -# endif /* ! defined (HAVE_ALLOCA_H) */ -# ifdef _WIN32 -# include <malloc.h> +# if defined _MSC_VER && !defined C_ALLOCA +# include <malloc.h> +# define alloca _alloca +# else +# if !defined alloca +# if defined __STDC__ || defined __hpux +# if defined HAVE_STDDEF_H +# include <stddef.h> +# if defined __cplusplus +extern "C" void *alloca (size_t); +# else +extern void *alloca (size_t); +# endif +# else +extern void *alloca (); +# endif +# else +extern char *alloca (); +# endif +# endif +# endif # endif -# endif /* ! defined (_AIX) */ -#endif /* ! defined (__GNUC__) */ +# endif +#endif |