Skip to content

php-in-php: drop leftover Type always-on undefined_array_key warning ABI shells (Zend/zend_execute.c) #33249

Description

@PurHur

Category

php-in-php · Trust / #32122-class leftover Type always-on ABI shell

Problem

After #33245 dropped __compiler_assert_options, Builtin\Type still always-on addFunction/registerFunction for __compiler_undefined_array_key_warning_cstr / __compiler_undefined_array_key_warning_long. Leftover empty Type decls vs Runtime ABI drift mint undefined_array_key_warning_*.1 (#31894 / #32122). Sentinel after #33245.

Path Owner today
__compiler_trigger_error StringTriggerError / JitTriggerErrorKernel (#33234)
__compiler_undefined_array_key_warning_* still Type always-on; kernel fills body if Type already declared

php-src reference

PHP implementation target

  • ext/standard/JitTriggerErrorKernel.php — declare both undef-key ABIs module-locally (getNamedFunction first); ensure bridges even when trigger_error body already present
  • lib/JIT/Builtin/Type.php — remove always-on empty decls; keep StringTriggerError::ensureLinked
  • lib/JIT/Builtin/StringTriggerError.php / StringTriggerErrorJit.php — ownership markers
  • No new runtime/*.c

Repro / gate

./script/phpunit.sh --filter TypeDeadUndefinedArrayKeyAbiRuntimeShrinkTest
./script/aot-smoke.sh

Done when

  • Type.php has no always-on __compiler_undefined_array_key_warning_* add/register
  • JitTriggerErrorKernel owns module-local decls; unit shrink test green
  • aot-smoke 8/8
  • No new runtime/*.c

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:compilerCompiler / CFG / JITbugSomething isn't workingimplementation-readySpec complete: repro, php-src ref, done-when — safe for workers to claimphase-0:FoundationPhase 0 – foundation & DevEx

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions