Dmitry Stogov
df14a07887
Merge branch 'PHP-8.1'
...
* PHP-8.1:
Optimizer: Fix inorrect constant substitution in FETCH_LIST_R
2022-03-11 14:31:32 +03:00
Dmitry Stogov
770a544af4
Optimizer: Fix inorrect constant substitution in FETCH_LIST_R
...
Fixes oss-fuzz #45429
2022-03-11 14:30:27 +03:00
Dmitry Stogov
bf079d0515
Merge branch 'PHP-8.1'
...
* PHP-8.1:
Fixed memory leak
2022-03-11 11:33:32 +03:00
Dmitry Stogov
1f5562aa09
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Fixed memory leak
2022-03-11 11:33:01 +03:00
Dmitry Stogov
151d2ac5ae
Fixed memory leak
...
Fixes oss-fuzz #45191
2022-03-11 11:32:23 +03:00
Dmitry Stogov
36ce177e5e
Merge branch 'PHP-8.1'
...
* PHP-8.1:
Fixed incorrect DCE for FREE
2022-02-28 11:54:34 +03:00
Dmitry Stogov
56d7672d56
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Fixed incorrect DCE for FREE
2022-02-28 11:54:25 +03:00
Dmitry Stogov
78c7289f69
Fixed incorrect DCE for FREE
...
Fixes oss-fuzz #44863
2022-02-28 11:44:22 +03:00
Christoph M. Becker
bf32299184
Merge branch 'PHP-8.1'
...
* PHP-8.1:
Fix GH-8140: Wrong first class callable by name optimization
2022-02-24 10:37:34 +01:00
Christoph M. Becker
33cd61c904
Fix GH-8140: Wrong first class callable by name optimization
...
When optimizing by name function calls, we must not replace
`CALLABLE_CONVERT` opcodes, but have to keep them.
Closes GH-8144.
2022-02-24 10:35:53 +01:00
Christoph M. Becker
3be34c3b95
Merge branch 'PHP-8.1'
...
* PHP-8.1:
Fix GH-8074: Wrong type inference of range() result
2022-02-22 10:21:07 +01:00
Christoph M. Becker
7ea3b19331
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Fix GH-8074: Wrong type inference of range() result
2022-02-22 10:20:13 +01:00
Christoph M. Becker
ef80dcb80b
Fix GH-8074: Wrong type inference of range() result
...
If either the first or second operand of `range()` may be a string, we
must not exclude the possibility that the result may be an array of
longs.
Closes GH-8131.
2022-02-22 10:14:54 +01:00
Dmitry Stogov
2af33234b2
Merge branch 'PHP-8.1'
...
* PHP-8.1:
Fix too aggressive DCE that leads to memory leak
2022-01-28 12:18:57 +03:00
Dmitry Stogov
34c2324fbf
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Fix too aggressive DCE that leads to memory leak
2022-01-28 12:18:47 +03:00
Dmitry Stogov
965dafe3e1
Fix too aggressive DCE that leads to memory leak
...
Fixes oss-fuzz #43738
2022-01-28 12:17:46 +03:00
Dmitry Stogov
4d907a6b43
Merge branch 'PHP-8.1'
...
* PHP-8.1:
Fixed NAN handling in SCCP
2022-01-10 19:42:29 +03:00
Dmitry Stogov
906cb52c63
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Fixed NAN handling in SCCP
2022-01-10 19:40:22 +03:00
Dmitry Stogov
698ac23711
Fixed NAN handling in SCCP
...
Fixes oss-fuzz #43341
2022-01-10 19:39:19 +03:00
Dmitry Stogov
2759e6bc69
Fixed assertion when check "instanceof" on unlinked class
2021-12-27 12:02:13 +03:00
Dmitry Stogov
8b23538034
Merge branch 'PHP-8.1'
...
* PHP-8.1:
Fix memory leak in SCCP
2021-12-24 13:11:09 +03:00
Dmitry Stogov
b2939b636d
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Fix memory leak in SCCP
2021-12-24 13:10:58 +03:00
Dmitry Stogov
2b81156f2a
Fix memory leak in SCCP
...
Fixes oss-fuzz #42878
2021-12-24 13:10:22 +03:00
Dmitry Stogov
e4cf3f7420
Merge branch 'PHP-8.1'
...
* PHP-8.1:
Fix incorrect optimization of ASSIGN_OP that may lead to memory leak
2021-12-20 15:17:45 +03:00
Dmitry Stogov
ca3f7b0a73
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Fix incorrect optimization of ASSIGN_OP that may lead to memory leak
2021-12-20 15:17:30 +03:00
Dmitry Stogov
e004e844f7
Fix incorrect optimization of ASSIGN_OP that may lead to memory leak
...
Fixes oss-fuzz #42506
2021-12-20 15:06:32 +03:00
Dmitry Stogov
6b60dc29de
Merge branch 'PHP-8.1'
...
* PHP-8.1:
Fix type inference for INIT_ARRAY with invalid index
2021-12-20 11:46:45 +03:00
Dmitry Stogov
c8d10a8243
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Fix type inference for INIT_ARRAY with invalid index
2021-12-20 11:46:36 +03:00
Dmitry Stogov
f18bb2477f
Fix type inference for INIT_ARRAY with invalid index
...
Fixes oss-fuzz #42568
2021-12-20 11:40:11 +03:00
Dmitry Stogov
2337c0516a
Merge branch 'PHP-8.1'
...
* PHP-8.1:
Fix incorrect optimization that leads to memory leak
2021-12-13 13:25:47 +03:00
Dmitry Stogov
f8f0a650a7
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Fix incorrect optimization that leads to memory leak
2021-12-13 13:09:05 +03:00
Dmitry Stogov
230de7721f
Fix incorrect optimization that leads to memory leak
...
Fixes oss-fuzz #42221
2021-12-13 13:08:05 +03:00
Dmitry Stogov
abcf68387d
Merge branch 'PHP-8.1'
...
* PHP-8.1:
Fix incorrect JMP optimization
2021-12-10 01:45:03 +03:00
Dmitry Stogov
363434bab2
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Fix incorrect JMP optimization
2021-12-10 01:44:55 +03:00
Dmitry Stogov
0ac3d78d7d
Fix incorrect JMP optimization
...
Fixes oss-fuzz #42155
2021-12-10 01:39:28 +03:00
Dmitry Stogov
8a5c604c3e
Merge branch 'PHP-8.1'
...
* PHP-8.1:
Fixed incorrect DCE of a constructor call
2021-12-06 16:00:39 +03:00
Dmitry Stogov
572c09d373
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Fixed incorrect DCE of a constructor call
2021-12-06 16:00:30 +03:00
Dmitry Stogov
7b629afe4e
Fixed incorrect DCE of a constructor call
...
Fixez oss-fuzz #42049
2021-12-06 15:59:30 +03:00
Dmitry Stogov
e1baef1835
Merge branch 'PHP-8.1'
...
* PHP-8.1:
Fixed type inference (it's safe to ignore reference counting narrowing)
2021-11-29 23:40:49 +03:00
Dmitry Stogov
2d3ea98624
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Fixed type inference (it's safe to ignore reference counting narrowing)
2021-11-29 23:39:37 +03:00
Dmitry Stogov
86430e8e01
Fixed type inference (it's safe to ignore reference counting narrowing)
2021-11-29 23:32:52 +03:00
Nikita Popov
902d64390e
Deprecate implicit dynamic properties
...
Writing to a proprety that hasn't been declared is deprecated,
unless the class uses the #[AllowDynamicProperties] attribute or
defines __get()/__set().
RFC: https://wiki.php.net/rfc/deprecate_dynamic_properties
2021-11-26 14:10:11 +01:00
Dmitry Stogov
97f0c0b189
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Fixed incorrect DCE for ADD_ARRAY_ELEMENT instruction
2021-11-25 13:35:54 +03:00
Dmitry Stogov
f302430c72
Fixed incorrect DCE for ADD_ARRAY_ELEMENT instruction
...
DCE might remove INIT_ARRAY instruction but then keep the related
ADD_ARRAY_ELEMENT, becuse its both operands need to be freed.
Fixes oss-fuzz #41309
2021-11-25 13:33:26 +03:00
Dmitry Stogov
fd8dfc4248
XFAIL: Return types cannot be inferred through prototypes
2021-10-06 17:21:02 +03:00
Nikita Popov
55582a2527
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Don't replace values in unreachable code in sccp
2021-09-20 13:12:43 +02:00
Nikita Popov
1b33da5dd2
Don't replace values in unreachable code in sccp
...
While technically legal, this may cause unexpected situations
(in this example, setting an FE_FREE operand to constant null)
and is suboptimal anyway. It's better to preserve the vacuous type
and drop it later (though we currently don't implement this).
2021-09-20 13:12:26 +02:00
George Peter Banyard
069a9fa5e4
Pure Intersection types ( #6799 )
...
Implement pure intersection types RFC
RFC: https://wiki.php.net/rfc/pure-intersection-types
Co-authored-by: Nikita Popov <nikic@php.net >
Co-authored-by: Ilija Tovilo <ilutov@php.net >
2021-07-05 14:11:03 +02:00
Nikita Popov
a30fab57eb
Make can_elide_return_type_check() more robust
...
Rather than using def_info, check against the actual arg_info type.
As it is stored as a type mask nowadays, this is not much harder,
but more general and more robust as we don't need to deal with
inaccurate cases.
2021-06-18 11:17:32 +02:00
Nikita Popov
47a722e77f
Merge branch 'PHP-8.0'
...
* PHP-8.0:
Don't mark non-refcounted phi as live
2021-04-08 18:24:57 +02:00