mirror of
https://github.com/php/php-src.git
synced 2026-03-29 03:32:20 +02:00
JIT doesn't recognize that variables may be used after returning from a trace due to YIELD, so some effects may never be stored to memory. YIELD ops terminate trace recordings with ZEND_JIT_TRACE_STOP_RETURN, and are handled mostly like RETURN. Here I change zend_jit_trace_execute() so that YIELD terminates recordings with ZEND_JIT_TRACE_STOP_INTERPRETER instead, to ensure that we recognize that variables may be used after returning from the trace due to YIELD. Fixes GH-19493 Closes GH-19515