]> granicus.if.org Git - php/commitdiff
Fixed bug #64142 (dval to lval different behavior on ppc64)
authorRemi Collet <remi@php.net>
Mon, 11 Feb 2013 08:10:51 +0000 (09:10 +0100)
committerRemi Collet <remi@php.net>
Mon, 11 Feb 2013 08:10:51 +0000 (09:10 +0100)
See discussion on internals
http://marc.info/?t=136042277700003&r=1&w=2

NEWS
Zend/zend_operators.h

diff --git a/NEWS b/NEWS
index f205f3b86c25b2c6db6f5a83182dbec176250f84..4bdd8c3bac9a2141ff1541b2f429dae8dc21efb2 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -2,6 +2,9 @@ PHP                                                                        NEWS
 |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
 ?? ??? 2012, PHP 5.4.13
 
+- Core:
+  . Fixed bug #64142 (dval to lval different behavior on ppc64). (Remi)
+
 - CLI server:
   . Fixed bug #64128 (buit-in web server is broken on ppc64). (Remi)
 
index 02a96dd26e264923da78f3ddd6bda6b1db2e0888..047b92e3bab0b7897c167228db75dd3e34152bd8 100644 (file)
@@ -79,7 +79,8 @@ static zend_always_inline long zend_dval_to_lval(double d)
 #else
 static zend_always_inline long zend_dval_to_lval(double d)
 {
-       if (d > LONG_MAX) {
+       /* >= as (double)LONG_MAX is outside signed range */
+       if (d >= LONG_MAX) {
                return (long)(unsigned long) d;
        }
        return (long) d;