@@ -2944,6 +2944,10 @@ static zend_always_inline zend_result _zend_update_type_info(
2944
2944
}
2945
2945
UPDATE_SSA_TYPE (tmp , ssa_op -> op1_def );
2946
2946
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 ;
2947
2951
case ZEND_SEND_VAR :
2948
2952
if (ssa_op -> op1_def >= 0 ) {
2949
2953
tmp = t1 ;
@@ -4363,6 +4367,7 @@ static void zend_mark_cv_references(const zend_op_array *op_array, const zend_sc
4363
4367
case ZEND_SEND_REF :
4364
4368
case ZEND_SEND_VAR_EX :
4365
4369
case ZEND_SEND_FUNC_ARG :
4370
+ case ZEND_BIND_INIT_STATIC_OR_JMP :
4366
4371
break ;
4367
4372
case ZEND_INIT_ARRAY :
4368
4373
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
4518
4523
case ZEND_ASSIGN_REF :
4519
4524
case ZEND_BIND_GLOBAL :
4520
4525
case ZEND_BIND_STATIC :
4526
+ case ZEND_BIND_INIT_STATIC_OR_JMP :
4521
4527
case ZEND_FETCH_DIM_IS :
4522
4528
case ZEND_FETCH_OBJ_IS :
4523
4529
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
4755
4761
case ZEND_UNSET_VAR :
4756
4762
return (t1 & (MAY_BE_OBJECT |MAY_BE_RESOURCE |MAY_BE_ARRAY_OF_OBJECT |MAY_BE_ARRAY_OF_RESOURCE |MAY_BE_ARRAY_OF_ARRAY ));
4757
4763
case ZEND_BIND_STATIC :
4764
+ case ZEND_BIND_INIT_STATIC_OR_JMP :
4758
4765
if (t1 & (MAY_BE_OBJECT |MAY_BE_RESOURCE |MAY_BE_ARRAY_OF_OBJECT |MAY_BE_ARRAY_OF_RESOURCE |MAY_BE_ARRAY_OF_ARRAY )) {
4759
4766
/* Destructor may throw. */
4760
4767
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 ;
4765
4768
}
4769
+ return 0 ;
4766
4770
case ZEND_ASSIGN_DIM :
4767
4771
if ((opline + 1 )-> op1_type == IS_CV ) {
4768
4772
if (_ssa_op1_info (op_array , ssa , opline + 1 , ssa_op + 1 ) & MAY_BE_UNDEF ) {
0 commit comments