derick Sun, 07 Aug 2011 17:36:31 +0000 Revision: http://svn.php.net/viewvc?view=revision&revision=314443
Log: - Fixed bug #55378: binary number literal returns float number though its value is enough small Bug: https://bugs.php.net/55378 (Assigned) binary number literal returns float number though its value is enough small Changed paths: U php/php-src/branches/PHP_5_4/NEWS A php/php-src/branches/PHP_5_4/Zend/tests/binary-32bit.phpt A php/php-src/branches/PHP_5_4/Zend/tests/binary.phpt U php/php-src/branches/PHP_5_4/Zend/zend_language_scanner.c U php/php-src/branches/PHP_5_4/Zend/zend_language_scanner.l A php/php-src/trunk/Zend/tests/binary-32bit.phpt A php/php-src/trunk/Zend/tests/binary.phpt U php/php-src/trunk/Zend/zend_language_scanner.c U php/php-src/trunk/Zend/zend_language_scanner.l
Modified: php/php-src/branches/PHP_5_4/NEWS =================================================================== --- php/php-src/branches/PHP_5_4/NEWS 2011-08-07 17:36:02 UTC (rev 314442) +++ php/php-src/branches/PHP_5_4/NEWS 2011-08-07 17:36:31 UTC (rev 314443) @@ -1,8 +1,14 @@ PHP NEWS ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| ?? ??? 2011, PHP 5.4.0 Beta +- General improvements: + . Turn on html_errors by default again in php.ini-production like it was in + PHP 5.3, but only generate docref links when the docref_root INI setting is + not empty. +- Fixed bug #55378: Binary number literal returns float number though its value + is small enough. (Derick) -4 Aug 2011, PHP 5.4.0 Alpha 3 +04 Aug 2011, PHP 5.4.0 Alpha 3 - Added features: . Short array syntax, see UPGRADING guide for full details (rsky0711 at gmail . com, sebastian.deutsch at 9elements . com, Pierre) Added: php/php-src/branches/PHP_5_4/Zend/tests/binary-32bit.phpt =================================================================== --- php/php-src/branches/PHP_5_4/Zend/tests/binary-32bit.phpt (rev 0) +++ php/php-src/branches/PHP_5_4/Zend/tests/binary-32bit.phpt 2011-08-07 17:36:31 UTC (rev 314443) @@ -0,0 +1,154 @@ +--TEST-- +testing binary literals +--INI-- +precision=14 +--SKIPIF-- +<?php if (PHP_INT_SIZE != 4) die("skip this test is for 32bit platform only"); ?> +--FILE-- +<?php +var_dump(0b1); +var_dump(0b11); +var_dump(0b111); +var_dump(0b1111); +var_dump(0b11111); +var_dump(0b111111); +var_dump(0b1111111); +var_dump(0b11111111); +var_dump(0b111111111); +var_dump(0b1111111111); +var_dump(0b11111111111); +var_dump(0b111111111111); +var_dump(0b1111111111111); +var_dump(0b11111111111111); +var_dump(0b111111111111111); +var_dump(0b1111111111111111); +var_dump(0b11111111111111111); +var_dump(0b111111111111111111); +var_dump(0b1111111111111111111); +var_dump(0b11111111111111111111); +var_dump(0b111111111111111111111); +var_dump(0b1111111111111111111111); +var_dump(0b11111111111111111111111); +var_dump(0b111111111111111111111111); +var_dump(0b1111111111111111111111111); +var_dump(0b11111111111111111111111111); +var_dump(0b111111111111111111111111111); +var_dump(0b1111111111111111111111111111); +var_dump(0b11111111111111111111111111111); +var_dump(0b111111111111111111111111111111); +var_dump(0b1111111111111111111111111111111); +var_dump(0b11111111111111111111111111111111); +var_dump(0b111111111111111111111111111111111); +var_dump(0b1111111111111111111111111111111111); +var_dump(0b11111111111111111111111111111111111); +var_dump(0b111111111111111111111111111111111111); +var_dump(0b1111111111111111111111111111111111111); +var_dump(0b11111111111111111111111111111111111111); +var_dump(0b111111111111111111111111111111111111111); +var_dump(0b1111111111111111111111111111111111111111); +var_dump(0b11111111111111111111111111111111111111111); +var_dump(0b111111111111111111111111111111111111111111); +var_dump(0b1111111111111111111111111111111111111111111); +var_dump(0b11111111111111111111111111111111111111111111); +var_dump(0b111111111111111111111111111111111111111111111); +var_dump(0b1111111111111111111111111111111111111111111111); +var_dump(0b11111111111111111111111111111111111111111111111); +var_dump(0b111111111111111111111111111111111111111111111111); +var_dump(0b1111111111111111111111111111111111111111111111111); +var_dump(0b11111111111111111111111111111111111111111111111111); +var_dump(0b111111111111111111111111111111111111111111111111111); +var_dump(0b1111111111111111111111111111111111111111111111111111); +var_dump(0b11111111111111111111111111111111111111111111111111111); +var_dump(0b111111111111111111111111111111111111111111111111111111); +var_dump(0b1111111111111111111111111111111111111111111111111111111); +var_dump(0b11111111111111111111111111111111111111111111111111111111); +var_dump(0b111111111111111111111111111111111111111111111111111111111); +var_dump(0b1111111111111111111111111111111111111111111111111111111111); +var_dump(0b11111111111111111111111111111111111111111111111111111111111); +var_dump(0b111111111111111111111111111111111111111111111111111111111111); +var_dump(0b1111111111111111111111111111111111111111111111111111111111111); +var_dump(0b11111111111111111111111111111111111111111111111111111111111111); +var_dump(0b111111111111111111111111111111111111111111111111111111111111111); +var_dump(0b1111111111111111111111111111111111111111111111111111111111111111); + +var_dump(-0b1111111111111111111111111111111111111111111111111111111111111111); +var_dump(-0b111111111111111111111111111111111111111111111111111111111111111); +var_dump(-0b11111111111111111111111111111111111111111111111111111111111111); +var_dump(-0b111111111111111111111111111111111); +var_dump(-0b11111111111111111111111111111111); +var_dump(-0b1111111111111111111111111111111); +var_dump(-0b111111111111111111111111111111); +var_dump(-0b1); +--EXPECT-- +int(1) +int(3) +int(7) +int(15) +int(31) +int(63) +int(127) +int(255) +int(511) +int(1023) +int(2047) +int(4095) +int(8191) +int(16383) +int(32767) +int(65535) +int(131071) +int(262143) +int(524287) +int(1048575) +int(2097151) +int(4194303) +int(8388607) +int(16777215) +int(33554431) +int(67108863) +int(134217727) +int(268435455) +int(536870911) +int(1073741823) +int(2147483647) +float(4294967295) +float(8589934591) +float(17179869183) +float(34359738367) +float(68719476735) +float(137438953471) +float(274877906943) +float(549755813887) +float(1099511627775) +float(2199023255551) +float(4398046511103) +float(8796093022207) +float(17592186044415) +float(35184372088831) +float(70368744177663) +float(1.4073748835533E+14) +float(2.8147497671066E+14) +float(5.6294995342131E+14) +float(1.1258999068426E+15) +float(2.2517998136852E+15) +float(4.5035996273705E+15) +float(9.007199254741E+15) +float(1.8014398509482E+16) +float(3.6028797018964E+16) +float(7.2057594037928E+16) +float(1.4411518807586E+17) +float(2.8823037615171E+17) +float(5.7646075230342E+17) +float(1.1529215046068E+18) +float(2.3058430092137E+18) +float(4.6116860184274E+18) +float(9.2233720368548E+18) +float(1.844674407371E+19) +float(-1.844674407371E+19) +float(-9.2233720368548E+18) +float(-4.6116860184274E+18) +float(-8589934591) +float(-4294967295) +int(-2147483647) +int(-1073741823) +int(-1) Added: php/php-src/branches/PHP_5_4/Zend/tests/binary.phpt =================================================================== --- php/php-src/branches/PHP_5_4/Zend/tests/binary.phpt (rev 0) +++ php/php-src/branches/PHP_5_4/Zend/tests/binary.phpt 2011-08-07 17:36:31 UTC (rev 314443) @@ -0,0 +1,154 @@ +--TEST-- +testing binary literals +--INI-- +precision=32 +--SKIPIF-- +<?php if (PHP_INT_SIZE != 8) die("skip this test is for 64bit platform only"); ?> +--FILE-- +<?php +var_dump(0b1); +var_dump(0b11); +var_dump(0b111); +var_dump(0b1111); +var_dump(0b11111); +var_dump(0b111111); +var_dump(0b1111111); +var_dump(0b11111111); +var_dump(0b111111111); +var_dump(0b1111111111); +var_dump(0b11111111111); +var_dump(0b111111111111); +var_dump(0b1111111111111); +var_dump(0b11111111111111); +var_dump(0b111111111111111); +var_dump(0b1111111111111111); +var_dump(0b11111111111111111); +var_dump(0b111111111111111111); +var_dump(0b1111111111111111111); +var_dump(0b11111111111111111111); +var_dump(0b111111111111111111111); +var_dump(0b1111111111111111111111); +var_dump(0b11111111111111111111111); +var_dump(0b111111111111111111111111); +var_dump(0b1111111111111111111111111); +var_dump(0b11111111111111111111111111); +var_dump(0b111111111111111111111111111); +var_dump(0b1111111111111111111111111111); +var_dump(0b11111111111111111111111111111); +var_dump(0b111111111111111111111111111111); +var_dump(0b1111111111111111111111111111111); +var_dump(0b11111111111111111111111111111111); +var_dump(0b111111111111111111111111111111111); +var_dump(0b1111111111111111111111111111111111); +var_dump(0b11111111111111111111111111111111111); +var_dump(0b111111111111111111111111111111111111); +var_dump(0b1111111111111111111111111111111111111); +var_dump(0b11111111111111111111111111111111111111); +var_dump(0b111111111111111111111111111111111111111); +var_dump(0b1111111111111111111111111111111111111111); +var_dump(0b11111111111111111111111111111111111111111); +var_dump(0b111111111111111111111111111111111111111111); +var_dump(0b1111111111111111111111111111111111111111111); +var_dump(0b11111111111111111111111111111111111111111111); +var_dump(0b111111111111111111111111111111111111111111111); +var_dump(0b1111111111111111111111111111111111111111111111); +var_dump(0b11111111111111111111111111111111111111111111111); +var_dump(0b111111111111111111111111111111111111111111111111); +var_dump(0b1111111111111111111111111111111111111111111111111); +var_dump(0b11111111111111111111111111111111111111111111111111); +var_dump(0b111111111111111111111111111111111111111111111111111); +var_dump(0b1111111111111111111111111111111111111111111111111111); +var_dump(0b11111111111111111111111111111111111111111111111111111); +var_dump(0b111111111111111111111111111111111111111111111111111111); +var_dump(0b1111111111111111111111111111111111111111111111111111111); +var_dump(0b11111111111111111111111111111111111111111111111111111111); +var_dump(0b111111111111111111111111111111111111111111111111111111111); +var_dump(0b1111111111111111111111111111111111111111111111111111111111); +var_dump(0b11111111111111111111111111111111111111111111111111111111111); +var_dump(0b111111111111111111111111111111111111111111111111111111111111); +var_dump(0b1111111111111111111111111111111111111111111111111111111111111); +var_dump(0b11111111111111111111111111111111111111111111111111111111111111); +var_dump(0b111111111111111111111111111111111111111111111111111111111111111); +var_dump(0b111111111111111111111111111111111111111111111111111111111111111 + 1); +var_dump(0b1111111111111111111111111111111111111111111111111111111111111111); +var_dump(0b1111111111111111111111111111111111111111111111111111111111111111 + 1); +var_dump(0b11111111111111111111111111111111111111111111111111111111111111111); +var_dump(0b11111111111111111111111111111111111111111111111111111111111111111 + 1); + +var_dump(-0b1111111111111111111111111111111111111111111111111111111111111111); +var_dump(-0b111111111111111111111111111111111111111111111111111111111111111); +var_dump(-0b11111111111111111111111111111111111111111111111111111111111111); +var_dump(-0b1); +--EXPECT-- +int(1) +int(3) +int(7) +int(15) +int(31) +int(63) +int(127) +int(255) +int(511) +int(1023) +int(2047) +int(4095) +int(8191) +int(16383) +int(32767) +int(65535) +int(131071) +int(262143) +int(524287) +int(1048575) +int(2097151) +int(4194303) +int(8388607) +int(16777215) +int(33554431) +int(67108863) +int(134217727) +int(268435455) +int(536870911) +int(1073741823) +int(2147483647) +int(4294967295) +int(8589934591) +int(17179869183) +int(34359738367) +int(68719476735) +int(137438953471) +int(274877906943) +int(549755813887) +int(1099511627775) +int(2199023255551) +int(4398046511103) +int(8796093022207) +int(17592186044415) +int(35184372088831) +int(70368744177663) +int(140737488355327) +int(281474976710655) +int(562949953421311) +int(1125899906842623) +int(2251799813685247) +int(4503599627370495) +int(9007199254740991) +int(18014398509481983) +int(36028797018963967) +int(72057594037927935) +int(144115188075855871) +int(288230376151711743) +int(576460752303423487) +int(1152921504606846975) +int(2305843009213693951) +int(4611686018427387903) +int(9223372036854775807) +float(9223372036854775808) +float(18446744073709549568) +float(18446744073709549568) +float(36893488147419099136) +float(36893488147419099136) +float(-18446744073709549568) +int(-9223372036854775807) +int(-4611686018427387903) +int(-1) Modified: php/php-src/branches/PHP_5_4/Zend/zend_language_scanner.c =================================================================== --- php/php-src/branches/PHP_5_4/Zend/zend_language_scanner.c 2011-08-07 17:36:02 UTC (rev 314442) +++ php/php-src/branches/PHP_5_4/Zend/zend_language_scanner.c 2011-08-07 17:36:31 UTC (rev 314443) @@ -1,4 +1,4 @@ -/* Generated by re2c 0.13.5 on Sun Jul 31 20:09:48 2011 */ +/* Generated by re2c 0.13.5 on Sun Aug 7 18:07:40 2011 */ #line 1 "Zend/zend_language_scanner.l" /* +----------------------------------------------------------------------+ @@ -3292,7 +3292,7 @@ --len; } - if (len < SIZEOF_LONG * 2) { + if (len < SIZEOF_LONG * 8) { zendlval->value.lval = strtol(bin, NULL, 2); zendlval->type = IS_LONG; return T_LNUMBER; Modified: php/php-src/branches/PHP_5_4/Zend/zend_language_scanner.l =================================================================== --- php/php-src/branches/PHP_5_4/Zend/zend_language_scanner.l 2011-08-07 17:36:02 UTC (rev 314442) +++ php/php-src/branches/PHP_5_4/Zend/zend_language_scanner.l 2011-08-07 17:36:31 UTC (rev 314443) @@ -1469,7 +1469,7 @@ --len; } - if (len < SIZEOF_LONG * 2) { + if (len < SIZEOF_LONG * 8) { zendlval->value.lval = strtol(bin, NULL, 2); zendlval->type = IS_LONG; return T_LNUMBER; Added: php/php-src/trunk/Zend/tests/binary-32bit.phpt =================================================================== --- php/php-src/trunk/Zend/tests/binary-32bit.phpt (rev 0) +++ php/php-src/trunk/Zend/tests/binary-32bit.phpt 2011-08-07 17:36:31 UTC (rev 314443) @@ -0,0 +1,154 @@ +--TEST-- +testing binary literals +--INI-- +precision=14 +--SKIPIF-- +<?php if (PHP_INT_SIZE != 4) die("skip this test is for 32bit platform only"); ?> +--FILE-- +<?php +var_dump(0b1); +var_dump(0b11); +var_dump(0b111); +var_dump(0b1111); +var_dump(0b11111); +var_dump(0b111111); +var_dump(0b1111111); +var_dump(0b11111111); +var_dump(0b111111111); +var_dump(0b1111111111); +var_dump(0b11111111111); +var_dump(0b111111111111); +var_dump(0b1111111111111); +var_dump(0b11111111111111); +var_dump(0b111111111111111); +var_dump(0b1111111111111111); +var_dump(0b11111111111111111); +var_dump(0b111111111111111111); +var_dump(0b1111111111111111111); +var_dump(0b11111111111111111111); +var_dump(0b111111111111111111111); +var_dump(0b1111111111111111111111); +var_dump(0b11111111111111111111111); +var_dump(0b111111111111111111111111); +var_dump(0b1111111111111111111111111); +var_dump(0b11111111111111111111111111); +var_dump(0b111111111111111111111111111); +var_dump(0b1111111111111111111111111111); +var_dump(0b11111111111111111111111111111); +var_dump(0b111111111111111111111111111111); +var_dump(0b1111111111111111111111111111111); +var_dump(0b11111111111111111111111111111111); +var_dump(0b111111111111111111111111111111111); +var_dump(0b1111111111111111111111111111111111); +var_dump(0b11111111111111111111111111111111111); +var_dump(0b111111111111111111111111111111111111); +var_dump(0b1111111111111111111111111111111111111); +var_dump(0b11111111111111111111111111111111111111); +var_dump(0b111111111111111111111111111111111111111); +var_dump(0b1111111111111111111111111111111111111111); +var_dump(0b11111111111111111111111111111111111111111); +var_dump(0b111111111111111111111111111111111111111111); +var_dump(0b1111111111111111111111111111111111111111111); +var_dump(0b11111111111111111111111111111111111111111111); +var_dump(0b111111111111111111111111111111111111111111111); +var_dump(0b1111111111111111111111111111111111111111111111); +var_dump(0b11111111111111111111111111111111111111111111111); +var_dump(0b111111111111111111111111111111111111111111111111); +var_dump(0b1111111111111111111111111111111111111111111111111); +var_dump(0b11111111111111111111111111111111111111111111111111); +var_dump(0b111111111111111111111111111111111111111111111111111); +var_dump(0b1111111111111111111111111111111111111111111111111111); +var_dump(0b11111111111111111111111111111111111111111111111111111); +var_dump(0b111111111111111111111111111111111111111111111111111111); +var_dump(0b1111111111111111111111111111111111111111111111111111111); +var_dump(0b11111111111111111111111111111111111111111111111111111111); +var_dump(0b111111111111111111111111111111111111111111111111111111111); +var_dump(0b1111111111111111111111111111111111111111111111111111111111); +var_dump(0b11111111111111111111111111111111111111111111111111111111111); +var_dump(0b111111111111111111111111111111111111111111111111111111111111); +var_dump(0b1111111111111111111111111111111111111111111111111111111111111); +var_dump(0b11111111111111111111111111111111111111111111111111111111111111); +var_dump(0b111111111111111111111111111111111111111111111111111111111111111); +var_dump(0b1111111111111111111111111111111111111111111111111111111111111111); + +var_dump(-0b1111111111111111111111111111111111111111111111111111111111111111); +var_dump(-0b111111111111111111111111111111111111111111111111111111111111111); +var_dump(-0b11111111111111111111111111111111111111111111111111111111111111); +var_dump(-0b111111111111111111111111111111111); +var_dump(-0b11111111111111111111111111111111); +var_dump(-0b1111111111111111111111111111111); +var_dump(-0b111111111111111111111111111111); +var_dump(-0b1); +--EXPECT-- +int(1) +int(3) +int(7) +int(15) +int(31) +int(63) +int(127) +int(255) +int(511) +int(1023) +int(2047) +int(4095) +int(8191) +int(16383) +int(32767) +int(65535) +int(131071) +int(262143) +int(524287) +int(1048575) +int(2097151) +int(4194303) +int(8388607) +int(16777215) +int(33554431) +int(67108863) +int(134217727) +int(268435455) +int(536870911) +int(1073741823) +int(2147483647) +float(4294967295) +float(8589934591) +float(17179869183) +float(34359738367) +float(68719476735) +float(137438953471) +float(274877906943) +float(549755813887) +float(1099511627775) +float(2199023255551) +float(4398046511103) +float(8796093022207) +float(17592186044415) +float(35184372088831) +float(70368744177663) +float(1.4073748835533E+14) +float(2.8147497671066E+14) +float(5.6294995342131E+14) +float(1.1258999068426E+15) +float(2.2517998136852E+15) +float(4.5035996273705E+15) +float(9.007199254741E+15) +float(1.8014398509482E+16) +float(3.6028797018964E+16) +float(7.2057594037928E+16) +float(1.4411518807586E+17) +float(2.8823037615171E+17) +float(5.7646075230342E+17) +float(1.1529215046068E+18) +float(2.3058430092137E+18) +float(4.6116860184274E+18) +float(9.2233720368548E+18) +float(1.844674407371E+19) +float(-1.844674407371E+19) +float(-9.2233720368548E+18) +float(-4.6116860184274E+18) +float(-8589934591) +float(-4294967295) +int(-2147483647) +int(-1073741823) +int(-1) Added: php/php-src/trunk/Zend/tests/binary.phpt =================================================================== --- php/php-src/trunk/Zend/tests/binary.phpt (rev 0) +++ php/php-src/trunk/Zend/tests/binary.phpt 2011-08-07 17:36:31 UTC (rev 314443) @@ -0,0 +1,154 @@ +--TEST-- +testing binary literals +--INI-- +precision=32 +--SKIPIF-- +<?php if (PHP_INT_SIZE != 8) die("skip this test is for 64bit platform only"); ?> +--FILE-- +<?php +var_dump(0b1); +var_dump(0b11); +var_dump(0b111); +var_dump(0b1111); +var_dump(0b11111); +var_dump(0b111111); +var_dump(0b1111111); +var_dump(0b11111111); +var_dump(0b111111111); +var_dump(0b1111111111); +var_dump(0b11111111111); +var_dump(0b111111111111); +var_dump(0b1111111111111); +var_dump(0b11111111111111); +var_dump(0b111111111111111); +var_dump(0b1111111111111111); +var_dump(0b11111111111111111); +var_dump(0b111111111111111111); +var_dump(0b1111111111111111111); +var_dump(0b11111111111111111111); +var_dump(0b111111111111111111111); +var_dump(0b1111111111111111111111); +var_dump(0b11111111111111111111111); +var_dump(0b111111111111111111111111); +var_dump(0b1111111111111111111111111); +var_dump(0b11111111111111111111111111); +var_dump(0b111111111111111111111111111); +var_dump(0b1111111111111111111111111111); +var_dump(0b11111111111111111111111111111); +var_dump(0b111111111111111111111111111111); +var_dump(0b1111111111111111111111111111111); +var_dump(0b11111111111111111111111111111111); +var_dump(0b111111111111111111111111111111111); +var_dump(0b1111111111111111111111111111111111); +var_dump(0b11111111111111111111111111111111111); +var_dump(0b111111111111111111111111111111111111); +var_dump(0b1111111111111111111111111111111111111); +var_dump(0b11111111111111111111111111111111111111); +var_dump(0b111111111111111111111111111111111111111); +var_dump(0b1111111111111111111111111111111111111111); +var_dump(0b11111111111111111111111111111111111111111); +var_dump(0b111111111111111111111111111111111111111111); +var_dump(0b1111111111111111111111111111111111111111111); +var_dump(0b11111111111111111111111111111111111111111111); +var_dump(0b111111111111111111111111111111111111111111111); +var_dump(0b1111111111111111111111111111111111111111111111); +var_dump(0b11111111111111111111111111111111111111111111111); +var_dump(0b111111111111111111111111111111111111111111111111); +var_dump(0b1111111111111111111111111111111111111111111111111); +var_dump(0b11111111111111111111111111111111111111111111111111); +var_dump(0b111111111111111111111111111111111111111111111111111); +var_dump(0b1111111111111111111111111111111111111111111111111111); +var_dump(0b11111111111111111111111111111111111111111111111111111); +var_dump(0b111111111111111111111111111111111111111111111111111111); +var_dump(0b1111111111111111111111111111111111111111111111111111111); +var_dump(0b11111111111111111111111111111111111111111111111111111111); +var_dump(0b111111111111111111111111111111111111111111111111111111111); +var_dump(0b1111111111111111111111111111111111111111111111111111111111); +var_dump(0b11111111111111111111111111111111111111111111111111111111111); +var_dump(0b111111111111111111111111111111111111111111111111111111111111); +var_dump(0b1111111111111111111111111111111111111111111111111111111111111); +var_dump(0b11111111111111111111111111111111111111111111111111111111111111); +var_dump(0b111111111111111111111111111111111111111111111111111111111111111); +var_dump(0b111111111111111111111111111111111111111111111111111111111111111 + 1); +var_dump(0b1111111111111111111111111111111111111111111111111111111111111111); +var_dump(0b1111111111111111111111111111111111111111111111111111111111111111 + 1); +var_dump(0b11111111111111111111111111111111111111111111111111111111111111111); +var_dump(0b11111111111111111111111111111111111111111111111111111111111111111 + 1); + +var_dump(-0b1111111111111111111111111111111111111111111111111111111111111111); +var_dump(-0b111111111111111111111111111111111111111111111111111111111111111); +var_dump(-0b11111111111111111111111111111111111111111111111111111111111111); +var_dump(-0b1); +--EXPECT-- +int(1) +int(3) +int(7) +int(15) +int(31) +int(63) +int(127) +int(255) +int(511) +int(1023) +int(2047) +int(4095) +int(8191) +int(16383) +int(32767) +int(65535) +int(131071) +int(262143) +int(524287) +int(1048575) +int(2097151) +int(4194303) +int(8388607) +int(16777215) +int(33554431) +int(67108863) +int(134217727) +int(268435455) +int(536870911) +int(1073741823) +int(2147483647) +int(4294967295) +int(8589934591) +int(17179869183) +int(34359738367) +int(68719476735) +int(137438953471) +int(274877906943) +int(549755813887) +int(1099511627775) +int(2199023255551) +int(4398046511103) +int(8796093022207) +int(17592186044415) +int(35184372088831) +int(70368744177663) +int(140737488355327) +int(281474976710655) +int(562949953421311) +int(1125899906842623) +int(2251799813685247) +int(4503599627370495) +int(9007199254740991) +int(18014398509481983) +int(36028797018963967) +int(72057594037927935) +int(144115188075855871) +int(288230376151711743) +int(576460752303423487) +int(1152921504606846975) +int(2305843009213693951) +int(4611686018427387903) +int(9223372036854775807) +float(9223372036854775808) +float(18446744073709549568) +float(18446744073709549568) +float(36893488147419099136) +float(36893488147419099136) +float(-18446744073709549568) +int(-9223372036854775807) +int(-4611686018427387903) +int(-1) Modified: php/php-src/trunk/Zend/zend_language_scanner.c =================================================================== --- php/php-src/trunk/Zend/zend_language_scanner.c 2011-08-07 17:36:02 UTC (rev 314442) +++ php/php-src/trunk/Zend/zend_language_scanner.c 2011-08-07 17:36:31 UTC (rev 314443) @@ -1,4 +1,4 @@ -/* Generated by re2c 0.13.5 on Sun Jul 31 20:09:37 2011 */ +/* Generated by re2c 0.13.5 on Sun Aug 7 18:30:41 2011 */ #line 1 "Zend/zend_language_scanner.l" /* +----------------------------------------------------------------------+ @@ -3292,7 +3292,7 @@ --len; } - if (len < SIZEOF_LONG * 2) { + if (len < SIZEOF_LONG * 8) { zendlval->value.lval = strtol(bin, NULL, 2); zendlval->type = IS_LONG; return T_LNUMBER; Modified: php/php-src/trunk/Zend/zend_language_scanner.l =================================================================== --- php/php-src/trunk/Zend/zend_language_scanner.l 2011-08-07 17:36:02 UTC (rev 314442) +++ php/php-src/trunk/Zend/zend_language_scanner.l 2011-08-07 17:36:31 UTC (rev 314443) @@ -1469,7 +1469,7 @@ --len; } - if (len < SIZEOF_LONG * 2) { + if (len < SIZEOF_LONG * 8) { zendlval->value.lval = strtol(bin, NULL, 2); zendlval->type = IS_LONG; return T_LNUMBER;
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php