Re: [Fwd: [ZEND-ENGINE-CVS] cvs: ZendEngine2 / zend_strtod.c]

From: Date: Mon, 28 Jul 2008 20:48:48 +0000
Subject: Re: [Fwd: [ZEND-ENGINE-CVS] cvs: ZendEngine2 / zend_strtod.c]
References: 1  Groups: php.internals 
Request: Send a blank email to internals+get-39418@lists.php.net to get a copy of this message
I already expressed my opinion.. If you know what's the buggy gcc version, just fail at configure time if it's present. Nuno On Mon, Jul 28, 2008 at 20:38, Stanislav Malyshev <stas@zend.com> wrote: > Hi! > > I wanted to ask people here about this patch. See history in > http://bugs.php.net/bug.php?id=43487 but basically there's > some gcc out > there that miscompiles zend_strtod.c. We can fix it, probably at some > marginal performance cost, but the question is - should we? It's pre-release > compiler and not in the latest version. > > So can anyone using non-prerelease gcc of any recent version - or non-gcc > compiler even - reproduce this? Should we keep the change or just tell > people "use working compiler"? > > -------- Original Message -------- > Subject: [ZEND-ENGINE-CVS] cvs: ZendEngine2 / zend_strtod.c > Date: Sun, 27 Jul 2008 11:29:59 -0000 > From: Dmitry Stogov <dmitry@php.net> > To: zend-engine-cvs@lists.php.net > > 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 > > > -- > Stanislav Malyshev, Zend Software Architect > stas@zend.com http://www.zend.com/ > (408)253-8829 MSN: stas@zend.com > > -- > PHP Internals - PHP Runtime Development Mailing List > To unsubscribe, visit: http://www.php.net/unsub.php

« previous php.internals (#39418) next »