#20542 [Bgs->Opn]: 0+0=4G on aix4.3 (64bits)
| From: | rvl at interchain dot nl | Date: | Fri, 22 Nov 2002 08:47:24 +0000 |
| Subject: | #20542 [Bgs->Opn]: 0+0=4G on aix4.3 (64bits) | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-25532@lists.php.net to get a copy of this message | ||
ID: 20542
User updated by: rvl@interchain.nl
Reported By: rvl@interchain.nl
-Status: Bogus
+Status: Open
Bug Type: Math related
Operating System: aix 4.3.3.0
PHP Version: 4.2.3
New Comment:
I am sorry but on this specific platform
<?php echo (0+0); ?> does result in 4294967294, really!
And <?php $x = 0; $x = $x + 0; echo $x; ?> as well.
Previous Comments:
------------------------------------------------------------------------
[2002-11-21 17:25:14] iliaa@php.net
Sorry, but your problem does not imply a bug in PHP itself. For a
list of more appropriate places to ask for help using PHP, please
visit http://www.php.net/support.php as this bug system
is not the
appropriate forum for asking support questions.
Thank you for your interest in PHP.
string cancatination is done using . not , in PHP.
<?php
echo '0+0=' . (0+0) . "\n";
?>
Results in 0 on any platform.
------------------------------------------------------------------------
[2002-11-21 05:45:55] rvl@interchain.nl
Script:
<?
echo '0+0=', 0+0, "\n";
?>
Output of script on php 4.2.3:
0+0=4294967294
which is equal to 2^32-2
(Output of script on php 4.1.2 and 4.0.6:
0+0=4294967296
which is equal to 2^32).
In general, all simple additions and multiplications produce huge
numbers:
0+0=4294967294
0+1=4294967295
1+0=4294967295
1+1=4294967296
0-0=0
0-1=-1
1-0=1
1-1=0
0*0=3.5178585246345E+18
0*1=3.5178585265101E+18
1*0=3.5178585265101E+18
1*1=3.5178585283857E+18
0/1=0
1/1=1
2/1=2
2/2=1
Installation issues
# gcc -v
Reading specs from
/usr/local/lib/gcc-lib/rs6000-ibm-aix4.3.3.0/2.95.3/specs
gcc version 2.95.3 20010315 (release)
# make -v
GNU Make version 3.79.1, by Richard Stallman and Roland McGrath.
Built for rs6000-ibm-aix4.3.3.0
# tar -xf apache_1.3.20.tar
# cd apache_1.3.20
# ./configure --enable-module=most
# cd ..
# tar -xf php-4.2.3.tar
# cd php-4.2.3
# ./configure --without-mysql --with-apache=../apache_1.3.20
--enable-static --with-iodbc=/usr/local --enable-track-vars
# make
# make install
# cd ..
# cd apache_1.3.20
# configure --enable-module=most
--activate-module=src/modules/php4/libphp4.a
# make
# make install
I don't know if it is very relevant but the rs6000 on which aix4.3 is
running
is a 64bits machine. The c program
int main()
{
printf("long=%dbits\n",8*sizeof(long));
return 0;
}
outputs 'long=64bits' when compiled with 'cc -q64', while when
compiled
with 'gcc' it outputs 'long=32bits'.
Thanks very much in advance,
Rein van Vliet
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=20542&edit=1