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

Reply via email to