Dmitry Stogov
70545b78e0
Merge branch 'PHP-8.1'
...
* PHP-8.1:
JIT: Fixed NaN handling
2021-09-28 23:56:45 +03:00
Dmitry Stogov
c08ee7c760
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
JIT: Fixed NaN handling
2021-09-28 23:55:28 +03:00
Dmitry Stogov
7710047ed1
JIT x86: Fixed NaN handling
2021-09-28 23:49:26 +03:00
Nikita Popov
4df32817a1
Merge branch 'PHP-8.1'
...
* PHP-8.1:
Fix leak with ASSIGN_OBJ on null
2021-09-28 16:34:45 +02:00
Nikita Popov
b5242fa19a
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Fix leak with ASSIGN_OBJ on null
2021-09-28 16:34:32 +02:00
Nikita Popov
97b5eeeb6c
Fix leak with ASSIGN_OBJ on null
...
We still need to free op1 in this case.
Fixes oss-fuzz 5782176231194624 (part of #38542 ).
2021-09-28 16:33:11 +02:00
Dmitry Stogov
04dd327493
Merge branch 'PHP-8.1'
...
* PHP-8.1:
JIT: Fixed result when assigning to typed reference
2021-09-28 14:27:29 +03:00
Dmitry Stogov
214cd1565b
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
JIT: Fixed result when assigning to typed reference
2021-09-28 14:27:16 +03:00
Dmitry Stogov
17b127a84f
JIT: Fixed result when assigning to typed reference
2021-09-28 14:19:23 +03:00
Nikita Popov
2a3caef40b
Merge branch 'PHP-8.1'
...
* PHP-8.1:
Undef result if undef dim warning promoted to exception
2021-09-28 11:36:35 +02:00
Nikita Popov
fdcacc7015
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Undef result if undef dim warning promoted to exception
2021-09-28 11:36:26 +02:00
Nikita Popov
fe1633f010
Undef result if undef dim warning promoted to exception
...
Fixes oss-fuzz #39278 .
2021-09-28 11:35:53 +02:00
Nikita Popov
39d4978add
Merge branch 'PHP-8.1'
...
* PHP-8.1:
Check exception after QM_ASSIGN of undef var
2021-09-28 10:59:06 +02:00
Nikita Popov
1cfc69d80d
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Check exception after QM_ASSIGN of undef var
2021-09-28 10:58:59 +02:00
Nikita Popov
f381079398
Check exception after QM_ASSIGN of undef var
...
While most other exceptions aren't possible when QM_ASSIGN is used
instead of ASSIGN, we still have to watch out for an undef var
notice being promoted to an exception.
2021-09-28 10:58:20 +02:00
Dmitry Stogov
b6800c77f1
Merge branch 'PHP-8.1'
...
* PHP-8.1:
JIT: Fixed missed zval type initialization
2021-09-27 20:16:02 +03:00
Dmitry Stogov
97da90e85e
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
JIT: Fixed missed zval type initialization
2021-09-27 20:15:51 +03:00
Dmitry Stogov
9ce388b41b
JIT: Fixed missed zval type initialization
2021-09-27 20:05:50 +03:00
Nikita Popov
aa285a015f
Merge branch 'PHP-8.1'
...
* PHP-8.1:
Fix ASSIGN_STATIC_PROP_REF type inference
2021-09-22 15:55:57 +02:00
Nikita Popov
2dc8c7b3a7
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Fix ASSIGN_STATIC_PROP_REF type inference
2021-09-22 15:55:42 +02:00
Nikita Popov
983a4fc4a3
Fix ASSIGN_STATIC_PROP_REF type inference
...
We were not inferring anything for the ASSIGN_STATIC_PROP_REF
result type at all, leaving it as an empty type. In the test
case this results in a live range being incorrectly eliminated,
but this could break in all kinds of other ways as well..
2021-09-22 15:55:25 +02:00
Dmitry Stogov
59c3a7fbd9
Merge branch 'PHP-8.1'
...
* PHP-8.1:
JIT: Fixed memory leak when opperand of ADD IS_VAR and IS_REFERENCE
2021-09-22 16:37:58 +03:00
Dmitry Stogov
c77c79a093
JIT: Fixed memory leak when opperand of ADD IS_VAR and IS_REFERENCE
2021-09-22 16:37:48 +03:00
Nikita Popov
0007c68202
Merge branch 'PHP-8.1'
...
* PHP-8.1:
Fix JIT typed property inc/dec
2021-09-22 15:33:09 +02:00
Nikita Popov
560dafb50f
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Fix JIT typed property inc/dec
2021-09-22 15:32:59 +02:00
Nikita Popov
770879702a
Fix JIT typed property inc/dec
...
This was leaking memory for pre-inc/dec of a refcounted typed
property if the result was not used.
The code to do this was unnecessarily complicated, we can base
this on the zend_jit_inc/dec_typed_prop() helper and copy to the
result afterwards.
2021-09-22 15:32:19 +02:00
Dmitry Stogov
dd73e5a0b6
Merge branch 'PHP-8.1'
...
* PHP-8.1:
Fixed type inference
2021-09-22 15:32:24 +03:00
Dmitry Stogov
cffba945e5
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Fixed type inference
2021-09-22 15:32:16 +03:00
Dmitry Stogov
e588f24276
Fixed type inference
2021-09-22 15:30:30 +03:00
Dmitry Stogov
8d55998eb5
Merge branch 'PHP-8.1'
...
* PHP-8.1:
JIT: Fixed JIT for FETCH_OBJ when op1 is a reference of non-object
2021-09-22 14:55:14 +03:00
Dmitry Stogov
5860a390d5
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
JIT: Fixed JIT for FETCH_OBJ when op1 is a reference of non-object
2021-09-22 14:55:02 +03:00
Dmitry Stogov
7a93a8a6fd
JIT: Fixed JIT for FETCH_OBJ when op1 is a reference of non-object
2021-09-22 14:52:25 +03:00
Dmitry Stogov
e69fb48ea3
Merge branch 'PHP-8.1'
...
* PHP-8.1:
Tracing JIT: Fixed FETCH_DIM_R with packed array and negative key
2021-09-22 02:06:40 +03:00
Dmitry Stogov
4d4a175dc0
Tracing JIT: Fixed FETCH_DIM_R with packed array and negative key
2021-09-22 02:05:05 +03:00
Dmitry Stogov
984f9c4fef
Merge branch 'PHP-8.1'
...
* PHP-8.1:
Tracing JIT: Fixed bug in register allocator.
2021-09-22 00:47:00 +03:00
Dmitry Stogov
a86ed2df4f
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Tracing JIT: Fixed bug in register allocator.
2021-09-22 00:46:45 +03:00
Dmitry Stogov
19854371ed
Tracing JIT: Fixed bug in register allocator.
...
Type of variable might need to be checked (using type guard) before loading to register.
2021-09-22 00:43:56 +03:00
Nikita Popov
2067388fe6
Merge branch 'PHP-8.1'
...
* PHP-8.1:
Fix range() return type inference for undef operand
2021-09-21 17:04:12 +02:00
Nikita Popov
a846547ed4
Fix range() return type inference for undef operand
...
This results in a long range.
2021-09-21 17:03:18 +02:00
Nikita Popov
e05f36651b
Merge branch 'PHP-8.1'
...
* PHP-8.1:
Don't unconditionally add array value type for undef
2021-09-21 14:54:42 +02:00
Nikita Popov
37337507ec
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Don't unconditionally add array value type for undef
2021-09-21 14:54:34 +02:00
Nikita Popov
61445248cb
Don't unconditionally add array value type for undef
...
We have an invariant that an array value type is set if and only
if an array key type is set, which is violated for the case of
undef values for always invalid keys.
2021-09-21 14:54:16 +02:00
Nikita Popov
7e565daad9
Fix incorrect use chain unlink
...
This issue has been introduced in 87ea3c1f4c ,
where an || has been misinterpreted as an &&.
2021-09-21 14:35:45 +02:00
Nikita Popov
4c31edb44e
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Check for undef var in typed property assignment
2021-09-21 14:11:56 +02:00
Nikita Popov
f4bcf8c393
Check for undef var in typed property assignment
...
Without this check the assignment would actually silently succeed,
not just skip the warning.
2021-09-21 14:09:26 +02:00
Nikita Popov
0ad2444513
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Fix missing undef checks for comparisons
2021-09-21 12:09:18 +02:00
Nikita Popov
95e0cc06a2
Fix missing undef checks for comparisons
2021-09-21 12:06:32 +02:00
Dmitry Stogov
443b196033
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
JIT x86: Fixed register clobbering in code produced for "$x[$y] %= $z".
Fix #81420 : ZipArchive::extractTo extracts outside of destination
2021-09-21 10:48:59 +03:00
Dmitry Stogov
f0f774a129
JIT x86: Fixed register clobbering in code produced for "$x[$y] %= $z".
2021-09-21 10:42:53 +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