Dmitry Stogov
9bd490dc33
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Fixed incorrect reference counter inference
2021-11-08 20:54:45 +03:00
Dmitry Stogov
535a0553e8
Fixed incorrect reference counter inference
2021-11-08 20:54:17 +03:00
Dmitry Stogov
9db900926c
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
JIT: Fixed incorrect guard elimination
2021-11-08 20:09:01 +03:00
Dmitry Stogov
8fe808207f
JIT: Fixed incorrect guard elimination
2021-11-08 20:08:39 +03:00
Nikita Popov
53df29bc29
Drop pi nodes for both old/new pred in replace_predecessor
...
We also need to drop pi nodes for new_pred here, as the pi node
restriction for new_pred is not necessarily true for control
coming from old_pred as well.
Fixes oss-fuzz #40782 .
2021-11-08 14:56:42 +01:00
Dmitry Stogov
03f149799a
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Don't call _zend_hash_index_find() for packed arrays
2021-11-08 13:13:48 +03:00
Dmitry Stogov
e868ded6ef
Don't call _zend_hash_index_find() for packed arrays
2021-11-08 13:13:23 +03:00
Dmitry Stogov
b1b6440d84
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
JIT: Fixed incorrect guard elimination
2021-11-08 12:29:03 +03:00
Dmitry Stogov
7bf63243e1
JIT: Fixed incorrect guard elimination
2021-11-08 12:28:36 +03:00
Dmitry Stogov
5e39ed08e1
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Tracing JIT: Fixed incorrect guard elimination
2021-11-03 23:37:29 +03:00
Dmitry Stogov
34d22acc7e
Tracing JIT: Fixed incorrect guard elimination
2021-11-03 23:37:00 +03:00
Dmitry Stogov
22a171a0b5
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Fixed type inference for FETCH_DIM_W without use
2021-11-03 19:45:30 +03:00
Dmitry Stogov
66d93c63ff
Fixed type inference for FETCH_DIM_W without use
2021-11-03 19:44:38 +03:00
Dmitry Stogov
c2079802b5
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Tracing JIT: Fixed reference counting when escape because of IS_UNDEF element (test)
2021-11-01 22:19:28 +03:00
Dmitry Stogov
2605911272
Tracing JIT: Fixed reference counting when escape because of IS_UNDEF element (test)
2021-11-01 22:19:10 +03:00
Dmitry Stogov
8c9bfa13a9
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Tracing JIT: Fixed reference counting when escape because of IS_UNDEF element
2021-11-01 22:17:17 +03:00
Dmitry Stogov
d7ac39b02d
Tracing JIT: Fixed reference counting when escape because of IS_UNDEF element
2021-11-01 22:14:12 +03:00
Dmitry Stogov
d4a7e4d1ff
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Fixed incorrect assumption about reference counting
2021-11-01 20:28:33 +03:00
Dmitry Stogov
5c43e0c0ee
Fixed incorrect assumption about reference counting
2021-11-01 20:28:05 +03:00
Dmitry Stogov
8262329924
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
JIT: Fixed numeric string index handling
2021-11-01 18:52:50 +03:00
Dmitry Stogov
f1e6a7d83d
JIT: Fixed numeric string index handling
2021-11-01 18:50:32 +03:00
Dmitry Stogov
be8c9b9476
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
JIT: Fixed register allocation in case of integer overflow
2021-11-01 16:48:44 +03:00
Dmitry Stogov
cd32b47235
JIT: Fixed register allocation in case of integer overflow
2021-11-01 16:46:41 +03:00
Nikita Popov
2e29817005
Handle FETCH_DIM_R after FETCH_DIM_FUNC_ARG in inference
...
This can happen if a call is optimized, but FETCH_DIM_FUNC_ARG
cannot be converted to FETCH_DIM_R because it uses an UNUSED op2,
which is not supported by FETCH_DIM_R.
Fixes oss-fuzz 6144185837682688.
2021-11-01 14:26:36 +01:00
Nikita Popov
3d38960979
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Fix range inference hang
2021-11-01 12:32:04 +01:00
Nikita Popov
f8ec5a1d4c
Fix range inference hang
...
We shouldn't switch from range to no range for ZEND_DIV and instead
explicitly return an overflowing range. Otherwise the range will
not actually get updated during widening, and we'll perform
essentially infinite narrowing.
Fixes oss-fuzz #40566 .
2021-11-01 12:31:34 +01:00
Nikita Popov
55aadc647b
Fix self-assign evaluation order for ASSIGN_DIM_OP
...
For $ary[idx] op= $ary we should evaluate the RHS operand first,
otherwise we may create a reference-free recursive array. Use the
same handling we do for the normal $ary[idx] = $ary case.
Fixes oss-fuzz #40287 .
2021-11-01 09:50:22 +01:00
Dmitry Stogov
cb72f0fa64
JIT_G(current_frame)->stacj is always true.
2021-10-25 23:26:03 +03:00
Dmitry Stogov
3d576db280
JIT: Avoid dead type store
2021-10-25 20:56:23 +03:00
Dmitry Stogov
60203d5e30
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Tracing JIT: Fixed possible endless loop when escape from ZEND_CALL_TOP frame
2021-10-25 12:12:44 +03:00
Dmitry Stogov
29c8c1e955
Tracing JIT: Fixed possible endless loop when escape from ZEND_CALL_TOP frame
2021-10-25 12:10:25 +03:00
Dmitry Stogov
d78693f9ed
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Tracing JIT: Fixed incorrect assumption about in-memeory zval type
2021-10-22 14:44:57 +03:00
Dmitry Stogov
d3251632ad
Tracing JIT: Fixed incorrect assumption about in-memeory zval type
2021-10-22 14:38:38 +03:00
Dmitry Stogov
b5a6e518f8
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Tracing JIT: Fixed incorrect assumtion about temporary variable types clobbered by *_ROPE instructions
Revert "Fix bug GH-1 (mysqli_sql_exception->sqlstate is inaccessible)"
Fix bug GH-1 (mysqli_sql_exception->sqlstate is inaccessible)
2021-10-21 21:40:24 +03:00
Dmitry Stogov
c7e974fc4e
Tracing JIT: Fixed incorrect assumtion about temporary variable types clobbered by *_ROPE instructions
2021-10-21 21:35:57 +03:00
Dmitry Stogov
11dd5e6e08
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Use right frame
2021-10-20 23:51:04 +03:00
Dmitry Stogov
b69c6ba9df
Use right frame
2021-10-20 23:50:33 +03:00
Dmitry Stogov
7e53b08cb1
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
JIT: Fixed megamorphic call detection
2021-10-20 22:31:05 +03:00
Dmitry Stogov
95c0dfc57f
JIT: Fixed megamorphic call detection
2021-10-20 22:16:25 +03:00
Dmitry Stogov
9bccbf8b92
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
JIT: Fixed memory leak
2021-10-20 10:44:16 +03:00
Dmitry Stogov
38626dbaad
JIT: Fixed memory leak
2021-10-20 10:38:47 +03:00
Nikita Popov
22b6aac66f
Fix inc/dec of undef var with error handler
...
Set the variable to null after emitting the undef var notice
rather than before. This avoids an assertion failure if the var
is unset by the error handler.
The flip side is that this may cause a leak instead, but that's
the more harmless outcome.
Fixes oss-fuzz #36604 .
2021-10-19 14:19:22 +02:00
Dmitry Stogov
bdebefaa61
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Fixed incorrect optimization that may cause JIT assertion
2021-10-18 23:20:53 +03:00
Dmitry Stogov
6bd5271c62
Fixed incorrect optimization that may cause JIT assertion
2021-10-18 23:18:52 +03:00
Dmitry Stogov
288de4f54e
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Tracing JIT: Fixed memory leak
2021-10-18 22:19:36 +03:00
Dmitry Stogov
d3063c02c6
Tracing JIT: Fixed memory leak
2021-10-18 22:14:53 +03:00
Dmitry Stogov
f2771d2f5b
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
JIT: Fixed DASM_S_RANGE_VREG error
2021-10-18 18:00:10 +03:00
Dmitry Stogov
e59d0a7151
JIT: Fixed DASM_S_RANGE_VREG error
2021-10-18 17:58:42 +03:00
Dmitry Stogov
0e42c9e1d0
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Tracing JIT: Fixed ADD with two references to arrays
2021-10-18 17:29:34 +03:00
Dmitry Stogov
13d1244575
Tracing JIT: Fixed ADD with two references to arrays
2021-10-18 17:26:36 +03:00