mirror of
https://github.com/php/php-src.git
synced 2024-09-21 09:57:23 +00:00
Autotools: Fix stack direction check (#15528)
On Solaris 10 and GCC 4.9 check failed with error in config.log: error: missing binary operator before token "(" The __has_builtin must be checked in its own `#ifdef/defined` line above the `#if __has_builtin(....` usage.
This commit is contained in:
parent
5853cdb73d
commit
6b809c8890
14
Zend/Zend.m4
14
Zend/Zend.m4
@ -223,11 +223,17 @@ AC_DEFUN([ZEND_CHECK_STACK_DIRECTION],
|
||||
[AC_RUN_IFELSE([AC_LANG_SOURCE([dnl
|
||||
#include <stdint.h>
|
||||
|
||||
#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;
|
||||
|
Loading…
Reference in New Issue
Block a user