Skip to content

AOT: preserve inheritUndefinedLocals temps across JUMP (#33936 follow-up) - #33951

Merged
PurHur merged 3 commits into
masterfrom
fix/33936-aot-static-array-dim-fetch
Aug 22, 2026
Merged

PurHur merged 3 commits into
masterfrom
fix/33936-aot-static-array-dim-fetch

Conversation

@PurHur

@PurHur PurHur commented Aug 22, 2026 •

Copy link
Copy Markdown
Owner

Summary

php-src

  • Zend/zend_execute.c — zend_fetch_dimension / ZEND_FETCH_STATIC_PROP_R

Test plan

  • ./script/aot-smoke.sh → 8/8 (pre-merge baseline)
  • PHP_COMPILER_HELPER_RUNTIME_O=0 php bin/compile.php -o /tmp/sa33936.bin test/repro/issue_33936_static_array_dim_aot.php && /tmp/sa33936.bin → 1 / 1 / 1:1 / 1 / 1 / 9:1
  • ./script/phpunit.sh --filter 'StaticArrayDimFetch33936AotTest|Issue33936StaticArrayDimAotTest' → OK

PurHur and others added 3 commits August 22, 2026 22:33
freeDeadVariables before JUMP was delref'ing FETCH_STATIC_PROP_R copies
used by bare C::$a['k'] after keyed INIT_ARRAY forced a split.

Co-authored-by: Cursor <cursoragent@cursor.com>
Complements #33944 (skip CFG split for static-prop dim) with the JUMP
side fix so other inheritUndefinedLocals temps are not delref'd early.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
@PurHur PurHur changed the title AOT: keep static-prop dim temps across string-key CFG splits (#33936) AOT: preserve inheritUndefinedLocals temps across JUMP (#33936 follow-up) Aug 22, 2026
@PurHur
PurHur merged commit 65aef52 into master Aug 22, 2026
1 check failed
@PurHur
PurHur deleted the fix/33936-aot-static-array-dim-fetch branch August 22, 2026 22:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

AOT: dim fetch on static array property returns empty — C::$a['k'] silent wrong output (Zend/zend_execute.c)

1 participant