History log of /PHP-7.4/ext/opcache/Optimizer/zend_inference.c (Results 1 – 25 of 205)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 7a8ffcec 09-Apr-2021 Dmitry Stogov

Fixed type inference for OP_DATA


# e8579365 11-Sep-2020 Nikita Popov

Fixed bug #80805

Handle missing result_var in binary_op_result_type.

(cherry picked from commit 8446e2827585c37d0739f8d44fa8d359cbbb6551)


# 83738281 30-Oct-2020 Nikita Popov

Fix SSA integrity violation for type inference in dead code

The foreach body can never be executed and thus may contain empty
types. We should still uphold our SSA integrity invariants i

Fix SSA integrity violation for type inference in dead code

The foreach body can never be executed and thus may contain empty
types. We should still uphold our SSA integrity invariants in that
case.

show more ...


# 65120cfc 25-Mar-2020 Dmitry Stogov

Fixed bug #79412 (Opcache chokes and uses 100% CPU on specific script).


# 34f1266a 23-Mar-2020 Nikita Popov

Handle NULL caller_call_opline

This can happen if there is an EXIT in the call arguments, in which
case the DO_CALL opcode may be eliminated as unreachable.


# 5b51b633 27-Feb-2020 Dmitry Stogov

Fixed incorrect overflow detection


# f70b5523 30-Jan-2020 Nikita Popov

Fixed bug #79193


Revision tags: php-7.3.13RC1, php-7.2.26RC1, php-7.4.0, php-7.2.25, php-7.3.12, php-7.4.0RC6, php-7.3.12RC1, php-7.2.25RC1, php-7.4.0RC5, php-7.1.33, php-7.2.24, php-7.3.11, php-7.4.0RC4, php-7.3.11RC1, php-7.2.24RC1, php-7.4.0RC3
# a6c9c7c2 27-Sep-2019 Nikita Popov

Handle resources used as array keys consistently

Resources used as array keys are generally handled by throwing a
notice and converting the resource to the resource handle. The only

Handle resources used as array keys consistently

Resources used as array keys are generally handled by throwing a
notice and converting the resource to the resource handle. The only
exception is the [$resource => null] syntax, where this was treated
as an illegal offset type instead. However, this also only happened
for VM evaluations, the AST evaluator did handle resources correctly.

show more ...


Revision tags: php-7.2.23, php-7.3.10, php-7.4.0RC2, php-7.2.23RC1, php-7.3.10RC1, php-7.4.0RC1, php-7.1.32, php-7.2.22, php-7.3.9, php-7.4.0beta4, php-7.2.22RC1, php-7.3.9RC1, php-7.4.0beta2
# afd96392 01-Aug-2019 Nikita Popov

Revert "Use RW fetch for argument unpacking"

This reverts commit 6913ec3282149914e999d91b056fe1cc68d15ed7.
This reverts commit a9e332e02777c9b3805f6af846a4f48504109d2b.

Causes h

Revert "Use RW fetch for argument unpacking"

This reverts commit 6913ec3282149914e999d91b056fe1cc68d15ed7.
This reverts commit a9e332e02777c9b3805f6af846a4f48504109d2b.

Causes https://bugs.php.net/bug.php?id=78356, which I don't have
a good solution for.

show more ...


Revision tags: php-7.1.31, php-7.2.21
# a9e332e0 30-Jul-2019 Nikita Popov

Handle RW UNPACK in inference


Revision tags: php-7.3.8, php-7.4.0beta1, php-7.2.21RC1, php-7.3.8RC1, php-7.4.0alpha3
# 5846e852 05-Jul-2019 Nikita Popov

Backport fe_reset_rw case


# 73fd2da7 05-Jul-2019 Nikita Popov

Make sure all cases of fetch_dim_w adjustment are handled

Use EMPTY_SWITCH_DEFAULT_CASE() to trigger an assertion in case
we miss something.

Add missing FE_RESET_RW case.


# c353f17d 05-Jul-2019 Nikita Popov

Fix inference for compound object op on dim


# 48ca5a1e 05-Jul-2019 Dmitry Stogov

Replace ZEND_ASSIGN_ADD (and others) by ZEND_ASSIGN_OP, ZEND_ASSIGN_DIM_OP, ZEND_ASSGIN_OBJ_OP and ZEND_ASSIGN_STATIC_PROP_OP


Revision tags: php-7.3.7, php-7.2.20, php-7.4.0alpha2
# 8227e0f7 21-Jun-2019 Nikita Popov

Avoid ub in shift overflow check

Also fix an off-by-one error. While 1 << 63 overflows, -1 << 63 does
not.


Revision tags: php-7.3.7RC3
# e162a1c0 20-Jun-2019 Nikita Popov

Fix maybe uninit warning


# 117c7b3f 20-Jun-2019 Nikita Popov

Avoid overflow in mul range calculation

By using ZEND_SIGNED_MULTIPLY_LONG, which already implemented
efficient overflow checking logic.


# 3a97b8b4 19-Jun-2019 Nikita Popov

Backport "Avoid UB in overflow checks"

Cherry-pick of bb940d9969e08853d92a09f7a02adc3228cf1c2c without
the JIT parts.


Revision tags: php-7.3.7RC2, php-7.2.20RC2, php-7.4.0alpha1, php-7.3.7RC1, php-7.2.20RC1, php-7.2.19, php-7.3.6, php-7.1.30
# 89b2d886 24-May-2019 Nikita Popov

Register class before fetching parent

We want the class declaration to be available while compiling the
parent class.


# 59dfaa3f 28-May-2019 Nikita Popov

Fix type inference of SEND_UNPACK with empty array

An empty array will not be turned into an array of references.
This violated the invariant than an array has values iff it has
keys.


# fd23f910 27-May-2019 Nikita Popov

BIND_STATIC of implicit binding may be undef

Even though we don't need it at runtime, add the BIND_IMPLICIT
flag to BIND_STATIC as well, so we can distinguish this case in
type infer

BIND_STATIC of implicit binding may be undef

Even though we don't need it at runtime, add the BIND_IMPLICIT
flag to BIND_STATIC as well, so we can distinguish this case in
type inference.

This fixes a JIT miscompile in arrow_functions/002.phpt.

show more ...


Revision tags: php-7.2.19RC1, php-7.3.6RC1, php-7.1.29, php-7.2.18, php-7.3.5, php-7.2.18RC1, php-7.3.5RC1, php-7.2.17, php-7.3.4, php-7.1.28, php-7.3.4RC1, php-7.2.17RC1, php-7.1.27, php-7.3.3, php-7.2.16, php-7.3.3RC1, php-7.2.16RC1, php-7.2.15, php-7.3.2, php-7.2.15RC1, php-7.3.2RC1, php-5.6.40, php-7.1.26, php-7.3.1, php-7.2.14, php-7.2.14RC1, php-7.3.1RC1, php-5.6.39, php-7.1.25, php-7.2.13, php-7.0.33, php-7.3.0, php-7.1.25RC1, php-7.2.13RC1, php-7.3.0RC6, php-7.1.24, php-7.2.12, php-7.3.0RC5, php-7.1.24RC1, php-7.2.12RC1, php-7.3.0RC4, php-7.1.23, php-7.2.11, php-7.3.0RC3
# e829d087 06-Oct-2018 CHU Zhaowei

Implement spread operator in arrays

RFC: https://wiki.php.net/rfc/spread_operator_for_array

Closes GH-3640.


# 1827d784 22-Apr-2019 Dmitry Stogov

Remove unused BIND_STATIC insructions


# dd4d43c9 03-Apr-2019 Dmitry Stogov

Remove RC1 and RCN from scalar types.


# 2cfb09ca 22-Feb-2019 Nikita Popov

Fix inference warning about missing key type


123456789