Commit fc450aef690 for php.net

commit fc450aef69012ab6be3f0b4e5b644d5d0c95f18a
Merge: 05574fc74d3 06bfe158a52
Author: Arnaud Le Blanc <arnaud.lb@gmail.com>
Date:   Mon May 18 19:06:15 2026 +0200

    Merge branch 'PHP-8.5'

    * PHP-8.5:
      Fix tailcall helper dispatch after VM interrupt

diff --cc Zend/zend_vm_execute.h
index 2b5b9e5fcd4,0faa84444be..5b52f194184
Binary files differ
diff --cc Zend/zend_vm_gen.php
index d26d6a166dd,1ffa80f718d..8e65bc0a28e
--- a/Zend/zend_vm_gen.php
+++ b/Zend/zend_vm_gen.php
@@@ -2136,11 -2159,11 +2156,13 @@@ function gen_executor($f, $skl, $spec,
                          out($f,"        ZEND_VM_TAIL_CALL(opline->handler(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); \\\n");
                          out($f,"    } while (0)\n");
                          out($f,"# define ZEND_VM_DISPATCH_TO_LEAVE_HELPER(helper) opline = &call_leave_op; SAVE_OPLINE(); ZEND_VM_CONTINUE()\n");
-                         out($f,"# define ZEND_VM_INTERRUPT()        ZEND_VM_TAIL_CALL(zend_interrupt_helper".($spec?"_SPEC":"")."_TAILCALL(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU))\n");
+                         out($f,"# define ZEND_VM_INTERRUPT()        ZEND_VM_TAIL_CALL(zend_interrupt_TAILCALL(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU))\n");
 +                        out($f,"# define ZEND_VM_ENTER_EX() ZEND_VM_INTERRUPT_CHECK(); ZEND_VM_CONTINUE()\n");
 +                        out($f,"# define ZEND_VM_LEAVE()    ZEND_VM_CONTINUE()\n");
                          out($f,"\n");
                          out($f,"static ZEND_OPCODE_HANDLER_RET ZEND_OPCODE_HANDLER_CCONV zend_interrupt_helper".($spec?"_SPEC":"")."_TAILCALL(ZEND_OPCODE_HANDLER_ARGS);\n");
+                         out($f,"static ZEND_OPCODE_HANDLER_RET ZEND_OPCODE_HANDLER_FUNC_CCONV zend_interrupt(ZEND_OPCODE_HANDLER_ARGS);\n");
+                         out($f,"static ZEND_OPCODE_HANDLER_RET ZEND_OPCODE_HANDLER_CCONV zend_interrupt_TAILCALL(ZEND_OPCODE_HANDLER_ARGS);\n");
                          out($f,"static ZEND_OPCODE_HANDLER_RET ZEND_OPCODE_HANDLER_CCONV ZEND_NULL_TAILCALL_HANDLER(ZEND_OPCODE_HANDLER_ARGS);\n");
                          out($f,"static ZEND_OPCODE_HANDLER_RET ZEND_OPCODE_HANDLER_CCONV ZEND_HALT_TAILCALL_HANDLER(ZEND_OPCODE_HANDLER_ARGS);\n");
                          out($f,"static zend_never_inline const zend_op *ZEND_OPCODE_HANDLER_CCONV zend_leave_helper_SPEC_TAILCALL(zend_execute_data *ex, const zend_op *opline);\n");
diff --cc ext/zend_test/object_handlers_arginfo.h
index 34008c33bc0,b46028a6e01..995bd62dc47
Binary files differ