@@ -601,6 +601,12 @@ static zend_always_inline int _zend_ssa_rename_op(const zend_op_array *op_array,
601
601
break ;
602
602
case ZEND_ASSIGN_DIM :
603
603
case ZEND_ASSIGN_OBJ :
604
+ if (opline -> op1_type == IS_CV ) {
605
+ ssa_ops [k ].op1_def = ssa_vars_count ;
606
+ var [EX_VAR_TO_NUM (opline -> op1 .var )] = ssa_vars_count ;
607
+ ssa_vars_count ++ ;
608
+ //NEW_SSA_VAR(opline->op1.var)
609
+ }
604
610
next = opline + 1 ;
605
611
if (next -> op1_type & (IS_CV |IS_VAR |IS_TMP_VAR )) {
606
612
ssa_ops [k + 1 ].op1_use = var [EX_VAR_TO_NUM (next -> op1 .var )];
@@ -612,11 +618,14 @@ static zend_always_inline int _zend_ssa_rename_op(const zend_op_array *op_array,
612
618
//NEW_SSA_VAR(next->op1.var)
613
619
}
614
620
}
615
- if (opline -> op1_type == IS_CV ) {
616
- goto add_op1_def ;
617
- }
618
621
break ;
619
622
case ZEND_ASSIGN_OBJ_REF :
623
+ if (opline -> op1_type == IS_CV ) {
624
+ ssa_ops [k ].op1_def = ssa_vars_count ;
625
+ var [EX_VAR_TO_NUM (opline -> op1 .var )] = ssa_vars_count ;
626
+ ssa_vars_count ++ ;
627
+ //NEW_SSA_VAR(opline->op1.var)
628
+ }
620
629
next = opline + 1 ;
621
630
if (next -> op1_type & (IS_CV |IS_VAR |IS_TMP_VAR )) {
622
631
ssa_ops [k + 1 ].op1_use = var [EX_VAR_TO_NUM (next -> op1 .var )];
@@ -628,9 +637,6 @@ static zend_always_inline int _zend_ssa_rename_op(const zend_op_array *op_array,
628
637
//NEW_SSA_VAR(next->op1.var)
629
638
}
630
639
}
631
- if (opline -> op1_type == IS_CV ) {
632
- goto add_op1_def ;
633
- }
634
640
break ;
635
641
case ZEND_ASSIGN_STATIC_PROP :
636
642
next = opline + 1 ;
@@ -667,14 +673,17 @@ static zend_always_inline int _zend_ssa_rename_op(const zend_op_array *op_array,
667
673
break ;
668
674
case ZEND_ASSIGN_DIM_OP :
669
675
case ZEND_ASSIGN_OBJ_OP :
676
+ if (opline -> op1_type == IS_CV ) {
677
+ ssa_ops [k ].op1_def = ssa_vars_count ;
678
+ var [EX_VAR_TO_NUM (opline -> op1 .var )] = ssa_vars_count ;
679
+ ssa_vars_count ++ ;
680
+ //NEW_SSA_VAR(opline->op1.var)
681
+ }
670
682
next = opline + 1 ;
671
683
if (next -> op1_type & (IS_CV |IS_VAR |IS_TMP_VAR )) {
672
684
ssa_ops [k + 1 ].op1_use = var [EX_VAR_TO_NUM (next -> op1 .var )];
673
685
//USE_SSA_VAR(op_array->last_var + next->op1.var);
674
686
}
675
- if (opline -> op1_type == IS_CV ) {
676
- goto add_op1_def ;
677
- }
678
687
break ;
679
688
case ZEND_ASSIGN_OP :
680
689
case ZEND_PRE_INC :
0 commit comments