ID:               43487
 Comment by:       oeriksson at mandriva dot com
 Reported By:      jm at wo dot cz
 Status:           Open
 Bug Type:         Strings related
 Operating System: Linux
 PHP Version:      5.2.5
 New Comment:

Update; taken from our bugzilla:

"as peroyvind found, the miscompilation is inside Zend/zend_strtod.c,
and -no-ftree-vrp workaround the bug."


Previous Comments:
------------------------------------------------------------------------

[2008-01-30 19:41:18] oeriksson at mandriva dot com

I think I found the problem. On Mandriva Linux Cooker we are using:

gcc (GCC) 4.2.2 20071128 (prerelease) (4.2.2-2mdv2008.1)
glibc-2.7-1mdv2008.1

If I change the optimization from -O2 to -O0 (-O+zero) the bug goes
away on x86_32.

------------------------------------------------------------------------

[2008-01-28 21:30:37] jm at wo dot cz

The CVS snapshot makes no difference, still getting the same 
incorrect strings.

[EMAIL PROTECTED] ~]$ php -n -r '$f=array(1E-4, 1E-5, 1E-6, 1E-7, 1E-8); 
foreach ($f as $fval) echo $fval, "\n";'
0.0001
1.0E-5
:.0E-7
:.0E-8
1.0E-8
[EMAIL PROTECTED] ~]$ php -v
PHP 5.2.6-dev (cli) (built: Jan 28 2008 16:13:46) 
Copyright (c) 1997-2008 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies

Previous poster suggested a CPU-related issue. I have encountered 
this issue on the following CPUs:

vendor_id       : AuthenticAMD
cpu family      : 15
model           : 5
model name      : AMD Opteron(tm) Processor 248
stepping        : 8
cpu MHz         : 2205.074

vendor_id       : GenuineIntel
cpu family      : 6
model           : 13
model name      : Intel(R) Pentium(R) M processor 1.80GHz
stepping        : 6
cpu MHz         : 1800.000

vendor_id       : AuthenticAMD
cpu family      : 15
model           : 37
model name      : AMD Opteron(tm) Processor 252
stepping        : 1
cpu MHz         : 2606.078

------------------------------------------------------------------------

[2008-01-28 07:59:48] oeriksson at mandriva dot com

I get the same problem, but it seems related to what CPU is used.

http://qa.mandriva.com/show_bug.cgi?id=37171


$ uname -a
Linux foo.nux.se 2.6.24-server-0.rc8.2mdv #1 SMP Wed Jan 23 17:15:33
UTC 2008
i686 Intel(R) Pentium(R) 4 CPU 2.80GHz GNU/Linux

$ php -r "var_dump(11.1/111);"
float(0.0:)


$ uname -a
Linux oe.nux.tld 2.6.24-desktop-0.rc8.2mdv #1 SMP Wed Jan 23 18:12:45
CET 2008
x86_64 AMD Athlon(tm) 64 X2 Dual Core Processor 3800+ GNU/Linux

$ php -r "var_dump(11.1/111);"
float(0.1)


It works with 5.1.6 though.

------------------------------------------------------------------------

[2008-01-26 01:12:23] [EMAIL PROTECTED]

Please try using this CVS snapshot:

  http://snaps.php.net/php5.2-latest.tar.gz
 
For Windows (zip):
 
  http://snaps.php.net/win32/php5.2-win32-latest.zip

For Windows (installer):

  http://snaps.php.net/win32/php5.2-win32-installer-latest.msi



------------------------------------------------------------------------

[2008-01-16 09:20:36] lmalgras at tennaxia dot com

I have the same problem with PHP 5.2.4 on Linux

Reproduce code:
---------------
php -n -r '$f=array(1E-4, 1E-5, 1E-6, 1E-7, 1E-8); foreach($f as $fval)
echo $fval, "\n";'

Expected result:
----------------
0.0001
1.0E-5
1.0E-6
1.0E-7
1.0E-8

Actual result:
--------------
0.0001
1.0E-5
:.0E-7
:.0E-8
1.0E-8

I have test this code on several configurations with the following
results :
PHP 5.2.0 (Linux)  : Actual result
PHP 5.2.2 (Linux)  : Actual result
PHP 5.2.3 (Windows): Actual result

------------------------------------------------------------------------

The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
    http://bugs.php.net/43487

-- 
Edit this bug report at http://bugs.php.net/?id=43487&edit=1

Reply via email to