1
0
mirror of https://github.com/php/php-src.git synced 2026-04-23 07:58:20 +02:00
Commit Graph

953 Commits

Author SHA1 Message Date
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