History log of /PHP-8.2/Zend/Optimizer/zend_inference.c (Results 1 – 25 of 209)
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
# 97e6c543 06-Feb-2024 Ilija Tovilo

Fix RC inference narrowing for ASSIGN_OBJ

Fixes oss-fuzz #66519
Closes GH-13345


# 631bc816 06-Feb-2024 Ilija Tovilo

Implement stackless internal function calls

Co-authored-by: Dmitry Stogov <dmitry@zend.com>

Closes GH-12461


# f91833d2 05-Feb-2024 Ilija Tovilo

Fix RC inference for DECLARE_LAMBDA_FUNCTION

It doesn't seem like the VM can return RCn. However, the JIT fails without it.
I'll need to look into this more closely.


# 79e8f20e 01-Feb-2024 Ilija Tovilo

Add type inference for various missing opcodes

Closes GH-13304


# 77bc863e 01-Feb-2024 Ilija Tovilo

Improve ZEND_FETCH_CLASS_STATIC static inference for final classes

Same as 95f7335.


# 668edf2c 24-Jan-2024 Ilija Tovilo

Improve ASSIGN_OBJ RC inference

ASSIGN_OBJ may only modify RC if it implements __set.

Closes GH-13237


# b06311cb 24-Jan-2024 Ilija Tovilo

Improve ZEND_NEW RC inference

ZEND_NEW returns RC1 if the instanciated class has no constructor.

Closes GH-13239


# 3a5edcca 29-Jan-2024 Ilija Tovilo

Fix create_object checks

Since PHP 8.3, object handlers may be changed by setting
ce->default_object_handlers, rather than in ce->create_object. Some checks need
to be extended to ch

Fix create_object checks

Since PHP 8.3, object handlers may be changed by setting
ce->default_object_handlers, rather than in ce->create_object. Some checks need
to be extended to check for the default handlers.

Closes GH-13272

show more ...


# 34e2dc56 29-Jan-2024 Ilija Tovilo

Improve is_instanceof inference (#13238)

When a class is final, it may be treated as !is_instanceof.


# 6f6289ca 23-Jan-2024 Ilija Tovilo

Avoid new SSA var for ASSIGN_OBJ_REF without RC inference

Previously, this variable was necessary because of auto-vivification on
UNDEF/null/false. It's now only used for RC inference, a

Avoid new SSA var for ASSIGN_OBJ_REF without RC inference

Previously, this variable was necessary because of auto-vivification on
UNDEF/null/false. It's now only used for RC inference, as auto-vivification has
been removed.

This implicitly solves an inference problem for $obj->bar &= $obj; where we get
a new variable for both literal references to $obj, with the first one getting
the RCn flag, and the second one getting the MAY_BE_REFERENCE flag. Thus, the
first variable will be missing the reference type, causing a false-positive type
inference warning.

If we want to verify RC inference at some point we'll need a better solution.

Closes GH-13233

show more ...


# cb1e8429 06-Nov-2023 Ilija Tovilo

Fix inference of COPY_TMP

Since GH-11592 COPY_TMP may receive and thus define references. Unfortunately,
the name COPY_TMP is no longer accurate.

Closes GH-12619


# 1c95e227 02-Nov-2023 Dmitry Stogov

Fixed HASH/PACKED array inference through MAY_BE_ARRAY_EMPTY flag (#12591)

* Fixed HASH/PACKED array inference through MAY_BE_ARRAY_EMPTY flag

This fixes GH-12527

* typo


# bd185c3d 26-Oct-2023 Dmitry Stogov

Implement iterative Pearce's SCC finding algoritm (#12528)

* Switch to Pearce's SCC algorithm

* Implement iterative Pearce's SCC algorithm

* Wrap "goto" with "#ifdef SYM_RA

Implement iterative Pearce's SCC finding algoritm (#12528)

* Switch to Pearce's SCC algorithm

* Implement iterative Pearce's SCC algorithm

* Wrap "goto" with "#ifdef SYM_RANGE"

show more ...


# ce269178 26-Oct-2023 Dmitry Stogov

Fixed code generation for DETCH_DIM_R

Fixes oss-fuzz #63613 and #63619


# d8696f92 17-Jul-2023 George Peter Banyard

[RFC] Path to Saner Increment/Decrement operators (#10358)

* Add behavioural tests for incdec operators

* Add support to ++/-- for objects castable to _IS_NUMBER

* Add str_

[RFC] Path to Saner Increment/Decrement operators (#10358)

* Add behavioural tests for incdec operators

* Add support to ++/-- for objects castable to _IS_NUMBER

* Add str_increment() function

* Add str_decrement() function

RFC: https://wiki.php.net/rfc/saner-inc-dec-operators

Co-authored-by: Ilija Tovilo <ilija.tovilo@me.com>
Co-authored-by: Arnaud Le Blanc <arnaud.lb@gmail.com>

show more ...


# 3d944a36 09-Jul-2023 Niels Dossche <7771979+nielsdos@users.noreply.github.com>

Update type inference for ZEND_STRLEN

Since PHP 8.0, this cannot return NULL anymore, the only possible return
value is long. See https://wiki.php.net/rfc/consistent_type_errors.


# 838d80e7 09-Jul-2023 Niels Dossche <7771979+nielsdos@users.noreply.github.com>

Update type inference for ZEND_GET_CLASS and ZEND_GET_CALLED_CLASS

These cannot return false anymore since PHP 8.0.


# 0b1d750d 11-Aug-2022 Ilija Tovilo

Allow arbitrary expressions in static variable initializer

Closes GH-9301


# d5c649b3 23-Feb-2023 Max Kellermann

zend_compiler, ...: use `uint8_t` instead of `zend_uchar` (#10621)

`zend_uchar` suggests that the value is an ASCII character, but here,
it's about very small integers. This is misleadi

zend_compiler, ...: use `uint8_t` instead of `zend_uchar` (#10621)

`zend_uchar` suggests that the value is an ASCII character, but here,
it's about very small integers. This is misleading, so let's use a
C99 integer instead.

On all architectures currently supported by PHP, `zend_uchar` and
`uint8_t` are identical. This change is only about code readability.

show more ...


# d2cdfdbe 04-Feb-2023 rj1

fixed some misspellings (#10503)


# 2f4973fd 16-Jan-2023 Christoph M. Becker

Revert GH-10279

Cf. <https://github.com/php/php-src/pull/10220#issuecomment-1383739816>.

This reverts commit 45a128c9de93bf60956102d85d15f1fe8913bb70.
This reverts commit 1eb71c

Revert GH-10279

Cf. <https://github.com/php/php-src/pull/10220#issuecomment-1383739816>.

This reverts commit 45a128c9de93bf60956102d85d15f1fe8913bb70.
This reverts commit 1eb71c3f155a42ad6867cd5e2f6d921a99506a37.
This reverts commit 492523a779dced91eb09215183287e0856b693bf.
This reverts commit c7a4633891392d16d40b08135598807b3f0443b0.
This reverts commit 308adb915c1b659ab377f752fb27b408a455d7ed.
This reverts commit cd27d5e07f01172ac8a701996d260a731489d856.
This reverts commit c5933409b47bea760977cf9c9ea04cbb63aaafe5.
This reverts commit 46371f4eb339f7e7615a8732d61f2369f8d9129e.
This reverts commit 623e2e9fc6a23b8eb7f22010eaf99bf6f638917d.
This reverts commit e7434c124772c05fe836832e02196d50bec10c23.
This reverts commit d28d323ca20976ed776171330b90588cc3857dd6.
This reverts commit 1a067b84ee423a6fb06a5debd92b4cafefeac4e4.
This reverts commit a55c0c5fc3f624a685f42281df26cf87f445be43.
This reverts commit b5aeb3a4d40dbf38da65975d12b9d2c593b83bdd.
This reverts commit f061a035e44d3f6bbc71774f2101525d74fbf16f.
This reverts commit b088575119b3244a4d08f6a300251111a221c66b.
This reverts commit b1d48774a79592e7fb1ba85d3a2bd6717f25acec.
This reverts commit 94f9a20ce6451b54e8346cc474de6b4f9b8897a4.
This reverts commit 4831e48708e19346ace0fa5f3f085ee8afd43267.
This reverts commit cd985de190534c8e3567a4c5547eb98c45337fa0.
This reverts commit 9521d21681b22a471f21b3c56e32b883acac3301.
This reverts commit d6136151e9f7fc40e753ac0ebe1790e0d0371b6b.

show more ...


# 492523a7 04-Jan-2023 Max Kellermann

Zend/zend_inference: include cleanup


# efd5ecb0 03-Jan-2023 Max Kellermann

Zend/Optimizer/zend_inference: make several pointers const

This allows removing several deconst casts from the JIT.


# b33e3eb8 16-Jan-2024 Dmitry Stogov

Fix zend_may_throw() for FETCH_DIM_IS and ISSET_ISEMPTY_DIM_OBJ

Recentlty this insructions were updated to emit warning on inability to
convert double index to long. This may lead to exc

Fix zend_may_throw() for FETCH_DIM_IS and ISSET_ISEMPTY_DIM_OBJ

Recentlty this insructions were updated to emit warning on inability to
convert double index to long. This may lead to exception.

This fixes memory leak on wordpress test suite (nightly workflow)

show more ...


# 731734da 18-Dec-2023 Dmitry Stogov

Fixed type inference

Fixes oss-fuzz #65150


123456789