[php-src] PR #24635: Fix GH-24634: Tracing JIT reads a stale stack slot at a side exit
| From: | lazerg | Date: | Sat, 24 Oct 2026 08:32:13 +0000 |
| Subject: | [php-src] PR #24635: Fix GH-24634: Tracing JIT reads a stale stack slot at a side exit | ||
| Groups: | php.git-pulls | ||
| Request: | Send a blank email to git-pulls+get-39803@lists.php.net to get a copy of this message | ||
Pull Request: https://github.com/php/php-src/pull/24635
Author: lazerg
zend_ssa_is_last_use() only looked at the next use in the chain. If that use was a
no-val use (an assignment that overwrites the CV) on one branch, it treated the current use as the
last one, even when another branch still reads the value. The tracing JIT then dropped the CV's
register without storing it, and a side exit into the other branch read a stale stack slot. Now it
keeps going past no-val uses and only reports a last use when no real read follows.
Fixes GH-24634