]> granicus.if.org Git - php/commitdiff
Merge branch 'master' into integer_semantics
authorAndrea Faulds <ajf@ajf.me>
Tue, 16 Sep 2014 12:45:06 +0000 (13:45 +0100)
committerAndrea Faulds <ajf@ajf.me>
Tue, 16 Sep 2014 12:45:06 +0000 (13:45 +0100)
Conflicts:
Zend/zend_operators.h

1  2 
Zend/zend_operators.c
Zend/zend_operators.h

Simple merge
index f168af7ce8240e57e828bebef341fbd15cfb2ad6,a50e65d7c2a5f9f6e6a672c5457bea66b5b8aa74..256429dddb457c82dd1de2fb477264501cb9ad4d
@@@ -72,18 -72,11 +72,18 @@@ ZEND_API zend_bool instanceof_function(
  END_EXTERN_C()
  
  #if ZEND_DVAL_TO_LVAL_CAST_OK
- static zend_always_inline long zend_dval_to_lval(double d)
 -# define zend_dval_to_lval(d) ((zend_long) (d))
++static zend_always_inline zend_long zend_dval_to_lval(double d)
 +{
 +    if (EXPECTED(zend_finite(d)) && EXPECTED(!zend_isnan(d))) {
-         return (long)d;
++        return (zend_long)d;
 +    } else {
 +        return 0;
 +    }
 +}
- #elif SIZEOF_LONG == 4
- static zend_always_inline long zend_dval_to_lval(double d)
+ #elif SIZEOF_ZEND_LONG == 4
+ static zend_always_inline zend_long zend_dval_to_lval(double d)
  {
-       if (d > LONG_MAX || d < LONG_MIN) {
+       if (d > ZEND_LONG_MAX || d < ZEND_LONG_MIN) {
                double  two_pow_32 = pow(2., 32.),
                                dmod;
  
                         * to simulate rounding towards 0 of the negative number */
                        dmod = ceil(dmod) + two_pow_32;
                }
-               return (long)(unsigned long)dmod;
+               return (zend_long)(zend_ulong)dmod;
 +      } else if (UNEXPECTED(!zend_finite(d)) || UNEXPECTED(zend_isnan(d))) {
 +              return 0;
        }
-       return (long)d;
+       return (zend_long)d;
  }
  #else
- static zend_always_inline long zend_dval_to_lval(double d)
+ static zend_always_inline zend_long zend_dval_to_lval(double d)
  {
-       /* >= as (double)LONG_MAX is outside signed range */
-       if (d >= LONG_MAX || d < LONG_MIN) {
+       /* >= as (double)ZEND_LONG_MAX is outside signed range */
+       if (d >= ZEND_LONG_MAX || d < ZEND_LONG_MIN) {
                double  two_pow_64 = pow(2., 64.),
                                dmod;
  
                         * fractional part, hence dmod does not have one either */
                        dmod += two_pow_64;
                }
-               return (long)(unsigned long)dmod;
+               return (zend_long)(zend_ulong)dmod;
 +      } else if (UNEXPECTED(!zend_finite(d)) || UNEXPECTED(zend_isnan(d))) {
 +              return 0;
        }
-       return (long)d;
+       return (zend_long)d;
  }
  #endif
  /* }}} */