diff --git a/Zend/Zend.m4 b/Zend/Zend.m4 index b7b44fb140872..df75b4c9e9942 100644 --- a/Zend/Zend.m4 +++ b/Zend/Zend.m4 @@ -223,11 +223,17 @@ AC_DEFUN([ZEND_CHECK_STACK_DIRECTION], [AC_RUN_IFELSE([AC_LANG_SOURCE([dnl #include +#ifdef __has_builtin +# if __has_builtin(__builtin_frame_address) +# define builtin_frame_address __builtin_frame_address(0) +# endif +#endif + int (*volatile f)(uintptr_t); int stack_grows_downwards(uintptr_t arg) { -#if defined(__has_builtin) && __has_builtin(__builtin_frame_address) - uintptr_t addr = (uintptr_t)__builtin_frame_address(0); +#ifdef builtin_frame_address + uintptr_t addr = (uintptr_t)builtin_frame_address; #else int local; uintptr_t addr = (uintptr_t)&local; @@ -237,8 +243,8 @@ int stack_grows_downwards(uintptr_t arg) { } int main(void) { -#if defined(__has_builtin) && __has_builtin(__builtin_frame_address) - uintptr_t addr = (uintptr_t)__builtin_frame_address(0); +#ifdef builtin_frame_address + uintptr_t addr = (uintptr_t)builtin_frame_address; #else int local; uintptr_t addr = (uintptr_t)&local;