Avoid "goto"
authorDmitry Stogov <dmitry@zend.com>
Tue, 21 Oct 2014 07:43:13 +0000 (11:43 +0400)
committerDmitry Stogov <dmitry@zend.com>
Tue, 21 Oct 2014 07:43:13 +0000 (11:43 +0400)
Zend/zend_vm_def.h
Zend/zend_vm_execute.h

index e362c4a701925f9be7f387a77c7dc66fb79c2649..24ae57eab150ee96d823fb185cb9953b0e971d0f 100644 (file)
@@ -452,19 +452,17 @@ ZEND_VM_HELPER_EX(zend_binary_assign_op_dim_helper, VAR|UNUSED|CV, CONST|TMP|VAR
                if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
                        ZVAL_NULL(EX_VAR(opline->result.var));
                }
-               ZEND_VM_C_GOTO(assign_op_dim_exit);
-       }
-
-       ZVAL_DEREF(var_ptr);
-       SEPARATE_ZVAL_NOREF(var_ptr);
+       } else {
+               ZVAL_DEREF(var_ptr);
+               SEPARATE_ZVAL_NOREF(var_ptr);
 
-       binary_op(var_ptr, var_ptr, value TSRMLS_CC);
+               binary_op(var_ptr, var_ptr, value TSRMLS_CC);
 
-       if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
-               ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
+               if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
+                       ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
+               }
        }
 
-ZEND_VM_C_LABEL(assign_op_dim_exit):
        FREE_OP2();
        FREE_OP(free_op_data1);
        FREE_OP_VAR_PTR(free_op_data2);
@@ -493,19 +491,17 @@ ZEND_VM_HELPER_EX(zend_binary_assign_op_helper, VAR|UNUSED|CV, CONST|TMP|VAR|UNU
                if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
                        ZVAL_NULL(EX_VAR(opline->result.var));
                }
-               ZEND_VM_C_GOTO(assign_op_exit);
-       }
-
-       ZVAL_DEREF(var_ptr);
-       SEPARATE_ZVAL_NOREF(var_ptr);
+       } else {
+               ZVAL_DEREF(var_ptr);
+               SEPARATE_ZVAL_NOREF(var_ptr);
 
-       binary_op(var_ptr, var_ptr, value TSRMLS_CC);
+               binary_op(var_ptr, var_ptr, value TSRMLS_CC);
 
-       if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
-               ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
+               if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
+                       ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
+               }
        }
 
-ZEND_VM_C_LABEL(assign_op_exit):
        FREE_OP2();
        FREE_OP1_VAR_PTR();
        CHECK_EXCEPTION();
index 3150ae1e4e1b738c0ac641f7b2fccf653078a459..ae0daef6c8c62c4b29bf7732de2d01a4543a052a 100644 (file)
@@ -17590,20 +17590,17 @@ static int ZEND_FASTCALL zend_binary_assign_op_dim_helper_SPEC_VAR_CONST(int (*b
                if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
                        ZVAL_NULL(EX_VAR(opline->result.var));
                }
-               goto assign_op_dim_exit;
-       }
-
-       ZVAL_DEREF(var_ptr);
-       SEPARATE_ZVAL_NOREF(var_ptr);
+       } else {
+               ZVAL_DEREF(var_ptr);
+               SEPARATE_ZVAL_NOREF(var_ptr);
 
-       binary_op(var_ptr, var_ptr, value TSRMLS_CC);
+               binary_op(var_ptr, var_ptr, value TSRMLS_CC);
 
-       if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
-               ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
+               if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
+                       ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
+               }
        }
 
-assign_op_dim_exit:
-
        FREE_OP(free_op_data1);
        FREE_OP_VAR_PTR(free_op_data2);
        if (free_op1.var) {zval_ptr_dtor_nogc(free_op1.var);};
@@ -17631,20 +17628,17 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_VAR_CONST(int (*binar
                if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
                        ZVAL_NULL(EX_VAR(opline->result.var));
                }
-               goto assign_op_exit;
-       }
-
-       ZVAL_DEREF(var_ptr);
-       SEPARATE_ZVAL_NOREF(var_ptr);
+       } else {
+               ZVAL_DEREF(var_ptr);
+               SEPARATE_ZVAL_NOREF(var_ptr);
 
-       binary_op(var_ptr, var_ptr, value TSRMLS_CC);
+               binary_op(var_ptr, var_ptr, value TSRMLS_CC);
 
-       if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
-               ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
+               if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
+                       ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
+               }
        }
 
-assign_op_exit:
-
        if (free_op1.var) {zval_ptr_dtor_nogc(free_op1.var);};
        CHECK_EXCEPTION();
        ZEND_VM_NEXT_OPCODE();
@@ -19986,19 +19980,17 @@ static int ZEND_FASTCALL zend_binary_assign_op_dim_helper_SPEC_VAR_TMP(int (*bin
                if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
                        ZVAL_NULL(EX_VAR(opline->result.var));
                }
-               goto assign_op_dim_exit;
-       }
-
-       ZVAL_DEREF(var_ptr);
-       SEPARATE_ZVAL_NOREF(var_ptr);
+       } else {
+               ZVAL_DEREF(var_ptr);
+               SEPARATE_ZVAL_NOREF(var_ptr);
 
-       binary_op(var_ptr, var_ptr, value TSRMLS_CC);
+               binary_op(var_ptr, var_ptr, value TSRMLS_CC);
 
-       if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
-               ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
+               if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
+                       ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
+               }
        }
 
-assign_op_dim_exit:
        zval_ptr_dtor_nogc(free_op2.var);
        FREE_OP(free_op_data1);
        FREE_OP_VAR_PTR(free_op_data2);
@@ -20027,19 +20019,17 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_VAR_TMP(int (*binary_
                if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
                        ZVAL_NULL(EX_VAR(opline->result.var));
                }
-               goto assign_op_exit;
-       }
-
-       ZVAL_DEREF(var_ptr);
-       SEPARATE_ZVAL_NOREF(var_ptr);
+       } else {
+               ZVAL_DEREF(var_ptr);
+               SEPARATE_ZVAL_NOREF(var_ptr);
 
-       binary_op(var_ptr, var_ptr, value TSRMLS_CC);
+               binary_op(var_ptr, var_ptr, value TSRMLS_CC);
 
-       if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
-               ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
+               if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
+                       ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
+               }
        }
 
-assign_op_exit:
        zval_ptr_dtor_nogc(free_op2.var);
        if (free_op1.var) {zval_ptr_dtor_nogc(free_op1.var);};
        CHECK_EXCEPTION();
@@ -21964,19 +21954,17 @@ static int ZEND_FASTCALL zend_binary_assign_op_dim_helper_SPEC_VAR_VAR(int (*bin
                if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
                        ZVAL_NULL(EX_VAR(opline->result.var));
                }
-               goto assign_op_dim_exit;
-       }
-
-       ZVAL_DEREF(var_ptr);
-       SEPARATE_ZVAL_NOREF(var_ptr);
+       } else {
+               ZVAL_DEREF(var_ptr);
+               SEPARATE_ZVAL_NOREF(var_ptr);
 
-       binary_op(var_ptr, var_ptr, value TSRMLS_CC);
+               binary_op(var_ptr, var_ptr, value TSRMLS_CC);
 
-       if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
-               ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
+               if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
+                       ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
+               }
        }
 
-assign_op_dim_exit:
        zval_ptr_dtor_nogc(free_op2.var);
        FREE_OP(free_op_data1);
        FREE_OP_VAR_PTR(free_op_data2);
@@ -22005,19 +21993,17 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_VAR_VAR(int (*binary_
                if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
                        ZVAL_NULL(EX_VAR(opline->result.var));
                }
-               goto assign_op_exit;
-       }
-
-       ZVAL_DEREF(var_ptr);
-       SEPARATE_ZVAL_NOREF(var_ptr);
+       } else {
+               ZVAL_DEREF(var_ptr);
+               SEPARATE_ZVAL_NOREF(var_ptr);
 
-       binary_op(var_ptr, var_ptr, value TSRMLS_CC);
+               binary_op(var_ptr, var_ptr, value TSRMLS_CC);
 
-       if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
-               ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
+               if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
+                       ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
+               }
        }
 
-assign_op_exit:
        zval_ptr_dtor_nogc(free_op2.var);
        if (free_op1.var) {zval_ptr_dtor_nogc(free_op1.var);};
        CHECK_EXCEPTION();
@@ -24027,20 +24013,17 @@ static int ZEND_FASTCALL zend_binary_assign_op_dim_helper_SPEC_VAR_UNUSED(int (*
                if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
                        ZVAL_NULL(EX_VAR(opline->result.var));
                }
-               goto assign_op_dim_exit;
-       }
-
-       ZVAL_DEREF(var_ptr);
-       SEPARATE_ZVAL_NOREF(var_ptr);
+       } else {
+               ZVAL_DEREF(var_ptr);
+               SEPARATE_ZVAL_NOREF(var_ptr);
 
-       binary_op(var_ptr, var_ptr, value TSRMLS_CC);
+               binary_op(var_ptr, var_ptr, value TSRMLS_CC);
 
-       if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
-               ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
+               if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
+                       ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
+               }
        }
 
-assign_op_dim_exit:
-
        FREE_OP(free_op_data1);
        FREE_OP_VAR_PTR(free_op_data2);
        if (free_op1.var) {zval_ptr_dtor_nogc(free_op1.var);};
@@ -24068,20 +24051,17 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_VAR_UNUSED(int (*bina
                if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
                        ZVAL_NULL(EX_VAR(opline->result.var));
                }
-               goto assign_op_exit;
-       }
-
-       ZVAL_DEREF(var_ptr);
-       SEPARATE_ZVAL_NOREF(var_ptr);
+       } else {
+               ZVAL_DEREF(var_ptr);
+               SEPARATE_ZVAL_NOREF(var_ptr);
 
-       binary_op(var_ptr, var_ptr, value TSRMLS_CC);
+               binary_op(var_ptr, var_ptr, value TSRMLS_CC);
 
-       if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
-               ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
+               if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
+                       ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
+               }
        }
 
-assign_op_exit:
-
        if (free_op1.var) {zval_ptr_dtor_nogc(free_op1.var);};
        CHECK_EXCEPTION();
        ZEND_VM_NEXT_OPCODE();
@@ -25466,20 +25446,17 @@ static int ZEND_FASTCALL zend_binary_assign_op_dim_helper_SPEC_VAR_CV(int (*bina
                if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
                        ZVAL_NULL(EX_VAR(opline->result.var));
                }
-               goto assign_op_dim_exit;
-       }
-
-       ZVAL_DEREF(var_ptr);
-       SEPARATE_ZVAL_NOREF(var_ptr);
+       } else {
+               ZVAL_DEREF(var_ptr);
+               SEPARATE_ZVAL_NOREF(var_ptr);
 
-       binary_op(var_ptr, var_ptr, value TSRMLS_CC);
+               binary_op(var_ptr, var_ptr, value TSRMLS_CC);
 
-       if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
-               ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
+               if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
+                       ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
+               }
        }
 
-assign_op_dim_exit:
-
        FREE_OP(free_op_data1);
        FREE_OP_VAR_PTR(free_op_data2);
        if (free_op1.var) {zval_ptr_dtor_nogc(free_op1.var);};
@@ -25507,20 +25484,17 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_VAR_CV(int (*binary_o
                if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
                        ZVAL_NULL(EX_VAR(opline->result.var));
                }
-               goto assign_op_exit;
-       }
-
-       ZVAL_DEREF(var_ptr);
-       SEPARATE_ZVAL_NOREF(var_ptr);
+       } else {
+               ZVAL_DEREF(var_ptr);
+               SEPARATE_ZVAL_NOREF(var_ptr);
 
-       binary_op(var_ptr, var_ptr, value TSRMLS_CC);
+               binary_op(var_ptr, var_ptr, value TSRMLS_CC);
 
-       if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
-               ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
+               if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
+                       ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
+               }
        }
 
-assign_op_exit:
-
        if (free_op1.var) {zval_ptr_dtor_nogc(free_op1.var);};
        CHECK_EXCEPTION();
        ZEND_VM_NEXT_OPCODE();
@@ -27301,20 +27275,17 @@ static int ZEND_FASTCALL zend_binary_assign_op_dim_helper_SPEC_UNUSED_CONST(int
                if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
                        ZVAL_NULL(EX_VAR(opline->result.var));
                }
-               goto assign_op_dim_exit;
-       }
-
-       ZVAL_DEREF(var_ptr);
-       SEPARATE_ZVAL_NOREF(var_ptr);
+       } else {
+               ZVAL_DEREF(var_ptr);
+               SEPARATE_ZVAL_NOREF(var_ptr);
 
-       binary_op(var_ptr, var_ptr, value TSRMLS_CC);
+               binary_op(var_ptr, var_ptr, value TSRMLS_CC);
 
-       if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
-               ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
+               if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
+                       ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
+               }
        }
 
-assign_op_dim_exit:
-
        FREE_OP(free_op_data1);
        FREE_OP_VAR_PTR(free_op_data2);
 
@@ -27342,20 +27313,17 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_UNUSED_CONST(int (*bi
                if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
                        ZVAL_NULL(EX_VAR(opline->result.var));
                }
-               goto assign_op_exit;
-       }
-
-       ZVAL_DEREF(var_ptr);
-       SEPARATE_ZVAL_NOREF(var_ptr);
+       } else {
+               ZVAL_DEREF(var_ptr);
+               SEPARATE_ZVAL_NOREF(var_ptr);
 
-       binary_op(var_ptr, var_ptr, value TSRMLS_CC);
+               binary_op(var_ptr, var_ptr, value TSRMLS_CC);
 
-       if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
-               ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
+               if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
+                       ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
+               }
        }
 
-assign_op_exit:
-
 
        CHECK_EXCEPTION();
        ZEND_VM_NEXT_OPCODE();
@@ -28658,19 +28626,17 @@ static int ZEND_FASTCALL zend_binary_assign_op_dim_helper_SPEC_UNUSED_TMP(int (*
                if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
                        ZVAL_NULL(EX_VAR(opline->result.var));
                }
-               goto assign_op_dim_exit;
-       }
-
-       ZVAL_DEREF(var_ptr);
-       SEPARATE_ZVAL_NOREF(var_ptr);
+       } else {
+               ZVAL_DEREF(var_ptr);
+               SEPARATE_ZVAL_NOREF(var_ptr);
 
-       binary_op(var_ptr, var_ptr, value TSRMLS_CC);
+               binary_op(var_ptr, var_ptr, value TSRMLS_CC);
 
-       if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
-               ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
+               if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
+                       ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
+               }
        }
 
-assign_op_dim_exit:
        zval_ptr_dtor_nogc(free_op2.var);
        FREE_OP(free_op_data1);
        FREE_OP_VAR_PTR(free_op_data2);
@@ -28699,19 +28665,17 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_UNUSED_TMP(int (*bina
                if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
                        ZVAL_NULL(EX_VAR(opline->result.var));
                }
-               goto assign_op_exit;
-       }
-
-       ZVAL_DEREF(var_ptr);
-       SEPARATE_ZVAL_NOREF(var_ptr);
+       } else {
+               ZVAL_DEREF(var_ptr);
+               SEPARATE_ZVAL_NOREF(var_ptr);
 
-       binary_op(var_ptr, var_ptr, value TSRMLS_CC);
+               binary_op(var_ptr, var_ptr, value TSRMLS_CC);
 
-       if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
-               ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
+               if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
+                       ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
+               }
        }
 
-assign_op_exit:
        zval_ptr_dtor_nogc(free_op2.var);
 
        CHECK_EXCEPTION();
@@ -29932,19 +29896,17 @@ static int ZEND_FASTCALL zend_binary_assign_op_dim_helper_SPEC_UNUSED_VAR(int (*
                if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
                        ZVAL_NULL(EX_VAR(opline->result.var));
                }
-               goto assign_op_dim_exit;
-       }
-
-       ZVAL_DEREF(var_ptr);
-       SEPARATE_ZVAL_NOREF(var_ptr);
+       } else {
+               ZVAL_DEREF(var_ptr);
+               SEPARATE_ZVAL_NOREF(var_ptr);
 
-       binary_op(var_ptr, var_ptr, value TSRMLS_CC);
+               binary_op(var_ptr, var_ptr, value TSRMLS_CC);
 
-       if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
-               ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
+               if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
+                       ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
+               }
        }
 
-assign_op_dim_exit:
        zval_ptr_dtor_nogc(free_op2.var);
        FREE_OP(free_op_data1);
        FREE_OP_VAR_PTR(free_op_data2);
@@ -29973,19 +29935,17 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_UNUSED_VAR(int (*bina
                if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
                        ZVAL_NULL(EX_VAR(opline->result.var));
                }
-               goto assign_op_exit;
-       }
-
-       ZVAL_DEREF(var_ptr);
-       SEPARATE_ZVAL_NOREF(var_ptr);
+       } else {
+               ZVAL_DEREF(var_ptr);
+               SEPARATE_ZVAL_NOREF(var_ptr);
 
-       binary_op(var_ptr, var_ptr, value TSRMLS_CC);
+               binary_op(var_ptr, var_ptr, value TSRMLS_CC);
 
-       if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
-               ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
+               if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
+                       ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
+               }
        }
 
-assign_op_exit:
        zval_ptr_dtor_nogc(free_op2.var);
 
        CHECK_EXCEPTION();
@@ -31205,20 +31165,17 @@ static int ZEND_FASTCALL zend_binary_assign_op_dim_helper_SPEC_UNUSED_UNUSED(int
                if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
                        ZVAL_NULL(EX_VAR(opline->result.var));
                }
-               goto assign_op_dim_exit;
-       }
-
-       ZVAL_DEREF(var_ptr);
-       SEPARATE_ZVAL_NOREF(var_ptr);
+       } else {
+               ZVAL_DEREF(var_ptr);
+               SEPARATE_ZVAL_NOREF(var_ptr);
 
-       binary_op(var_ptr, var_ptr, value TSRMLS_CC);
+               binary_op(var_ptr, var_ptr, value TSRMLS_CC);
 
-       if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
-               ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
+               if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
+                       ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
+               }
        }
 
-assign_op_dim_exit:
-
        FREE_OP(free_op_data1);
        FREE_OP_VAR_PTR(free_op_data2);
 
@@ -31246,20 +31203,17 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_UNUSED_UNUSED(int (*b
                if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
                        ZVAL_NULL(EX_VAR(opline->result.var));
                }
-               goto assign_op_exit;
-       }
-
-       ZVAL_DEREF(var_ptr);
-       SEPARATE_ZVAL_NOREF(var_ptr);
+       } else {
+               ZVAL_DEREF(var_ptr);
+               SEPARATE_ZVAL_NOREF(var_ptr);
 
-       binary_op(var_ptr, var_ptr, value TSRMLS_CC);
+               binary_op(var_ptr, var_ptr, value TSRMLS_CC);
 
-       if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
-               ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
+               if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
+                       ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
+               }
        }
 
-assign_op_exit:
-
 
        CHECK_EXCEPTION();
        ZEND_VM_NEXT_OPCODE();
@@ -31698,20 +31652,17 @@ static int ZEND_FASTCALL zend_binary_assign_op_dim_helper_SPEC_UNUSED_CV(int (*b
                if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
                        ZVAL_NULL(EX_VAR(opline->result.var));
                }
-               goto assign_op_dim_exit;
-       }
-
-       ZVAL_DEREF(var_ptr);
-       SEPARATE_ZVAL_NOREF(var_ptr);
+       } else {
+               ZVAL_DEREF(var_ptr);
+               SEPARATE_ZVAL_NOREF(var_ptr);
 
-       binary_op(var_ptr, var_ptr, value TSRMLS_CC);
+               binary_op(var_ptr, var_ptr, value TSRMLS_CC);
 
-       if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
-               ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
+               if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
+                       ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
+               }
        }
 
-assign_op_dim_exit:
-
        FREE_OP(free_op_data1);
        FREE_OP_VAR_PTR(free_op_data2);
 
@@ -31739,20 +31690,17 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_UNUSED_CV(int (*binar
                if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
                        ZVAL_NULL(EX_VAR(opline->result.var));
                }
-               goto assign_op_exit;
-       }
-
-       ZVAL_DEREF(var_ptr);
-       SEPARATE_ZVAL_NOREF(var_ptr);
+       } else {
+               ZVAL_DEREF(var_ptr);
+               SEPARATE_ZVAL_NOREF(var_ptr);
 
-       binary_op(var_ptr, var_ptr, value TSRMLS_CC);
+               binary_op(var_ptr, var_ptr, value TSRMLS_CC);
 
-       if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
-               ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
+               if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
+                       ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
+               }
        }
 
-assign_op_exit:
-
 
        CHECK_EXCEPTION();
        ZEND_VM_NEXT_OPCODE();
@@ -34639,20 +34587,17 @@ static int ZEND_FASTCALL zend_binary_assign_op_dim_helper_SPEC_CV_CONST(int (*bi
                if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
                        ZVAL_NULL(EX_VAR(opline->result.var));
                }
-               goto assign_op_dim_exit;
-       }
-
-       ZVAL_DEREF(var_ptr);
-       SEPARATE_ZVAL_NOREF(var_ptr);
+       } else {
+               ZVAL_DEREF(var_ptr);
+               SEPARATE_ZVAL_NOREF(var_ptr);
 
-       binary_op(var_ptr, var_ptr, value TSRMLS_CC);
+               binary_op(var_ptr, var_ptr, value TSRMLS_CC);
 
-       if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
-               ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
+               if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
+                       ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
+               }
        }
 
-assign_op_dim_exit:
-
        FREE_OP(free_op_data1);
        FREE_OP_VAR_PTR(free_op_data2);
 
@@ -34680,20 +34625,17 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_CV_CONST(int (*binary
                if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
                        ZVAL_NULL(EX_VAR(opline->result.var));
                }
-               goto assign_op_exit;
-       }
-
-       ZVAL_DEREF(var_ptr);
-       SEPARATE_ZVAL_NOREF(var_ptr);
+       } else {
+               ZVAL_DEREF(var_ptr);
+               SEPARATE_ZVAL_NOREF(var_ptr);
 
-       binary_op(var_ptr, var_ptr, value TSRMLS_CC);
+               binary_op(var_ptr, var_ptr, value TSRMLS_CC);
 
-       if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
-               ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
+               if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
+                       ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
+               }
        }
 
-assign_op_exit:
-
 
        CHECK_EXCEPTION();
        ZEND_VM_NEXT_OPCODE();
@@ -36867,19 +36809,17 @@ static int ZEND_FASTCALL zend_binary_assign_op_dim_helper_SPEC_CV_TMP(int (*bina
                if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
                        ZVAL_NULL(EX_VAR(opline->result.var));
                }
-               goto assign_op_dim_exit;
-       }
-
-       ZVAL_DEREF(var_ptr);
-       SEPARATE_ZVAL_NOREF(var_ptr);
+       } else {
+               ZVAL_DEREF(var_ptr);
+               SEPARATE_ZVAL_NOREF(var_ptr);
 
-       binary_op(var_ptr, var_ptr, value TSRMLS_CC);
+               binary_op(var_ptr, var_ptr, value TSRMLS_CC);
 
-       if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
-               ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
+               if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
+                       ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
+               }
        }
 
-assign_op_dim_exit:
        zval_ptr_dtor_nogc(free_op2.var);
        FREE_OP(free_op_data1);
        FREE_OP_VAR_PTR(free_op_data2);
@@ -36908,19 +36848,17 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_CV_TMP(int (*binary_o
                if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
                        ZVAL_NULL(EX_VAR(opline->result.var));
                }
-               goto assign_op_exit;
-       }
-
-       ZVAL_DEREF(var_ptr);
-       SEPARATE_ZVAL_NOREF(var_ptr);
+       } else {
+               ZVAL_DEREF(var_ptr);
+               SEPARATE_ZVAL_NOREF(var_ptr);
 
-       binary_op(var_ptr, var_ptr, value TSRMLS_CC);
+               binary_op(var_ptr, var_ptr, value TSRMLS_CC);
 
-       if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
-               ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
+               if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
+                       ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
+               }
        }
 
-assign_op_exit:
        zval_ptr_dtor_nogc(free_op2.var);
 
        CHECK_EXCEPTION();
@@ -38717,19 +38655,17 @@ static int ZEND_FASTCALL zend_binary_assign_op_dim_helper_SPEC_CV_VAR(int (*bina
                if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
                        ZVAL_NULL(EX_VAR(opline->result.var));
                }
-               goto assign_op_dim_exit;
-       }
-
-       ZVAL_DEREF(var_ptr);
-       SEPARATE_ZVAL_NOREF(var_ptr);
+       } else {
+               ZVAL_DEREF(var_ptr);
+               SEPARATE_ZVAL_NOREF(var_ptr);
 
-       binary_op(var_ptr, var_ptr, value TSRMLS_CC);
+               binary_op(var_ptr, var_ptr, value TSRMLS_CC);
 
-       if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
-               ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
+               if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
+                       ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
+               }
        }
 
-assign_op_dim_exit:
        zval_ptr_dtor_nogc(free_op2.var);
        FREE_OP(free_op_data1);
        FREE_OP_VAR_PTR(free_op_data2);
@@ -38758,19 +38694,17 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_CV_VAR(int (*binary_o
                if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
                        ZVAL_NULL(EX_VAR(opline->result.var));
                }
-               goto assign_op_exit;
-       }
-
-       ZVAL_DEREF(var_ptr);
-       SEPARATE_ZVAL_NOREF(var_ptr);
+       } else {
+               ZVAL_DEREF(var_ptr);
+               SEPARATE_ZVAL_NOREF(var_ptr);
 
-       binary_op(var_ptr, var_ptr, value TSRMLS_CC);
+               binary_op(var_ptr, var_ptr, value TSRMLS_CC);
 
-       if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
-               ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
+               if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
+                       ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
+               }
        }
 
-assign_op_exit:
        zval_ptr_dtor_nogc(free_op2.var);
 
        CHECK_EXCEPTION();
@@ -40650,20 +40584,17 @@ static int ZEND_FASTCALL zend_binary_assign_op_dim_helper_SPEC_CV_UNUSED(int (*b
                if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
                        ZVAL_NULL(EX_VAR(opline->result.var));
                }
-               goto assign_op_dim_exit;
-       }
-
-       ZVAL_DEREF(var_ptr);
-       SEPARATE_ZVAL_NOREF(var_ptr);
+       } else {
+               ZVAL_DEREF(var_ptr);
+               SEPARATE_ZVAL_NOREF(var_ptr);
 
-       binary_op(var_ptr, var_ptr, value TSRMLS_CC);
+               binary_op(var_ptr, var_ptr, value TSRMLS_CC);
 
-       if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
-               ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
+               if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
+                       ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
+               }
        }
 
-assign_op_dim_exit:
-
        FREE_OP(free_op_data1);
        FREE_OP_VAR_PTR(free_op_data2);
 
@@ -40691,20 +40622,17 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_CV_UNUSED(int (*binar
                if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
                        ZVAL_NULL(EX_VAR(opline->result.var));
                }
-               goto assign_op_exit;
-       }
-
-       ZVAL_DEREF(var_ptr);
-       SEPARATE_ZVAL_NOREF(var_ptr);
+       } else {
+               ZVAL_DEREF(var_ptr);
+               SEPARATE_ZVAL_NOREF(var_ptr);
 
-       binary_op(var_ptr, var_ptr, value TSRMLS_CC);
+               binary_op(var_ptr, var_ptr, value TSRMLS_CC);
 
-       if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
-               ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
+               if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
+                       ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
+               }
        }
 
-assign_op_exit:
-
 
        CHECK_EXCEPTION();
        ZEND_VM_NEXT_OPCODE();
@@ -41944,20 +41872,17 @@ static int ZEND_FASTCALL zend_binary_assign_op_dim_helper_SPEC_CV_CV(int (*binar
                if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
                        ZVAL_NULL(EX_VAR(opline->result.var));
                }
-               goto assign_op_dim_exit;
-       }
-
-       ZVAL_DEREF(var_ptr);
-       SEPARATE_ZVAL_NOREF(var_ptr);
+       } else {
+               ZVAL_DEREF(var_ptr);
+               SEPARATE_ZVAL_NOREF(var_ptr);
 
-       binary_op(var_ptr, var_ptr, value TSRMLS_CC);
+               binary_op(var_ptr, var_ptr, value TSRMLS_CC);
 
-       if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
-               ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
+               if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
+                       ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
+               }
        }
 
-assign_op_dim_exit:
-
        FREE_OP(free_op_data1);
        FREE_OP_VAR_PTR(free_op_data2);
 
@@ -41985,20 +41910,17 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_CV_CV(int (*binary_op
                if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
                        ZVAL_NULL(EX_VAR(opline->result.var));
                }
-               goto assign_op_exit;
-       }
-
-       ZVAL_DEREF(var_ptr);
-       SEPARATE_ZVAL_NOREF(var_ptr);
+       } else {
+               ZVAL_DEREF(var_ptr);
+               SEPARATE_ZVAL_NOREF(var_ptr);
 
-       binary_op(var_ptr, var_ptr, value TSRMLS_CC);
+               binary_op(var_ptr, var_ptr, value TSRMLS_CC);
 
-       if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
-               ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
+               if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
+                       ZVAL_COPY(EX_VAR(opline->result.var), var_ptr);
+               }
        }
 
-assign_op_exit:
-
 
        CHECK_EXCEPTION();
        ZEND_VM_NEXT_OPCODE();