2222 * php zend_vm_gen.php
2323 */
2424
25- #include <stdint.h>
26-
2725ZEND_VM_HELPER (zend_add_helper , ANY , ANY , zval * op_1 , zval * op_2 )
2826{
2927 USE_OPLINE
@@ -4478,6 +4476,7 @@ ZEND_VM_COLD_CONST_HANDLER(124, ZEND_VERIFY_RETURN_TYPE, CONST|TMP|VAR|UNUSED|CV
44784476#if !ZEND_VM_SPEC || (OP1_TYPE != IS_UNUSED )
44794477 USE_OPLINE
44804478 zval * retval_ref , * retval_ptr ;
4479+ zend_arg_info * ret_info = EX (func )-> common .arg_info - 1 ;
44814480 retval_ref = retval_ptr = GET_OP1_ZVAL_PTR_UNDEF (BP_VAR_R );
44824481
44834482 if (OP1_TYPE == IS_CONST ) {
@@ -4492,8 +4491,7 @@ ZEND_VM_COLD_CONST_HANDLER(124, ZEND_VERIFY_RETURN_TYPE, CONST|TMP|VAR|UNUSED|CV
44924491 ZVAL_DEREF (retval_ptr );
44934492 }
44944493
4495- uint32_t pure_type_mask = opline -> extended_value ;
4496- if (EXPECTED (ZEND_TYPE_MASK_CONTAINS_CODE (pure_type_mask , Z_TYPE_P (retval_ptr )))) {
4494+ if (EXPECTED (ZEND_TYPE_CONTAINS_CODE (ret_info -> type , Z_TYPE_P (retval_ptr )))) {
44974495 ZEND_VM_NEXT_OPCODE ();
44984496 }
44994497
@@ -4503,7 +4501,7 @@ ZEND_VM_COLD_CONST_HANDLER(124, ZEND_VERIFY_RETURN_TYPE, CONST|TMP|VAR|UNUSED|CV
45034501 if (UNEXPECTED (EG (exception ))) {
45044502 HANDLE_EXCEPTION ();
45054503 }
4506- if (pure_type_mask & MAY_BE_NULL ) {
4504+ if (ZEND_TYPE_FULL_MASK ( ret_info -> type ) & MAY_BE_NULL ) {
45074505 ZEND_VM_NEXT_OPCODE ();
45084506 }
45094507 }
@@ -4524,8 +4522,6 @@ ZEND_VM_COLD_CONST_HANDLER(124, ZEND_VERIFY_RETURN_TYPE, CONST|TMP|VAR|UNUSED|CV
45244522 }
45254523 }
45264524
4527- /* Fetch full return type info from function arg_info */
4528- const zend_arg_info * ret_info = EX (func )-> common .arg_info - 1 ;
45294525 SAVE_OPLINE ();
45304526 if (UNEXPECTED (!zend_check_type_slow (& ret_info -> type , retval_ptr , ref , 1 , 0 ))) {
45314527 zend_verify_return_error (EX (func ), retval_ptr );
0 commit comments