Re: cvs: ZendEngine2 / zend_strtod.c

"Nuno Lopes" <[email protected]>
Newsgroups gmane.comp.php.cvs.zend
Message-ID <[email protected]>
Do we really want to make this change?.. Volatile completely breaks
compiler optimizations, so I don't think it's worth to sacrifice most
users just because some are using a compiler that miscompiles this
file..

Nuno


On Sun, Jul 27, 2008 at 12:29, Dmitry Stogov <[email protected]> wrote:
> dmitry          Sun Jul 27 11:29:59 2008 UTC
>
>  Modified files:
>    /ZendEngine2        zend_strtod.c
>  Log:
>  Fix for bug #43487 (Wrong conversion of float to string)
>
>
> http://cvs.php.net/viewvc.cgi/ZendEngine2/zend_strtod.c?r1=1.37&r2=1.38&diff_format=u
> Index: ZendEngine2/zend_strtod.c
> diff -u ZendEngine2/zend_strtod.c:1.37 ZendEngine2/zend_strtod.c:1.38
> --- ZendEngine2/zend_strtod.c:1.37      Wed Mar 26 14:23:02 2008
> +++ ZendEngine2/zend_strtod.c   Sun Jul 27 11:29:59 2008
> @@ -89,7 +89,7 @@
>  *     directly -- and assumed always to succeed.
>  */
>
> -/* $Id: zend_strtod.c,v 1.37 2008/03/26 14:23:02 scottmac Exp $ */
> +/* $Id: zend_strtod.c,v 1.38 2008/07/27 11:29:59 dmitry Exp $ */
>
>  #include <zend.h>
>  #include <unicode/utypes.h>
> @@ -991,9 +991,9 @@
>
>  static double ulp (double _x) /* {{{ */
>  {
> -       _double x;
> +       volatile _double x;
>        register Long L;
> -       _double a;
> +       volatile _double a;
>
>        value(x) = _x;
>        L = (word0(x) & Exp_mask) - (P-1)*Exp_msk1;
> @@ -1035,7 +1035,7 @@
>  {
>        ULong *xa, *xa0, w, y, z;
>        int k;
> -       _double d;
> +       volatile _double d;
>  #ifdef VAX
>        ULong d0, d1;
>  #else
> @@ -1101,7 +1101,7 @@
>        Bigint *b;
>        int de, i, k;
>        ULong *x, y, z;
> -       _double d;
> +       volatile _double d;
>  #ifdef VAX
>        ULong d0, d1;
>  #endif
> @@ -1223,7 +1223,7 @@
>
>  static double ratio (Bigint *a, Bigint *b) /* {{{ */
>  {
> -       _double da, db;
> +       volatile _double da, db;
>        int k, ka, kb;
>
>        value(da) = b2d(a, &ka);
> @@ -1492,7 +1492,7 @@
>        Bigint *b, *b1, *delta, *mlo, *mhi, *S, *tmp;
>        double ds;
>        char *s, *s0;
> -       _double d, d2, eps;
> +       volatile _double d, d2, eps;
>
>        value(d) = _d;
>
> @@ -2056,7 +2056,7 @@
>                e, e1, esign, i, j, k, nd, nd0, nf, nz, nz0, sign;
>        CONST char *s, *s0, *s1;
>        double aadj, aadj1, adj;
> -       _double rv, rv0;
> +       volatile _double rv, rv0;
>        Long L;
>        ULong y, z;
>        Bigint *bb, *bb1, *bd, *bd0, *bs, *delta, *tmp;

-- 
Zend Engine CVS Mailing List (http://cvs.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.