@@ -2944,6 +2944,10 @@ static zend_always_inline zend_result _zend_update_type_info(
29442944 }
29452945 UPDATE_SSA_TYPE (tmp , ssa_op -> op1_def );
29462946 break ;
2947+ case ZEND_BIND_INIT_STATIC_OR_JMP :
2948+ tmp = MAY_BE_UNDEF | MAY_BE_ANY | MAY_BE_ARRAY_KEY_ANY | MAY_BE_ARRAY_OF_ANY | MAY_BE_ARRAY_OF_REF | MAY_BE_REF ;
2949+ UPDATE_SSA_TYPE (tmp , ssa_op -> op1_def );
2950+ break ;
29472951 case ZEND_SEND_VAR :
29482952 if (ssa_op -> op1_def >= 0 ) {
29492953 tmp = t1 ;
@@ -4363,6 +4367,7 @@ static void zend_mark_cv_references(const zend_op_array *op_array, const zend_sc
43634367 case ZEND_SEND_REF :
43644368 case ZEND_SEND_VAR_EX :
43654369 case ZEND_SEND_FUNC_ARG :
4370+ case ZEND_BIND_INIT_STATIC_OR_JMP :
43664371 break ;
43674372 case ZEND_INIT_ARRAY :
43684373 case ZEND_ADD_ARRAY_ELEMENT :
@@ -4518,6 +4523,7 @@ ZEND_API bool zend_may_throw_ex(const zend_op *opline, const zend_ssa_op *ssa_op
45184523 case ZEND_ASSIGN_REF :
45194524 case ZEND_BIND_GLOBAL :
45204525 case ZEND_BIND_STATIC :
4526+ case ZEND_BIND_INIT_STATIC_OR_JMP :
45214527 case ZEND_FETCH_DIM_IS :
45224528 case ZEND_FETCH_OBJ_IS :
45234529 case ZEND_SEND_REF :
@@ -4755,14 +4761,12 @@ ZEND_API bool zend_may_throw_ex(const zend_op *opline, const zend_ssa_op *ssa_op
47554761 case ZEND_UNSET_VAR :
47564762 return (t1 & (MAY_BE_OBJECT |MAY_BE_RESOURCE |MAY_BE_ARRAY_OF_OBJECT |MAY_BE_ARRAY_OF_RESOURCE |MAY_BE_ARRAY_OF_ARRAY ));
47574763 case ZEND_BIND_STATIC :
4764+ case ZEND_BIND_INIT_STATIC_OR_JMP :
47584765 if (t1 & (MAY_BE_OBJECT |MAY_BE_RESOURCE |MAY_BE_ARRAY_OF_OBJECT |MAY_BE_ARRAY_OF_RESOURCE |MAY_BE_ARRAY_OF_ARRAY )) {
47594766 /* Destructor may throw. */
47604767 return 1 ;
4761- } else {
4762- zval * value = (zval * )((char * )op_array -> static_variables -> arData + (opline -> extended_value & ~(ZEND_BIND_REF |ZEND_BIND_IMPLICIT |ZEND_BIND_EXPLICIT )));
4763- /* May throw if initializer is CONSTANT_AST. */
4764- return Z_TYPE_P (value ) == IS_CONSTANT_AST ;
47654768 }
4769+ return 0 ;
47664770 case ZEND_ASSIGN_DIM :
47674771 if ((opline + 1 )-> op1_type == IS_CV ) {
47684772 if (_ssa_op1_info (op_array , ssa , opline + 1 , ssa_op + 1 ) & MAY_BE_UNDEF ) {
0 commit comments