Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:39415 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 26771 invoked from network); 28 Jul 2008 19:38:22 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 28 Jul 2008 19:38:22 -0000 Authentication-Results: pb1.pair.com header.from=stas@zend.com; sender-id=pass Authentication-Results: pb1.pair.com smtp.mail=stas@zend.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain zend.com designates 212.25.124.163 as permitted sender) X-PHP-List-Original-Sender: stas@zend.com X-Host-Fingerprint: 212.25.124.163 il-gw1.zend.com Windows 2000 SP4, XP SP1 Received: from [212.25.124.163] ([212.25.124.163:16258] helo=il-gw1.zend.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id E1/C6-24886-A202E884 for ; Mon, 28 Jul 2008 15:38:21 -0400 Received: from us-ex1.zend.com ([192.168.16.5]) by il-gw1.zend.com with Microsoft SMTPSVC(6.0.3790.3959); Mon, 28 Jul 2008 22:38:55 +0300 Received: from [192.168.16.110] ([192.168.16.110]) by us-ex1.zend.com with Microsoft SMTPSVC(6.0.3790.3959); Mon, 28 Jul 2008 12:38:52 -0700 Message-ID: <488E204C.9010809@zend.com> Date: Mon, 28 Jul 2008 12:38:52 -0700 Organization: Zend Technologies User-Agent: Thunderbird 2.0.0.16 (Windows/20080708) MIME-Version: 1.0 To: 'PHP Internals' Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 28 Jul 2008 19:38:52.0841 (UTC) FILETIME=[90DB8190:01C8F0E9] Subject: [Fwd: [ZEND-ENGINE-CVS] cvs: ZendEngine2 / zend_strtod.c] From: stas@zend.com (Stanislav Malyshev) 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 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 #include @@ -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