@@ -3290,8 +3290,7 @@ static int zend_update_type_info(const zend_op_array *op_array,
3290
3290
/* FETCH_LIST on a string behaves like FETCH_R on null */
3291
3291
tmp = zend_array_element_type (
3292
3292
opline -> opcode != ZEND_FETCH_LIST_R ? t1 : ((t1 & ~MAY_BE_STRING ) | MAY_BE_NULL ),
3293
- opline -> opcode != ZEND_FETCH_DIM_R && opline -> opcode != ZEND_FETCH_DIM_IS
3294
- && opline -> opcode != ZEND_FETCH_LIST_R ,
3293
+ opline -> result_type == IS_VAR ,
3295
3294
opline -> op2_type == IS_UNUSED );
3296
3295
if (opline -> opcode == ZEND_FETCH_DIM_W ||
3297
3296
opline -> opcode == ZEND_FETCH_DIM_RW ||
@@ -3336,7 +3335,7 @@ static int zend_update_type_info(const zend_op_array *op_array,
3336
3335
}
3337
3336
if (ssa_ops [i ].result_def >= 0 ) {
3338
3337
tmp = MAY_BE_ANY | MAY_BE_ARRAY_KEY_ANY | MAY_BE_ARRAY_OF_ANY | MAY_BE_ARRAY_OF_REF ;
3339
- if (opline -> opcode == ZEND_FETCH_OBJ_R || opline -> opcode == ZEND_FETCH_OBJ_IS ) {
3338
+ if (opline -> result_type == IS_TMP_VAR ) {
3340
3339
/* can't be REF because of ZVAL_COPY_DEREF() usage */
3341
3340
tmp |= MAY_BE_RC1 | MAY_BE_RCN ;
3342
3341
} else {
@@ -3442,14 +3441,6 @@ static int zend_update_type_info(const zend_op_array *op_array,
3442
3441
/* Forbidden opcodes */
3443
3442
ZEND_ASSERT (0 );
3444
3443
break ;
3445
- case ZEND_FETCH_R :
3446
- case ZEND_FETCH_IS :
3447
- case ZEND_FETCH_STATIC_PROP_R :
3448
- case ZEND_FETCH_STATIC_PROP_IS :
3449
- /* can't be REF because of ZVAL_COPY_DEREF() usage */
3450
- tmp = MAY_BE_RC1 | MAY_BE_RCN | MAY_BE_ANY | MAY_BE_ARRAY_KEY_ANY | MAY_BE_ARRAY_OF_ANY | MAY_BE_ARRAY_OF_REF ;
3451
- UPDATE_SSA_TYPE (tmp , ssa_ops [i ].result_def );
3452
- break ;
3453
3444
default :
3454
3445
unknown_opcode :
3455
3446
if (ssa_ops [i ].op1_def >= 0 ) {
0 commit comments