@@ -2995,11 +2995,13 @@ static int zend_update_type_info(const zend_op_array *op_array,
29952995 case ZEND_FETCH_DIM_UNSET :
29962996 case ZEND_FETCH_DIM_FUNC_ARG :
29972997 case ZEND_FETCH_LIST_R :
2998+ case ZEND_FETCH_LIST_W :
29982999 if (ssa_ops [i ].op1_def >= 0 ) {
29993000 tmp = t1 & ~(MAY_BE_RC1 |MAY_BE_RCN );
30003001 if (opline -> opcode == ZEND_FETCH_DIM_W ||
30013002 opline -> opcode == ZEND_FETCH_DIM_RW ||
3002- opline -> opcode == ZEND_FETCH_DIM_FUNC_ARG ) {
3003+ opline -> opcode == ZEND_FETCH_DIM_FUNC_ARG ||
3004+ opline -> opcode == ZEND_FETCH_LIST_W ) {
30033005 if (t1 & (MAY_BE_UNDEF |MAY_BE_NULL |MAY_BE_FALSE )) {
30043006 if (opline -> opcode != ZEND_FETCH_DIM_FUNC_ARG ) {
30053007 tmp &= ~(MAY_BE_UNDEF |MAY_BE_NULL |MAY_BE_FALSE );
@@ -3046,6 +3048,7 @@ static int zend_update_type_info(const zend_op_array *op_array,
30463048 case ZEND_FETCH_DIM_W :
30473049 case ZEND_FETCH_DIM_RW :
30483050 case ZEND_FETCH_DIM_FUNC_ARG :
3051+ case ZEND_FETCH_LIST_W :
30493052 case ZEND_ASSIGN_ADD :
30503053 case ZEND_ASSIGN_SUB :
30513054 case ZEND_ASSIGN_MUL :
@@ -3116,7 +3119,8 @@ static int zend_update_type_info(const zend_op_array *op_array,
31163119 opline -> op2_type == IS_UNUSED );
31173120 if (opline -> opcode == ZEND_FETCH_DIM_W ||
31183121 opline -> opcode == ZEND_FETCH_DIM_RW ||
3119- opline -> opcode == ZEND_FETCH_DIM_FUNC_ARG ) {
3122+ opline -> opcode == ZEND_FETCH_DIM_FUNC_ARG ||
3123+ opline -> opcode == ZEND_FETCH_LIST_W ) {
31203124 if (t1 & (MAY_BE_ERROR |MAY_BE_TRUE |MAY_BE_LONG |MAY_BE_DOUBLE |MAY_BE_RESOURCE |MAY_BE_OBJECT )) {
31213125 tmp |= MAY_BE_ERROR ;
31223126 } else if (opline -> op2_type == IS_UNUSED ) {
0 commit comments