Xinchen Hui
97a9470d97
bump year which is missed in rev 49493a2
2016-01-02 17:56:11 +08:00
Xinchen Hui
3537e95dae
bump year which is missed in rev 49493a2
2016-01-02 17:51:24 +08:00
Derick Rethans
5362f0ad7f
MFH: Fix lineno for finally FAST_CALL and JMP
2015-12-31 09:46:43 +00:00
Nikita Popov
b3afeeabef
Fix lineno for finally FAST_CALL and JMP
2015-12-30 23:49:07 +01:00
Nikita Popov
65e456f364
Introduce BIND_LEXICAL
...
This opcodes inserts a local CV into the closure static variable
table. This replaces the previous mechanism of having static
variables marked as LEXICAL, which perform a symtable lookup
during copying.
This means a) functions which contain closures no longer have to
rebuild their symtable (better performance) and b) we can now track
used variables in SSA.
2015-12-29 23:14:53 +01:00
Nikita Popov
4440436821
Forbid use() of auto-globals
...
We don't correctly support it, it doesn't make sense and it's also
forbidden for parameters.
2015-12-29 11:20:44 +01:00
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