* src/makeint.h (free_alloca): Check for builtin alloca

This commit is contained in:
Paul Smith 2020-12-02 17:29:16 -05:00
parent 950f3d305f
commit 5e234e4048

View File

@ -43,10 +43,18 @@ char *alloca ();
/* Some versions of GCC (e.g., 10.x) set the warn_unused_result attribute on
__builtin_alloca. This causes alloca(0) to fail and is not easily worked
around so make a helper.
around so avoid it via the preprocessor.
See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98055 */
#define free_alloca() do{ void *__p = alloca (0); (void)__p; }while(0)
#if defined (__has_builtin)
# if __has_builtin (__builtin_alloca)
# define free_alloca()
# else
# define free_alloca() alloca (0)
# endif
#else
# define free_alloca() alloca (0)
#endif
/* Disable assert() unless we're a maintainer.
Some asserts are compute-intensive. */