From 02b0bc8bb1f3fec949cea616f0092c3f9d8bdb4a Mon Sep 17 00:00:00 2001 From: =?utf8?q?Ond=C5=99ej=20Sur=C3=BD?= Date: Mon, 20 Aug 2018 08:06:53 +0000 Subject: [PATCH] =?utf8?q?Fix=20#76767:=20=E2=80=98asm=E2=80=99=20operand?= =?utf8?q?=20has=20impossible=20constraints=20in=20zend=5Foperators.h?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit We disable assembly code with gcc 4.8 on i386. --- NEWS | 2 ++ Zend/zend_operators.h | 8 ++++---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/NEWS b/NEWS index b53d50f8c1..0b3c7ce0d7 100644 --- a/NEWS +++ b/NEWS @@ -3,6 +3,8 @@ PHP NEWS ?? ??? ????, PHP 7.3.0beta3 - Core: + . Fixed #76767 (‘asm’ operand has impossible constraints in zend_operators.h). + (ondrej) . Fixed bug #76754 (parent private constant in extends class memory leak). (Laruence) . Fixed bug #76752 (Crash in ZEND_COALESCE_SPEC_TMP_HANDLER - assertion in diff --git a/Zend/zend_operators.h b/Zend/zend_operators.h index 5309345c40..5affc906aa 100644 --- a/Zend/zend_operators.h +++ b/Zend/zend_operators.h @@ -471,7 +471,7 @@ ZEND_API void zend_update_current_locale(void); static zend_always_inline void fast_long_increment_function(zval *op1) { -#if defined(HAVE_ASM_GOTO) && defined(__i386__) +#if defined(HAVE_ASM_GOTO) && defined(__i386__) && !(4 == __GNUC__ && 8 == __GNUC_MINOR__) __asm__ goto( "addl $1,(%0)\n\t" "jo %l1\n" @@ -521,7 +521,7 @@ overflow: ZEND_ATTRIBUTE_COLD_LABEL static zend_always_inline void fast_long_decrement_function(zval *op1) { -#if defined(HAVE_ASM_GOTO) && defined(__i386__) +#if defined(HAVE_ASM_GOTO) && defined(__i386__) && !(4 == __GNUC__ && 8 == __GNUC_MINOR__) __asm__ goto( "subl $1,(%0)\n\t" "jo %l1\n" @@ -571,7 +571,7 @@ overflow: ZEND_ATTRIBUTE_COLD_LABEL static zend_always_inline void fast_long_add_function(zval *result, zval *op1, zval *op2) { -#if defined(HAVE_ASM_GOTO) && defined(__i386__) +#if defined(HAVE_ASM_GOTO) && defined(__i386__) && !(4 == __GNUC__ && 8 == __GNUC_MINOR__) __asm__ goto( "movl (%1), %%eax\n\t" "addl (%2), %%eax\n\t" @@ -661,7 +661,7 @@ static zend_always_inline int fast_add_function(zval *result, zval *op1, zval *o static zend_always_inline void fast_long_sub_function(zval *result, zval *op1, zval *op2) { -#if defined(HAVE_ASM_GOTO) && defined(__i386__) +#if defined(HAVE_ASM_GOTO) && defined(__i386__) && !(4 == __GNUC__ && 8 == __GNUC_MINOR__) __asm__ goto( "movl (%1), %%eax\n\t" "subl (%2), %%eax\n\t" -- 2.40.0