Julien Pauli
7a2f60d3c7
Merge branch 'PHP-7.0'
...
* PHP-7.0:
Remove mentions of "type hint" and "typehint"
2015-12-24 15:19:54 +01:00
Levi Morrison
2a7eeff33e
Remove mentions of "type hint" and "typehint"
2015-12-24 15:19:31 +01:00
Dmitry Stogov
aa4a83fec7
Fixed bug #71196 (Memory leak with out-of-order live ranges)
2015-12-23 01:47:38 +03:00
Nikita Popov
88eae43ff9
Remove uses of VARs in extended_value
...
The DECLARE_(ANON_)INHERITED_CLASS(_DELAYED) opcodes were
referencing the parent ce VAR through extended_value. This is
hacky and we can't track the def-use chain in SSA.
To avoid this, the layout of declaration opcodes is changed
as follows: op1 points to the lcname and rtd_key literals, in
that order. (For anon/lambda declarations only one of lcname or
rtd_key is present.) This frees up op2, which is now used to
reference the parent ce VAR in inheriting declarations. The
jmp offset for anon class declarations is moved frop op2 to
extended_value.
The changes were applied both to class and function declarations
to keep everything symmetric.
2015-12-21 14:44:42 +01:00
Andrea Faulds
5d0dfda60c
Merge branch 'PHP-7.0'
2015-12-19 02:35:19 +00:00
Andrea Faulds
42c8f5e91d
Fix bug #70804
...
This follows on from a4648ded43
and
4e01269082
.
Both -(+0.0) and +(-0.0) behaved incorrectly for the same reason.
2015-12-19 02:25:44 +00:00
Andrea Faulds
8d355bff85
Merge branch 'PHP-7.0'
2015-12-17 22:40:55 +00:00
Andrea Faulds
a4648ded43
Fix bug #52355
2015-12-17 22:39:29 +00:00
Nikita Popov
56f1106162
Use FETCH_CLASS_EXCEPTION for instanceof
...
This does not collide with NO_AUTOLOAD -- missing classes will be
silenced, but invalid use of self etc will result in an exception
instead of a fatal error.
2015-12-14 17:50:20 +01:00
Nikita Popov
0919178963
Add result op for ASSERT_CHECK to fix SSA
...
Otherwise one source of the phi node at the join point will be
borked.
I'm marking the ASSERT_CHECK result as unused in pass2, which is
a bit ugly.
2015-12-14 12:31:00 +01:00
Xinchen Hui
0d8f5a43d3
Merge branch 'PHP-7.0'
...
Conflicts:
NEWS
2015-12-11 09:13:26 -08:00
Xinchen Hui
778e5f3da5
Fixed bug #71092 (Segmentation fault with return type hinting)
2015-12-11 09:11:28 -08:00
Nikita Popov
591fe26d5d
Remove BP_VAR_REF
...
The distinction between BP_VAR_REF and BP_VAR_W is no longer
revelant, since we dropped support for =& new.
2015-12-11 15:56:52 +01:00
Nikita Popov
04e3d82b55
Make duplicate class constant error for internal class
...
And drop two duplicate constant declarations from intl. These
were leaking previously.
2015-12-10 22:22:49 +01:00
Nikita Popov
8e5e3301a1
Make ZEND_CLONE return a TMP_VAR
...
As the return value can't be reference and it's unlikely to be
unused.
Also remove some unnecessary checks for ce==NULL. A ce is required
nowadays.
2015-12-10 22:16:25 +01:00
Nikita Popov
f1278edefc
Drop two compiler TODOs
...
Call-time pass by reference is now a parse error.
There is no benefit in dropping implementing_class currently.
2015-12-10 19:04:59 +01:00
Nikita Popov
c8a64e289c
Reintroduce use of FETCH_GLOBAL_LOCK
...
Just found this old AST todo...
It no longer makes sense as an optimization due to the introduction
of BIND_GLOBAL, however it ensures that the global variable name is
not evaluated twice, which is presumably something we wish to
guarantee.
2015-12-10 19:04:59 +01:00
Nikita Popov
3fa86105f7
Remove FETCH_STATIC_MEMBER flag
2015-12-10 18:25:29 +01:00
Nikita Popov
3d4a2d2002
Merge branch 'PHP-7.0'
...
Conflicts:
Zend/zend_vm_def.h
Zend/zend_vm_execute.h
2015-12-10 18:24:29 +01:00
Nikita Popov
37f3425263
Fix Foo::${42} and similar
...
Fixes segfault on direct use, segfault on opcache evaluated use,
leak on temporary use.
Fixes analogeous segfault for ${42} on opcache eval as well.
2015-12-10 18:14:40 +01:00
Dmitry Stogov
5ee7b7d01a
Don't create live-range across NOPs and some other instructions
2015-12-09 05:15:58 +03:00
Dmitry Stogov
c1803bf652
Avoid construction of empty live-ranges because of OP_DATA instruction
2015-12-08 18:10:07 +03:00
Dmitry Stogov
a75c195000
Implemented the RFC Support Class Constant Visibility
.
...
Squashed commit of the following:
commit f11ca0e7a5
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue Dec 8 12:38:42 2015 +0300
Fixed test expectation
commit 211f873f54
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue Dec 8 12:28:38 2015 +0300
Embed zend_class_constant.flags into zend_class_constants.value.u2.access_flags
commit 51deab84b2
Author: Dmitry Stogov <dmitry@zend.com>
Date: Mon Dec 7 11:18:55 2015 +0300
Fixed issues found by Nikita
commit 544dbd5b47
Author: Dmitry Stogov <dmitry@zend.com>
Date: Sat Dec 5 02:41:05 2015 +0300
Refactored immplementation of https://wiki.php.net/rfc/class_const_visibility
@reeze created an RFC here and I emailed internals here and didn't get any responses positive/negative.
2015-12-08 12:40:42 +03:00
Xinchen Hui
5c707a6cf8
Merge branch 'PHP-7.0'
2015-11-28 23:44:06 -08:00
Xinchen Hui
1f65006fce
Fixed bug #70931 (Two errors messages are in conflict)
2015-11-28 23:43:41 -08:00
Nikita Popov
95283a0504
Merge branch 'PHP-7.0'
2015-11-26 16:57:11 +01:00
Nikita Popov
99dd7ee80b
Forbid namespace\int type hint as well
2015-11-26 16:56:08 +01:00
Xinchen Hui
06bcaf98c5
Merge branch 'PHP-7.0'
2015-11-25 19:11:40 +08:00
Xinchen Hui
3cdbe347ae
Always lower name
2015-11-25 19:11:22 +08:00
Xinchen Hui
05738eb71a
Revert "Improved fix for Fully qualified (leading backslash) type names must fail"
...
This reverts commit 00865ae22f
.
2015-11-25 19:06:42 +08:00
Xinchen Hui
c6b08e99fe
Merge branch 'PHP-7.0'
2015-11-25 11:41:01 +08:00
Xinchen Hui
00865ae22f
Improved fix for Fully qualified (leading backslash) type names must fail
...
it now all fails with COMPILE_ERROR instead of syntax error for T_ARRAY
but COMPILE_ERROR for int
2015-11-25 11:27:32 +08:00
Bob Weinand
569763cb1a
Fix scalar type names with leading backslash
2015-11-24 21:39:06 +01:00
Xinchen Hui
42252f409b
Merge branch 'PHP-7.0'
2015-11-23 18:33:21 +08:00
Xinchen Hui
51ccc88b87
Port fix to 7.0
2015-11-23 18:31:56 +08:00
Xinchen Hui
a2b85ddecf
Fixed bug #70958 (Invalid opcode while using ::class as trait method paramater default value)
2015-11-23 18:29:59 +08:00
Xinchen Hui
ab17840d33
Fixed bug #70957 (self::class can not be resolved with reflection for abstract class)
2015-11-23 12:20:44 +08:00
Dmitry Stogov
84610b1f39
Don't keep wrong jump target in last CATCH.
2015-11-19 00:47:08 +03:00
Andrea Faulds
366ba41334
Add void return type
2015-11-18 17:30:49 +00:00
Xinchen Hui
36d25a287b
Merge branch 'PHP-7.0'
2015-11-13 21:25:06 +08:00
Xinchen Hui
25de928df7
Fixed bug #70912 (Null ptr dereference instantiating class with invalid array property)
2015-11-13 21:24:42 +08:00
Dmitry Stogov
3a5fa926bf
Squashed commit of the following:
...
commit afe963e6cc289696e60c6c679796ba2197c52b3b
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Nov 13 15:32:29 2015 +0300
Added news entry
commit a126b891c97848dd7ef8f1abf716328c46e0f19c
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Nov 13 15:29:21 2015 +0300
VERIFY_RETURN_TYPE doesn't have to cleanup operand on exception, bacause now, live temporary variables are released by exception unwinder.
commit 0db475e98786e6bcaa8401ee3e0b33743b9a2f2b
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Nov 12 22:55:39 2015 +0300
Fixed copy/paste
commit 0ac73fe7174bec9de9a610319a98b259bea67f7f
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Nov 11 16:11:50 2015 +0300
Fixed bug #62210 (Exceptions can leak temporary variables)
2015-11-13 15:35:07 +03:00
Dmitry Stogov
998204ef2d
Separate common part of compile_file() and compile_string() into zend_compile()
2015-11-12 16:59:44 +03:00
Dmitry Stogov
948b7f5421
Changed ZEND_FREE.op2.num and ZEND_FE_FREE.op2.num back to use live_range_offset (try_catch_offset does't work)
2015-11-11 11:12:44 +03:00
Dmitry Stogov
baf97b1fcc
We don't nees zend_op_array->brk_cont_array at run-time anymore.
...
Move zend_op_array->brk_cont_array into CG(context).brk_cont_array.
Use more compact zend_op_array->live_range instead of zend_op_array->brk_cont_array.
Semantic is kept unchanged.
2015-11-10 21:48:03 +03:00
Dmitry Stogov
71092b7c2b
Make FE_FETCH and following assignments to be a part of a loop.
2015-11-10 20:11:05 +03:00
Dmitry Stogov
86a96f2cf1
Changed meaning of "op2" for ZEND_FREE, ZEND_FE_FREE, ZEND_FAST_CALL, ZEND_FAST_RET.
...
Previously it was an instruction number.
Now it's an index in op_array->try_cacth_array[].
2015-11-10 19:13:54 +03:00
Andrea Faulds
7bc6361294
Merge branch 'PHP-7.0'
2015-11-09 23:42:12 +00:00
Andrea Faulds
dae37661d9
Use ZEND_STRL macro for builtin_types
2015-11-09 11:15:58 +00:00
Xinchen Hui
37ed0dafe4
Fixed bug #70828 (php-fpm 5.6 with opcache crashes when referencing a non-existent constant)
2015-11-02 10:47:02 +08:00