File tree 1 file changed +2
-6
lines changed
1 file changed +2
-6
lines changed Original file line number Diff line number Diff line change @@ -1741,7 +1741,7 @@ static uint32_t get_ssa_alias_types(zend_ssa_alias_kind alias) {
1741
1741
1742
1742
#define COPY_SSA_OBJ_TYPE (from_var , to_var ) do { \
1743
1743
if ((from_var) >= 0 && (ssa_var_info[(from_var)].type & MAY_BE_OBJECT) \
1744
- && ssa_var_info[(from_var)].ce) { \
1744
+ && ssa_var_info[(from_var)].ce && !(ssa_var_info[(to_var)].type & MAY_BE_REF) ) { \
1745
1745
UPDATE_SSA_OBJ_TYPE(ssa_var_info[(from_var)].ce, \
1746
1746
ssa_var_info[(from_var)].is_instanceof, (to_var)); \
1747
1747
} else { \
@@ -2740,11 +2740,7 @@ static zend_always_inline int _zend_update_type_info(
2740
2740
tmp |= MAY_BE_DOUBLE ;
2741
2741
}
2742
2742
UPDATE_SSA_TYPE (tmp , ssa_op -> op1_def );
2743
- if (tmp & MAY_BE_REF ) {
2744
- UPDATE_SSA_OBJ_TYPE (NULL , 0 , ssa_op -> op1_def );
2745
- } else {
2746
- COPY_SSA_OBJ_TYPE (ssa_op -> op2_use , ssa_op -> op1_def );
2747
- }
2743
+ COPY_SSA_OBJ_TYPE (ssa_op -> op2_use , ssa_op -> op1_def );
2748
2744
}
2749
2745
if (ssa_op -> result_def >= 0 ) {
2750
2746
if (tmp & MAY_BE_REF ) {
You can’t perform that action at this time.
0 commit comments