Skip to content

AOT: SplFixedArray var_dump __debugInfo + catchable OOB exceptions (#19783, #21994) - #35673

Merged
PurHur merged 1 commit into
masterfrom
fix/splfixedarray-aot-debuginfo-oob-19783
Aug 29, 2026
Merged

PurHur merged 1 commit into
masterfrom
fix/splfixedarray-aot-debuginfo-oob-19783

Conversation

@PurHur

@PurHur PurHur commented Aug 29, 2026

Copy link
Copy Markdown
Owner

Summary

  • Route thin-AOT var_dump() object dumps through SplFixedArray packed __spl_ht slots (php-src spl_fixedarray_object_debug_info) instead of empty get_object_vars results.
  • Register SplFixedArray::__debugInfo thin-AOT proxy (returns indexed element map).
  • Raise catchable RuntimeException / OutOfBoundsException on OOB dim access via TryCatchHelper::emitCatchableClassError instead of uncatchable logic_exception Error.

php-src reference

  • ext/spl/spl_fixedarray.c — spl_fixedarray_object_debug_info, range errors on OOB offsetSet/offsetGet

Verification

./script/aot-smoke.sh
→ aot-smoke: 8 passed, 0 failed

./script/phpunit.sh --filter SplFixedArrayDebugInfo19783AotTest
→ OK (4 tests, 12 assertions)

./script/docker-exec.sh -- bash -lc '
  for f in test/repro/splfixedarray_debug_info.php test/repro/splfixedarray_oob_catchable_21994.php; do
    php "$f"; php bin/compile.php -o /tmp/t.bin "$f" && /tmp/t.bin
  done'
→ AOT matches Zend on both repros

Closes #19783
Closes #21994

Made with Cursor

…19783, #21994).

Thin AOT var_dump used get_object_vars and missed SplFixedArray indexed slots; OOB dim access raised uncatchable Error via logic_exception instead of RuntimeException.

Co-authored-by: Cursor <cursoragent@cursor.com>
@PurHur
PurHur merged commit 75d7da8 into master Aug 29, 2026
@PurHur
PurHur deleted the fix/splfixedarray-aot-debuginfo-oob-19783 branch August 29, 2026 00:00
PurHur added a commit that referenced this pull request Aug 29, 2026
…35673). (#35680)

#35673 added lib/JIT/VarDumpObjectDebugPropertiesLlvm.php to inventory but not
the spine bundle, breaking spine-coverage-sync and north-star5-verify-fast.

Co-authored-by: PurHur <PurHur@users.noreply.github.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant