Dmitry Stogov
bdc1ba3e3a
Intriduced ZEND_ACC_INHERITED class flag.
...
It's going to be helpful for static optimisations, when "parent" is not known yet.
2016-11-01 22:56:25 +03:00
Nikita Popov
f8a6df4706
Merge branch 'PHP-7.0' into PHP-7.1
2016-10-08 17:00:56 +02:00
Nikita Popov
2a75f5026a
Fix bug #66773 , #66862
...
This a partial backport of 8754b19
. It
a) fixes the class/function/constant import table confusion in the
namespaced case, and
b) restricts conflict checks to a single file based on a filename
pointer comparison.
It does not fix the issues with filename reuse (e.g. due to eval)
and late-bound classes. This part of the change requires globals
changes.
2016-10-08 17:00:27 +02:00
Nikita Popov
56a7646ab2
Merge branch 'PHP-7.0' into PHP-7.1
2016-09-28 23:22:48 +02:00
Nikita Popov
e520b9e127
Merge branch 'PHP-5.6' into PHP-7.0
2016-09-28 23:22:11 +02:00
Nikita Popov
1f5412982c
Handle resource keys in constexpr arrays
2016-09-28 23:11:02 +02:00
Nikita Popov
40b8105cca
Fix the constant array case as well
2016-09-28 23:05:21 +02:00
Nikita Popov
19f1ff5ad0
Combine code for keyed/unkeyed list()
2016-09-28 21:43:48 +02:00
Nikita Popov
6f9e5684a1
Fix segfault when empty entry in keyed array assignment
2016-09-28 21:43:48 +02:00
Nikita Popov
bd893061d6
Use SEND_USER for CONST|TMP as well
...
Otherwise we're missing the "expected to be a reference, value
given" warning that appears for ordinary calls to call_user_func().
Also update an UPGRADING note with recent changes wrt
call_user_func().
2016-09-25 12:39:23 +02:00
Nikita Popov
30af80610e
Compile intval() etc to casts
2016-09-09 15:45:46 +02:00
Nikita Popov
135f275836
Add ISSET_ISEMPTY_STATIC_PROP to smart branch list
2016-09-06 22:19:34 +02:00
Dmitry Stogov
b5bab0fce8
Merge branch 'PHP-7.0' into PHP-7.1
...
* PHP-7.0:
Fixed bug #72944 (Null pointer deref in zval_delref_p).
2016-08-29 12:07:54 +03:00
Dmitry Stogov
b66039db33
Fixed bug #72944 (Null pointer deref in zval_delref_p).
2016-08-29 12:02:50 +03:00
Nikita Popov
1397f754c8
Fix handling of qualified nullable parameter types
...
compile_typename() can't deal with TYPE_NULLABLE flags, drop it
beforehand.
2016-08-16 12:43:17 +02:00
Nikita Popov
f4d1af7981
Fix build
...
Missed this occurrence...
2016-07-23 00:12:11 +02:00
Nikita Popov
e3e400c983
Fix return from by-ref generators
2016-07-14 15:44:04 +02:00
Xinchen Hui
efdc8ccd52
Merge branch 'PHP-7.0'
...
* PHP-7.0:
Fixed bug #72594 (Calling an earlier instance of an included anonymous class fatals)
Conflicts:
Zend/zend_compile.c
2016-07-14 13:38:27 +08:00
Xinchen Hui
8c5b27e061
Fixed bug #72594 (Calling an earlier instance of an included anonymous class fatals)
2016-07-14 13:36:43 +08:00
Dmitry Stogov
3b8cb2119b
Fixed bug #72347 (VERIFY_RETURN type casts visible in finally)
...
Fixed bug #72216 (Return by reference with finally is not memory safe)
Fixed bug #72215 (Wrong return value if var modified in finally)
2016-07-13 15:08:28 +03:00
Xinchen Hui
d77a8b052b
This became unnecessary after #72543 is fixed
2016-07-07 15:25:27 +08:00
Dmitry Stogov
fbca255cd0
Fixed bug #71539 (Memory error on $arr[$a] =& $arr[$b] if RHS rehashes)
2016-07-07 00:59:44 +03:00
Nikita Popov
ab304579ff
Forbid use of array() in nested destructuring
...
Previously array() was only forbidden on the outermost level.
2016-07-06 21:15:54 +02:00
Pedro Magalhães
08777e9615
Don't enforce LSP if prototype method is private
...
Fixes bug #72496 .
2016-07-05 14:30:22 +02:00
Aaron Piotrowski
d9a9cf8eca
Merge branch 'master' into iterable
2016-07-03 22:42:10 -05:00
Nikita Popov
e48ded4bf8
Merge branch 'PHP-7.0'
2016-06-28 21:36:28 +02:00
Nikita Popov
9b8f1d6037
Don't use FUNC_ARG fetches for call_user_func()
...
This makes no sense -- SEND_USER can't even handle INDIRECTs.
2016-06-28 21:34:20 +02:00
Nikita Popov
cb7cc16c2d
Use DO_UCALL for method calls
2016-06-28 12:05:03 +02:00
Xinchen Hui
b8a9e98166
Fixed build
2016-06-28 15:54:20 +08:00
Xinchen Hui
3a4b8f6719
Merge branch 'PHP-7.0'
...
* PHP-7.0:
Fixed bug #72508 (strange references after recursive function call and "switch" statement)
2016-06-28 15:36:58 +08:00
Xinchen Hui
ce7e180a04
Fixed bug #72508 (strange references after recursive function call and "switch" statement)
2016-06-28 15:36:50 +08:00
Dmitry Stogov
ebb99a1a3a
Fixed compilation warnings
2016-06-21 16:55:17 +03:00
Dmitry Stogov
1616038698
Added ZEND_ATTRIBUTE_FORMAT to some middind functions.
...
"%p" replaced by ZEND_LONG_FMT to avoid compilation warnings.
Fixed most incorrect use cases of format specifiers.
2016-06-21 16:00:37 +03:00
Xinchen Hui
fcd8a5ca65
Fixed bug #72441 (Segmentation fault: RFC list_keys)
2016-06-17 09:34:15 -07:00
Dmitry Stogov
a9512af810
Implemented RFC: Fix inconsistent behavior of $this variable
...
Squashed commit of the following:
commit bdd3b6895c
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Jun 16 00:19:42 2016 +0300
Fixed GOTO VM
commit 2f1d7c8b89
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Jun 15 21:01:57 2016 +0300
Removed unused variable
commit cf749c42b0
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Jun 15 19:06:16 2016 +0300
Protection from $this reassign through mb_parse_str()
commit 59a9a6c83c
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Jun 15 18:14:50 2016 +0300
Added type inference rule for FETCH_THIS opcode
commit 73f8d14a85
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Jun 15 18:11:18 2016 +0300
Restored PHP-7 behavior of isset($this->foo).
It throws exception if not in object context.
Removed useless opcode handlers.
commit fa0881381e
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue May 31 12:25:47 2016 +0300
Changed "Notice: Undefined variable: this" into "Exception: Using $this when not in object context".
commit e32cc528c0
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue May 24 02:02:43 2016 +0300
Throw exception on attempt to re-assign $this through extract() and parse_str().
commit 41f1531b52
Author: Dmitry Stogov <dmitry@zend.com>
Date: Mon May 23 22:18:36 2016 +0300
Fixed inconsistent $this behavior
2016-06-16 02:30:23 +03:00
Xinchen Hui
d6e668368d
C89 compatibility
2016-06-14 18:17:49 +08:00
Xinchen Hui
9c8e1c03b9
Only allow single comma in tail
2016-06-14 14:02:34 +08:00
Xinchen Hui
6166c26f1c
Cleanup
2016-06-13 17:36:03 -07:00
Nikita Popov
792e89385c
Fixed bug #72373
2016-06-10 15:57:18 +02:00
Dmitry Stogov
10f056255e
Better fix for bug #70228 (memleak if return in finally block)
2016-06-08 02:20:45 +03:00
Aaron Piotrowski
4da3e77b4c
Covariance on inheriting classes with iterable
2016-06-04 09:44:49 -05:00
Nikita Popov
9ba243b6f3
Forbid ?void
2016-06-04 14:53:50 +02:00
Nikita Popov
73b2f79199
More explicit errors for return; vs return null;
...
Both for "return null" in a void function and "return" in
a nullable return function.
2016-06-04 13:27:11 +02:00
Nikita Popov
fe907562ad
Forbid "return;" for typed returns already at compile-time
...
These would otherwise generate a "none returned" error at runtime.
Catch them early.
2016-06-04 13:27:11 +02:00
Nikita Popov
cb3825a8dc
Small generator-related cleanups
2016-06-04 13:27:11 +02:00
Aaron Piotrowski
bf6a65984b
Fix default argument check
2016-06-03 18:01:56 -05:00
Aaron Piotrowski
72692e9a9c
Add iterable pseudo-type
2016-06-03 17:42:04 -05:00
Dmitry Stogov
b111da96d9
Split ZEND_SEND_VAR_NO_REF into ZEND_SEND_VAR_NO_REF and ZEND_SEND_VAR_NO_REF_EX (similar to ZEND_SEND_VAL) and remove ZEND_ARG_* flags.
2016-05-31 04:06:00 +03:00
Dmitry Stogov
2ae21abdf7
Fixed bug #72213 (Finally leaks on nested exceptions).
...
Squashed commit of the following:
commit 8461b0407f
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed May 25 00:34:42 2016 +0300
Rmoved zend_try_catch_element.parent and walk through op_array.try_catch_array backward from the current try_cacth_offset.
commit 0c71e24964
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed May 25 00:04:53 2016 +0300
Move SAVE_OPLINE() to its original place
commit 111432a4df
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed May 25 00:01:10 2016 +0300
Separate the common part of ZEND_HANDLE_EXCEPTION and FAST_RET into zend_dispatch_try_catch_finally_helper.
commit 4f21c06c2e
Author: Nikita Popov <nikic@php.net>
Date: Tue May 24 14:55:27 2016 +0200
Improve finally fix
commit da5c727499
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue May 24 10:36:08 2016 +0300
Fixed Zend/tests/try/bug70228_3.phpt and Zend/tests/try/bug70228_4.phpt
commit cfcedf2fb4
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue May 24 02:59:27 2016 +0300
Added test
commit 4c6aa93d43
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue May 24 00:38:20 2016 +0300
Added tests
commit 8a8f4704b0
Author: Dmitry Stogov <dmitry@zend.com>
Date: Mon May 23 23:27:34 2016 +0300
Fixed bug #72213 (Finally leaks on nested exceptions)
2016-05-25 01:25:12 +03:00
Dmitry Stogov
0cdbabe558
Merge branch 'nullable_types' of github.com:morrisonlevi/php-src
...
* 'nullable_types' of github.com:morrisonlevi/php-src:
Fix bug #71428
Add nullable parameter types
Implement nullable return types.
2016-05-23 10:14:26 +03:00