]> granicus.if.org Git - php/commitdiff
Fixed bug #55644 (Math ops tests fail, diff min int value)
authorDmitry Stogov <dmitry@php.net>
Fri, 16 Sep 2011 07:59:34 +0000 (07:59 +0000)
committerDmitry Stogov <dmitry@php.net>
Fri, 16 Sep 2011 07:59:34 +0000 (07:59 +0000)
Zend/zend_operators.h

index fb0c39abc5b264843ed1c3b640c8c66721a7049f..fae58b837dc645a5e93622ff8869dc06a70762e5 100644 (file)
@@ -659,7 +659,7 @@ static zend_always_inline int fast_sub_function(zval *result, zval *op1, zval *o
 
                        if (UNEXPECTED((Z_LVAL_P(op1) & LONG_SIGN_MASK) != (Z_LVAL_P(op2) & LONG_SIGN_MASK)
                                && (Z_LVAL_P(op1) & LONG_SIGN_MASK) != (Z_LVAL_P(result) & LONG_SIGN_MASK))) {
-                               Z_DVAL_P(result) = (double) Z_LVAL_P(op1) + (double) Z_LVAL_P(op2);
+                               Z_DVAL_P(result) = (double) Z_LVAL_P(op1) - (double) Z_LVAL_P(op2);
                                Z_TYPE_P(result) = IS_DOUBLE;
                        } else {
                                Z_TYPE_P(result) = IS_LONG;