]> granicus.if.org Git - php/commitdiff
Removed unnecassary checks
authorDmitry Stogov <dmitry@php.net>
Wed, 18 Mar 2009 18:48:52 +0000 (18:48 +0000)
committerDmitry Stogov <dmitry@php.net>
Wed, 18 Mar 2009 18:48:52 +0000 (18:48 +0000)
Zend/zend_vm_def.h
Zend/zend_vm_execute.h

index a32664f4a600dfdbf9fb2788f4e9db7c28d0cfda..ee2681ddaa2401b9f763d66d5f5fb91d2e2867f6 100644 (file)
@@ -907,7 +907,7 @@ ZEND_VM_HANDLER(40, ZEND_ECHO, CONST|TMP|VAR|CV, ANY)
                zval z_conv;
                UConverter *script_enc_conv = NULL;
                if (zend_set_converter_encoding(&script_enc_conv, EX(op_array)->script_encoding) == FAILURE) {
-                       zend_error(E_ERROR, "Unsupported encoding [%d]", EX(op_array)->script_encoding);
+                       zend_error_noreturn(E_ERROR, "Unsupported encoding [%d]", EX(op_array)->script_encoding);
                }
                zend_convert_encodings(ZEND_U_CONVERTER(UG(output_encoding_conv)), script_enc_conv, &Z_STRVAL(z_conv), &Z_STRLEN(z_conv), Z_STRVAL_P(z), Z_STRLEN_P(z), &status);
                Z_TYPE(z_conv) = IS_STRING;
@@ -1655,7 +1655,7 @@ ZEND_VM_HANDLER(39, ZEND_ASSIGN_REF, VAR|CV, VAR|CV)
                PZVAL_LOCK(*value_ptr_ptr);
        }
        if (OP1_TYPE == IS_VAR && EX_T(opline->op1.u.var).var.ptr_ptr == &EX_T(opline->op1.u.var).var.ptr) {
-               zend_error(E_ERROR, "Cannot assign by reference to overloaded object");
+               zend_error_noreturn(E_ERROR, "Cannot assign by reference to overloaded object");
        }
 
        variable_ptr_ptr = GET_OP1_ZVAL_PTR_PTR(BP_VAR_W);
@@ -2011,10 +2011,7 @@ ZEND_VM_HANDLER(112, ZEND_INIT_METHOD_CALL, TMP|VAR|UNUSED|CV, CONST|TMP|VAR|CV)
                zend_error_noreturn(E_ERROR, "Call to a member function %R() on a non-object", Z_TYPE_P(function_name), function_name_strval);
        }
 
-       if (!EX(object)) {
-               EX(called_scope) = NULL;
-               EX(object) = NULL;
-       } else if (EX(fbc) && (EX(fbc)->common.fn_flags & ZEND_ACC_STATIC) != 0) {
+       if ((EX(fbc)->common.fn_flags & ZEND_ACC_STATIC) != 0) {
                EX(object) = NULL;
        } else {                
                if (!PZVAL_IS_REF(EX(object))) {
@@ -2046,7 +2043,7 @@ ZEND_VM_HANDLER(113, ZEND_INIT_STATIC_METHOD_CALL, CONST|VAR, CONST|TMP|VAR|UNUS
                /* no function found. try a static method in class */
                ce = zend_u_fetch_class(Z_TYPE(opline->op1.u.constant), Z_UNIVAL(opline->op1.u.constant), Z_UNILEN(opline->op1.u.constant), opline->extended_value TSRMLS_CC);
                if (!ce) {
-                       zend_error(E_ERROR, "Class '%R' not found", Z_TYPE(opline->op1.u.constant), Z_UNIVAL(opline->op1.u.constant));
+                       zend_error_noreturn(E_ERROR, "Class '%R' not found", Z_TYPE(opline->op1.u.constant), Z_UNIVAL(opline->op1.u.constant));
                }
                EX(called_scope) = ce;
        } else {
@@ -2087,7 +2084,7 @@ ZEND_VM_HANDLER(113, ZEND_INIT_STATIC_METHOD_CALL, CONST|VAR, CONST|TMP|VAR|UNUS
                                EX(fbc) = zend_std_get_static_method(ce, function_name_type, function_name_strval, function_name_strlen TSRMLS_CC);
                        }
                        if (!EX(fbc)) {
-                               zend_error(E_ERROR, "Call to undefined method %v::%R()", ce->name, function_name_type, function_name_strval);
+                               zend_error_noreturn(E_ERROR, "Call to undefined method %v::%R()", ce->name, function_name_type, function_name_strval);
                        }
                }
 
@@ -3313,7 +3310,7 @@ ZEND_VM_HANDLER(73, ZEND_INCLUDE_OR_EVAL, CONST|TMP|VAR|CV, ANY)
 
                if (FAILURE == zend_path_encode(&encpath, &encpath_len, Z_USTRVAL_P(inc_filename), Z_USTRLEN_P(inc_filename) TSRMLS_CC)) {
                        failure_retval = 0;
-                       zend_error(E_ERROR, "Failure converting '%R' to filesystem encoding", IS_UNICODE, Z_USTRVAL_P(inc_filename));
+                       zend_error_noreturn(E_ERROR, "Failure converting '%R' to filesystem encoding", IS_UNICODE, Z_USTRVAL_P(inc_filename));
                        goto skip_compile;
                }
 
index 4159fa0280e37ab42e94b81e5674e1a7ae6cce74..56194b68e1066c59697b67ebe1fe56057d03bc65 100644 (file)
@@ -1274,7 +1274,7 @@ static int ZEND_FASTCALL  ZEND_ECHO_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
                zval z_conv;
                UConverter *script_enc_conv = NULL;
                if (zend_set_converter_encoding(&script_enc_conv, EX(op_array)->script_encoding) == FAILURE) {
-                       zend_error(E_ERROR, "Unsupported encoding [%d]", EX(op_array)->script_encoding);
+                       zend_error_noreturn(E_ERROR, "Unsupported encoding [%d]", EX(op_array)->script_encoding);
                }
                zend_convert_encodings(ZEND_U_CONVERTER(UG(output_encoding_conv)), script_enc_conv, &Z_STRVAL(z_conv), &Z_STRLEN(z_conv), Z_STRVAL_P(z), Z_STRLEN_P(z), &status);
                Z_TYPE(z_conv) = IS_STRING;
@@ -1900,7 +1900,7 @@ static int ZEND_FASTCALL  ZEND_INCLUDE_OR_EVAL_SPEC_CONST_HANDLER(ZEND_OPCODE_HA
 
                if (FAILURE == zend_path_encode(&encpath, &encpath_len, Z_USTRVAL_P(inc_filename), Z_USTRLEN_P(inc_filename) TSRMLS_CC)) {
                        failure_retval = 0;
-                       zend_error(E_ERROR, "Failure converting '%R' to filesystem encoding", IS_UNICODE, Z_USTRVAL_P(inc_filename));
+                       zend_error_noreturn(E_ERROR, "Failure converting '%R' to filesystem encoding", IS_UNICODE, Z_USTRVAL_P(inc_filename));
                        goto skip_compile;
                }
 
@@ -2721,7 +2721,7 @@ static int ZEND_FASTCALL  ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_CONST_HANDLER(
                /* no function found. try a static method in class */
                ce = zend_u_fetch_class(Z_TYPE(opline->op1.u.constant), Z_UNIVAL(opline->op1.u.constant), Z_UNILEN(opline->op1.u.constant), opline->extended_value TSRMLS_CC);
                if (!ce) {
-                       zend_error(E_ERROR, "Class '%R' not found", Z_TYPE(opline->op1.u.constant), Z_UNIVAL(opline->op1.u.constant));
+                       zend_error_noreturn(E_ERROR, "Class '%R' not found", Z_TYPE(opline->op1.u.constant), Z_UNIVAL(opline->op1.u.constant));
                }
                EX(called_scope) = ce;
        } else {
@@ -2762,7 +2762,7 @@ static int ZEND_FASTCALL  ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_CONST_HANDLER(
                                EX(fbc) = zend_std_get_static_method(ce, function_name_type, function_name_strval, function_name_strlen TSRMLS_CC);
                        }
                        if (!EX(fbc)) {
-                               zend_error(E_ERROR, "Call to undefined method %v::%R()", ce->name, function_name_type, function_name_strval);
+                               zend_error_noreturn(E_ERROR, "Call to undefined method %v::%R()", ce->name, function_name_type, function_name_strval);
                        }
                }
 
@@ -3314,7 +3314,7 @@ static int ZEND_FASTCALL  ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_TMP_HANDLER(ZE
                /* no function found. try a static method in class */
                ce = zend_u_fetch_class(Z_TYPE(opline->op1.u.constant), Z_UNIVAL(opline->op1.u.constant), Z_UNILEN(opline->op1.u.constant), opline->extended_value TSRMLS_CC);
                if (!ce) {
-                       zend_error(E_ERROR, "Class '%R' not found", Z_TYPE(opline->op1.u.constant), Z_UNIVAL(opline->op1.u.constant));
+                       zend_error_noreturn(E_ERROR, "Class '%R' not found", Z_TYPE(opline->op1.u.constant), Z_UNIVAL(opline->op1.u.constant));
                }
                EX(called_scope) = ce;
        } else {
@@ -3355,7 +3355,7 @@ static int ZEND_FASTCALL  ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_TMP_HANDLER(ZE
                                EX(fbc) = zend_std_get_static_method(ce, function_name_type, function_name_strval, function_name_strlen TSRMLS_CC);
                        }
                        if (!EX(fbc)) {
-                               zend_error(E_ERROR, "Call to undefined method %v::%R()", ce->name, function_name_type, function_name_strval);
+                               zend_error_noreturn(E_ERROR, "Call to undefined method %v::%R()", ce->name, function_name_type, function_name_strval);
                        }
                }
 
@@ -3786,7 +3786,7 @@ static int ZEND_FASTCALL  ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_VAR_HANDLER(ZE
                /* no function found. try a static method in class */
                ce = zend_u_fetch_class(Z_TYPE(opline->op1.u.constant), Z_UNIVAL(opline->op1.u.constant), Z_UNILEN(opline->op1.u.constant), opline->extended_value TSRMLS_CC);
                if (!ce) {
-                       zend_error(E_ERROR, "Class '%R' not found", Z_TYPE(opline->op1.u.constant), Z_UNIVAL(opline->op1.u.constant));
+                       zend_error_noreturn(E_ERROR, "Class '%R' not found", Z_TYPE(opline->op1.u.constant), Z_UNIVAL(opline->op1.u.constant));
                }
                EX(called_scope) = ce;
        } else {
@@ -3827,7 +3827,7 @@ static int ZEND_FASTCALL  ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_VAR_HANDLER(ZE
                                EX(fbc) = zend_std_get_static_method(ce, function_name_type, function_name_strval, function_name_strlen TSRMLS_CC);
                        }
                        if (!EX(fbc)) {
-                               zend_error(E_ERROR, "Call to undefined method %v::%R()", ce->name, function_name_type, function_name_strval);
+                               zend_error_noreturn(E_ERROR, "Call to undefined method %v::%R()", ce->name, function_name_type, function_name_strval);
                        }
                }
 
@@ -4014,7 +4014,7 @@ static int ZEND_FASTCALL  ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_UNUSED_HANDLER
                /* no function found. try a static method in class */
                ce = zend_u_fetch_class(Z_TYPE(opline->op1.u.constant), Z_UNIVAL(opline->op1.u.constant), Z_UNILEN(opline->op1.u.constant), opline->extended_value TSRMLS_CC);
                if (!ce) {
-                       zend_error(E_ERROR, "Class '%R' not found", Z_TYPE(opline->op1.u.constant), Z_UNIVAL(opline->op1.u.constant));
+                       zend_error_noreturn(E_ERROR, "Class '%R' not found", Z_TYPE(opline->op1.u.constant), Z_UNIVAL(opline->op1.u.constant));
                }
                EX(called_scope) = ce;
        } else {
@@ -4055,7 +4055,7 @@ static int ZEND_FASTCALL  ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_UNUSED_HANDLER
                                EX(fbc) = zend_std_get_static_method(ce, function_name_type, function_name_strval, function_name_strlen TSRMLS_CC);
                        }
                        if (!EX(fbc)) {
-                               zend_error(E_ERROR, "Call to undefined method %v::%R()", ce->name, function_name_type, function_name_strval);
+                               zend_error_noreturn(E_ERROR, "Call to undefined method %v::%R()", ce->name, function_name_type, function_name_strval);
                        }
                }
 
@@ -4454,7 +4454,7 @@ static int ZEND_FASTCALL  ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_CV_HANDLER(ZEN
                /* no function found. try a static method in class */
                ce = zend_u_fetch_class(Z_TYPE(opline->op1.u.constant), Z_UNIVAL(opline->op1.u.constant), Z_UNILEN(opline->op1.u.constant), opline->extended_value TSRMLS_CC);
                if (!ce) {
-                       zend_error(E_ERROR, "Class '%R' not found", Z_TYPE(opline->op1.u.constant), Z_UNIVAL(opline->op1.u.constant));
+                       zend_error_noreturn(E_ERROR, "Class '%R' not found", Z_TYPE(opline->op1.u.constant), Z_UNIVAL(opline->op1.u.constant));
                }
                EX(called_scope) = ce;
        } else {
@@ -4495,7 +4495,7 @@ static int ZEND_FASTCALL  ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_CV_HANDLER(ZEN
                                EX(fbc) = zend_std_get_static_method(ce, function_name_type, function_name_strval, function_name_strlen TSRMLS_CC);
                        }
                        if (!EX(fbc)) {
-                               zend_error(E_ERROR, "Call to undefined method %v::%R()", ce->name, function_name_type, function_name_strval);
+                               zend_error_noreturn(E_ERROR, "Call to undefined method %v::%R()", ce->name, function_name_type, function_name_strval);
                        }
                }
 
@@ -4707,7 +4707,7 @@ static int ZEND_FASTCALL  ZEND_ECHO_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
                zval z_conv;
                UConverter *script_enc_conv = NULL;
                if (zend_set_converter_encoding(&script_enc_conv, EX(op_array)->script_encoding) == FAILURE) {
-                       zend_error(E_ERROR, "Unsupported encoding [%d]", EX(op_array)->script_encoding);
+                       zend_error_noreturn(E_ERROR, "Unsupported encoding [%d]", EX(op_array)->script_encoding);
                }
                zend_convert_encodings(ZEND_U_CONVERTER(UG(output_encoding_conv)), script_enc_conv, &Z_STRVAL(z_conv), &Z_STRLEN(z_conv), Z_STRVAL_P(z), Z_STRLEN_P(z), &status);
                Z_TYPE(z_conv) = IS_STRING;
@@ -5324,7 +5324,7 @@ static int ZEND_FASTCALL  ZEND_INCLUDE_OR_EVAL_SPEC_TMP_HANDLER(ZEND_OPCODE_HAND
 
                if (FAILURE == zend_path_encode(&encpath, &encpath_len, Z_USTRVAL_P(inc_filename), Z_USTRLEN_P(inc_filename) TSRMLS_CC)) {
                        failure_retval = 0;
-                       zend_error(E_ERROR, "Failure converting '%R' to filesystem encoding", IS_UNICODE, Z_USTRVAL_P(inc_filename));
+                       zend_error_noreturn(E_ERROR, "Failure converting '%R' to filesystem encoding", IS_UNICODE, Z_USTRVAL_P(inc_filename));
                        goto skip_compile;
                }
 
@@ -6235,10 +6235,7 @@ static int ZEND_FASTCALL  ZEND_INIT_METHOD_CALL_SPEC_TMP_CONST_HANDLER(ZEND_OPCO
                zend_error_noreturn(E_ERROR, "Call to a member function %R() on a non-object", Z_TYPE_P(function_name), function_name_strval);
        }
 
-       if (!EX(object)) {
-               EX(called_scope) = NULL;
-               EX(object) = NULL;
-       } else if (EX(fbc) && (EX(fbc)->common.fn_flags & ZEND_ACC_STATIC) != 0) {
+       if ((EX(fbc)->common.fn_flags & ZEND_ACC_STATIC) != 0) {
                EX(object) = NULL;
        } else {
                if (!PZVAL_IS_REF(EX(object))) {
@@ -6711,10 +6708,7 @@ static int ZEND_FASTCALL  ZEND_INIT_METHOD_CALL_SPEC_TMP_TMP_HANDLER(ZEND_OPCODE
                zend_error_noreturn(E_ERROR, "Call to a member function %R() on a non-object", Z_TYPE_P(function_name), function_name_strval);
        }
 
-       if (!EX(object)) {
-               EX(called_scope) = NULL;
-               EX(object) = NULL;
-       } else if (EX(fbc) && (EX(fbc)->common.fn_flags & ZEND_ACC_STATIC) != 0) {
+       if ((EX(fbc)->common.fn_flags & ZEND_ACC_STATIC) != 0) {
                EX(object) = NULL;
        } else {
                if (!PZVAL_IS_REF(EX(object))) {
@@ -7189,10 +7183,7 @@ static int ZEND_FASTCALL  ZEND_INIT_METHOD_CALL_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE
                zend_error_noreturn(E_ERROR, "Call to a member function %R() on a non-object", Z_TYPE_P(function_name), function_name_strval);
        }
 
-       if (!EX(object)) {
-               EX(called_scope) = NULL;
-               EX(object) = NULL;
-       } else if (EX(fbc) && (EX(fbc)->common.fn_flags & ZEND_ACC_STATIC) != 0) {
+       if ((EX(fbc)->common.fn_flags & ZEND_ACC_STATIC) != 0) {
                EX(object) = NULL;
        } else {
                if (!PZVAL_IS_REF(EX(object))) {
@@ -7762,10 +7753,7 @@ static int ZEND_FASTCALL  ZEND_INIT_METHOD_CALL_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_
                zend_error_noreturn(E_ERROR, "Call to a member function %R() on a non-object", Z_TYPE_P(function_name), function_name_strval);
        }
 
-       if (!EX(object)) {
-               EX(called_scope) = NULL;
-               EX(object) = NULL;
-       } else if (EX(fbc) && (EX(fbc)->common.fn_flags & ZEND_ACC_STATIC) != 0) {
+       if ((EX(fbc)->common.fn_flags & ZEND_ACC_STATIC) != 0) {
                EX(object) = NULL;
        } else {
                if (!PZVAL_IS_REF(EX(object))) {
@@ -8106,7 +8094,7 @@ static int ZEND_FASTCALL  ZEND_ECHO_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
                zval z_conv;
                UConverter *script_enc_conv = NULL;
                if (zend_set_converter_encoding(&script_enc_conv, EX(op_array)->script_encoding) == FAILURE) {
-                       zend_error(E_ERROR, "Unsupported encoding [%d]", EX(op_array)->script_encoding);
+                       zend_error_noreturn(E_ERROR, "Unsupported encoding [%d]", EX(op_array)->script_encoding);
                }
                zend_convert_encodings(ZEND_U_CONVERTER(UG(output_encoding_conv)), script_enc_conv, &Z_STRVAL(z_conv), &Z_STRLEN(z_conv), Z_STRVAL_P(z), Z_STRLEN_P(z), &status);
                Z_TYPE(z_conv) = IS_STRING;
@@ -8832,7 +8820,7 @@ static int ZEND_FASTCALL  ZEND_INCLUDE_OR_EVAL_SPEC_VAR_HANDLER(ZEND_OPCODE_HAND
 
                if (FAILURE == zend_path_encode(&encpath, &encpath_len, Z_USTRVAL_P(inc_filename), Z_USTRLEN_P(inc_filename) TSRMLS_CC)) {
                        failure_retval = 0;
-                       zend_error(E_ERROR, "Failure converting '%R' to filesystem encoding", IS_UNICODE, Z_USTRVAL_P(inc_filename));
+                       zend_error_noreturn(E_ERROR, "Failure converting '%R' to filesystem encoding", IS_UNICODE, Z_USTRVAL_P(inc_filename));
                        goto skip_compile;
                }
 
@@ -10797,10 +10785,7 @@ static int ZEND_FASTCALL  ZEND_INIT_METHOD_CALL_SPEC_VAR_CONST_HANDLER(ZEND_OPCO
                zend_error_noreturn(E_ERROR, "Call to a member function %R() on a non-object", Z_TYPE_P(function_name), function_name_strval);
        }
 
-       if (!EX(object)) {
-               EX(called_scope) = NULL;
-               EX(object) = NULL;
-       } else if (EX(fbc) && (EX(fbc)->common.fn_flags & ZEND_ACC_STATIC) != 0) {
+       if ((EX(fbc)->common.fn_flags & ZEND_ACC_STATIC) != 0) {
                EX(object) = NULL;
        } else {
                if (!PZVAL_IS_REF(EX(object))) {
@@ -10831,7 +10816,7 @@ static int ZEND_FASTCALL  ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_CONST_HANDLER(ZE
                /* no function found. try a static method in class */
                ce = zend_u_fetch_class(Z_TYPE(opline->op1.u.constant), Z_UNIVAL(opline->op1.u.constant), Z_UNILEN(opline->op1.u.constant), opline->extended_value TSRMLS_CC);
                if (!ce) {
-                       zend_error(E_ERROR, "Class '%R' not found", Z_TYPE(opline->op1.u.constant), Z_UNIVAL(opline->op1.u.constant));
+                       zend_error_noreturn(E_ERROR, "Class '%R' not found", Z_TYPE(opline->op1.u.constant), Z_UNIVAL(opline->op1.u.constant));
                }
                EX(called_scope) = ce;
        } else {
@@ -10872,7 +10857,7 @@ static int ZEND_FASTCALL  ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_CONST_HANDLER(ZE
                                EX(fbc) = zend_std_get_static_method(ce, function_name_type, function_name_strval, function_name_strlen TSRMLS_CC);
                        }
                        if (!EX(fbc)) {
-                               zend_error(E_ERROR, "Call to undefined method %v::%R()", ce->name, function_name_type, function_name_strval);
+                               zend_error_noreturn(E_ERROR, "Call to undefined method %v::%R()", ce->name, function_name_type, function_name_strval);
                        }
                }
 
@@ -12685,10 +12670,7 @@ static int ZEND_FASTCALL  ZEND_INIT_METHOD_CALL_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE
                zend_error_noreturn(E_ERROR, "Call to a member function %R() on a non-object", Z_TYPE_P(function_name), function_name_strval);
        }
 
-       if (!EX(object)) {
-               EX(called_scope) = NULL;
-               EX(object) = NULL;
-       } else if (EX(fbc) && (EX(fbc)->common.fn_flags & ZEND_ACC_STATIC) != 0) {
+       if ((EX(fbc)->common.fn_flags & ZEND_ACC_STATIC) != 0) {
                EX(object) = NULL;
        } else {
                if (!PZVAL_IS_REF(EX(object))) {
@@ -12720,7 +12702,7 @@ static int ZEND_FASTCALL  ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_TMP_HANDLER(ZEND
                /* no function found. try a static method in class */
                ce = zend_u_fetch_class(Z_TYPE(opline->op1.u.constant), Z_UNIVAL(opline->op1.u.constant), Z_UNILEN(opline->op1.u.constant), opline->extended_value TSRMLS_CC);
                if (!ce) {
-                       zend_error(E_ERROR, "Class '%R' not found", Z_TYPE(opline->op1.u.constant), Z_UNIVAL(opline->op1.u.constant));
+                       zend_error_noreturn(E_ERROR, "Class '%R' not found", Z_TYPE(opline->op1.u.constant), Z_UNIVAL(opline->op1.u.constant));
                }
                EX(called_scope) = ce;
        } else {
@@ -12761,7 +12743,7 @@ static int ZEND_FASTCALL  ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_TMP_HANDLER(ZEND
                                EX(fbc) = zend_std_get_static_method(ce, function_name_type, function_name_strval, function_name_strlen TSRMLS_CC);
                        }
                        if (!EX(fbc)) {
-                               zend_error(E_ERROR, "Call to undefined method %v::%R()", ce->name, function_name_type, function_name_strval);
+                               zend_error_noreturn(E_ERROR, "Call to undefined method %v::%R()", ce->name, function_name_type, function_name_strval);
                        }
                }
 
@@ -14493,7 +14475,7 @@ static int ZEND_FASTCALL  ZEND_ASSIGN_REF_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDL
                PZVAL_LOCK(*value_ptr_ptr);
        }
        if (IS_VAR == IS_VAR && EX_T(opline->op1.u.var).var.ptr_ptr == &EX_T(opline->op1.u.var).var.ptr) {
-               zend_error(E_ERROR, "Cannot assign by reference to overloaded object");
+               zend_error_noreturn(E_ERROR, "Cannot assign by reference to overloaded object");
        }
 
        variable_ptr_ptr = _get_zval_ptr_ptr_var(&opline->op1, EX(Ts), &free_op1 TSRMLS_CC);
@@ -14557,10 +14539,7 @@ static int ZEND_FASTCALL  ZEND_INIT_METHOD_CALL_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE
                zend_error_noreturn(E_ERROR, "Call to a member function %R() on a non-object", Z_TYPE_P(function_name), function_name_strval);
        }
 
-       if (!EX(object)) {
-               EX(called_scope) = NULL;
-               EX(object) = NULL;
-       } else if (EX(fbc) && (EX(fbc)->common.fn_flags & ZEND_ACC_STATIC) != 0) {
+       if ((EX(fbc)->common.fn_flags & ZEND_ACC_STATIC) != 0) {
                EX(object) = NULL;
        } else {
                if (!PZVAL_IS_REF(EX(object))) {
@@ -14592,7 +14571,7 @@ static int ZEND_FASTCALL  ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_VAR_HANDLER(ZEND
                /* no function found. try a static method in class */
                ce = zend_u_fetch_class(Z_TYPE(opline->op1.u.constant), Z_UNIVAL(opline->op1.u.constant), Z_UNILEN(opline->op1.u.constant), opline->extended_value TSRMLS_CC);
                if (!ce) {
-                       zend_error(E_ERROR, "Class '%R' not found", Z_TYPE(opline->op1.u.constant), Z_UNIVAL(opline->op1.u.constant));
+                       zend_error_noreturn(E_ERROR, "Class '%R' not found", Z_TYPE(opline->op1.u.constant), Z_UNIVAL(opline->op1.u.constant));
                }
                EX(called_scope) = ce;
        } else {
@@ -14633,7 +14612,7 @@ static int ZEND_FASTCALL  ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_VAR_HANDLER(ZEND
                                EX(fbc) = zend_std_get_static_method(ce, function_name_type, function_name_strval, function_name_strlen TSRMLS_CC);
                        }
                        if (!EX(fbc)) {
-                               zend_error(E_ERROR, "Call to undefined method %v::%R()", ce->name, function_name_type, function_name_strval);
+                               zend_error_noreturn(E_ERROR, "Call to undefined method %v::%R()", ce->name, function_name_type, function_name_strval);
                        }
                }
 
@@ -15550,7 +15529,7 @@ static int ZEND_FASTCALL  ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_UNUSED_HANDLER(Z
                /* no function found. try a static method in class */
                ce = zend_u_fetch_class(Z_TYPE(opline->op1.u.constant), Z_UNIVAL(opline->op1.u.constant), Z_UNILEN(opline->op1.u.constant), opline->extended_value TSRMLS_CC);
                if (!ce) {
-                       zend_error(E_ERROR, "Class '%R' not found", Z_TYPE(opline->op1.u.constant), Z_UNIVAL(opline->op1.u.constant));
+                       zend_error_noreturn(E_ERROR, "Class '%R' not found", Z_TYPE(opline->op1.u.constant), Z_UNIVAL(opline->op1.u.constant));
                }
                EX(called_scope) = ce;
        } else {
@@ -15591,7 +15570,7 @@ static int ZEND_FASTCALL  ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_UNUSED_HANDLER(Z
                                EX(fbc) = zend_std_get_static_method(ce, function_name_type, function_name_strval, function_name_strlen TSRMLS_CC);
                        }
                        if (!EX(fbc)) {
-                               zend_error(E_ERROR, "Call to undefined method %v::%R()", ce->name, function_name_type, function_name_strval);
+                               zend_error_noreturn(E_ERROR, "Call to undefined method %v::%R()", ce->name, function_name_type, function_name_strval);
                        }
                }
 
@@ -16959,7 +16938,7 @@ static int ZEND_FASTCALL  ZEND_ASSIGN_REF_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLE
                PZVAL_LOCK(*value_ptr_ptr);
        }
        if (IS_VAR == IS_VAR && EX_T(opline->op1.u.var).var.ptr_ptr == &EX_T(opline->op1.u.var).var.ptr) {
-               zend_error(E_ERROR, "Cannot assign by reference to overloaded object");
+               zend_error_noreturn(E_ERROR, "Cannot assign by reference to overloaded object");
        }
 
        variable_ptr_ptr = _get_zval_ptr_ptr_var(&opline->op1, EX(Ts), &free_op1 TSRMLS_CC);
@@ -17022,10 +17001,7 @@ static int ZEND_FASTCALL  ZEND_INIT_METHOD_CALL_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_
                zend_error_noreturn(E_ERROR, "Call to a member function %R() on a non-object", Z_TYPE_P(function_name), function_name_strval);
        }
 
-       if (!EX(object)) {
-               EX(called_scope) = NULL;
-               EX(object) = NULL;
-       } else if (EX(fbc) && (EX(fbc)->common.fn_flags & ZEND_ACC_STATIC) != 0) {
+       if ((EX(fbc)->common.fn_flags & ZEND_ACC_STATIC) != 0) {
                EX(object) = NULL;
        } else {
                if (!PZVAL_IS_REF(EX(object))) {
@@ -17056,7 +17032,7 @@ static int ZEND_FASTCALL  ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_CV_HANDLER(ZEND_
                /* no function found. try a static method in class */
                ce = zend_u_fetch_class(Z_TYPE(opline->op1.u.constant), Z_UNIVAL(opline->op1.u.constant), Z_UNILEN(opline->op1.u.constant), opline->extended_value TSRMLS_CC);
                if (!ce) {
-                       zend_error(E_ERROR, "Class '%R' not found", Z_TYPE(opline->op1.u.constant), Z_UNIVAL(opline->op1.u.constant));
+                       zend_error_noreturn(E_ERROR, "Class '%R' not found", Z_TYPE(opline->op1.u.constant), Z_UNIVAL(opline->op1.u.constant));
                }
                EX(called_scope) = ce;
        } else {
@@ -17097,7 +17073,7 @@ static int ZEND_FASTCALL  ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_CV_HANDLER(ZEND_
                                EX(fbc) = zend_std_get_static_method(ce, function_name_type, function_name_strval, function_name_strlen TSRMLS_CC);
                        }
                        if (!EX(fbc)) {
-                               zend_error(E_ERROR, "Call to undefined method %v::%R()", ce->name, function_name_type, function_name_strval);
+                               zend_error_noreturn(E_ERROR, "Call to undefined method %v::%R()", ce->name, function_name_type, function_name_strval);
                        }
                }
 
@@ -18432,10 +18408,7 @@ static int ZEND_FASTCALL  ZEND_INIT_METHOD_CALL_SPEC_UNUSED_CONST_HANDLER(ZEND_O
                zend_error_noreturn(E_ERROR, "Call to a member function %R() on a non-object", Z_TYPE_P(function_name), function_name_strval);
        }
 
-       if (!EX(object)) {
-               EX(called_scope) = NULL;
-               EX(object) = NULL;
-       } else if (EX(fbc) && (EX(fbc)->common.fn_flags & ZEND_ACC_STATIC) != 0) {
+       if ((EX(fbc)->common.fn_flags & ZEND_ACC_STATIC) != 0) {
                EX(object) = NULL;
        } else {
                if (!PZVAL_IS_REF(EX(object))) {
@@ -19624,10 +19597,7 @@ static int ZEND_FASTCALL  ZEND_INIT_METHOD_CALL_SPEC_UNUSED_TMP_HANDLER(ZEND_OPC
                zend_error_noreturn(E_ERROR, "Call to a member function %R() on a non-object", Z_TYPE_P(function_name), function_name_strval);
        }
 
-       if (!EX(object)) {
-               EX(called_scope) = NULL;
-               EX(object) = NULL;
-       } else if (EX(fbc) && (EX(fbc)->common.fn_flags & ZEND_ACC_STATIC) != 0) {
+       if ((EX(fbc)->common.fn_flags & ZEND_ACC_STATIC) != 0) {
                EX(object) = NULL;
        } else {
                if (!PZVAL_IS_REF(EX(object))) {
@@ -20748,10 +20718,7 @@ static int ZEND_FASTCALL  ZEND_INIT_METHOD_CALL_SPEC_UNUSED_VAR_HANDLER(ZEND_OPC
                zend_error_noreturn(E_ERROR, "Call to a member function %R() on a non-object", Z_TYPE_P(function_name), function_name_strval);
        }
 
-       if (!EX(object)) {
-               EX(called_scope) = NULL;
-               EX(object) = NULL;
-       } else if (EX(fbc) && (EX(fbc)->common.fn_flags & ZEND_ACC_STATIC) != 0) {
+       if ((EX(fbc)->common.fn_flags & ZEND_ACC_STATIC) != 0) {
                EX(object) = NULL;
        } else {
                if (!PZVAL_IS_REF(EX(object))) {
@@ -22131,10 +22098,7 @@ static int ZEND_FASTCALL  ZEND_INIT_METHOD_CALL_SPEC_UNUSED_CV_HANDLER(ZEND_OPCO
                zend_error_noreturn(E_ERROR, "Call to a member function %R() on a non-object", Z_TYPE_P(function_name), function_name_strval);
        }
 
-       if (!EX(object)) {
-               EX(called_scope) = NULL;
-               EX(object) = NULL;
-       } else if (EX(fbc) && (EX(fbc)->common.fn_flags & ZEND_ACC_STATIC) != 0) {
+       if ((EX(fbc)->common.fn_flags & ZEND_ACC_STATIC) != 0) {
                EX(object) = NULL;
        } else {
                if (!PZVAL_IS_REF(EX(object))) {
@@ -22683,7 +22647,7 @@ static int ZEND_FASTCALL  ZEND_ECHO_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
                zval z_conv;
                UConverter *script_enc_conv = NULL;
                if (zend_set_converter_encoding(&script_enc_conv, EX(op_array)->script_encoding) == FAILURE) {
-                       zend_error(E_ERROR, "Unsupported encoding [%d]", EX(op_array)->script_encoding);
+                       zend_error_noreturn(E_ERROR, "Unsupported encoding [%d]", EX(op_array)->script_encoding);
                }
                zend_convert_encodings(ZEND_U_CONVERTER(UG(output_encoding_conv)), script_enc_conv, &Z_STRVAL(z_conv), &Z_STRLEN(z_conv), Z_STRVAL_P(z), Z_STRLEN_P(z), &status);
                Z_TYPE(z_conv) = IS_STRING;
@@ -23398,7 +23362,7 @@ static int ZEND_FASTCALL  ZEND_INCLUDE_OR_EVAL_SPEC_CV_HANDLER(ZEND_OPCODE_HANDL
 
                if (FAILURE == zend_path_encode(&encpath, &encpath_len, Z_USTRVAL_P(inc_filename), Z_USTRLEN_P(inc_filename) TSRMLS_CC)) {
                        failure_retval = 0;
-                       zend_error(E_ERROR, "Failure converting '%R' to filesystem encoding", IS_UNICODE, Z_USTRVAL_P(inc_filename));
+                       zend_error_noreturn(E_ERROR, "Failure converting '%R' to filesystem encoding", IS_UNICODE, Z_USTRVAL_P(inc_filename));
                        goto skip_compile;
                }
 
@@ -25199,10 +25163,7 @@ static int ZEND_FASTCALL  ZEND_INIT_METHOD_CALL_SPEC_CV_CONST_HANDLER(ZEND_OPCOD
                zend_error_noreturn(E_ERROR, "Call to a member function %R() on a non-object", Z_TYPE_P(function_name), function_name_strval);
        }
 
-       if (!EX(object)) {
-               EX(called_scope) = NULL;
-               EX(object) = NULL;
-       } else if (EX(fbc) && (EX(fbc)->common.fn_flags & ZEND_ACC_STATIC) != 0) {
+       if ((EX(fbc)->common.fn_flags & ZEND_ACC_STATIC) != 0) {
                EX(object) = NULL;
        } else {
                if (!PZVAL_IS_REF(EX(object))) {
@@ -26906,10 +26867,7 @@ static int ZEND_FASTCALL  ZEND_INIT_METHOD_CALL_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_
                zend_error_noreturn(E_ERROR, "Call to a member function %R() on a non-object", Z_TYPE_P(function_name), function_name_strval);
        }
 
-       if (!EX(object)) {
-               EX(called_scope) = NULL;
-               EX(object) = NULL;
-       } else if (EX(fbc) && (EX(fbc)->common.fn_flags & ZEND_ACC_STATIC) != 0) {
+       if ((EX(fbc)->common.fn_flags & ZEND_ACC_STATIC) != 0) {
                EX(object) = NULL;
        } else {
                if (!PZVAL_IS_REF(EX(object))) {
@@ -28602,7 +28560,7 @@ static int ZEND_FASTCALL  ZEND_ASSIGN_REF_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLE
                PZVAL_LOCK(*value_ptr_ptr);
        }
        if (IS_CV == IS_VAR && EX_T(opline->op1.u.var).var.ptr_ptr == &EX_T(opline->op1.u.var).var.ptr) {
-               zend_error(E_ERROR, "Cannot assign by reference to overloaded object");
+               zend_error_noreturn(E_ERROR, "Cannot assign by reference to overloaded object");
        }
 
        variable_ptr_ptr = _get_zval_ptr_ptr_cv(&opline->op1, EX(Ts), BP_VAR_W TSRMLS_CC);
@@ -28665,10 +28623,7 @@ static int ZEND_FASTCALL  ZEND_INIT_METHOD_CALL_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_
                zend_error_noreturn(E_ERROR, "Call to a member function %R() on a non-object", Z_TYPE_P(function_name), function_name_strval);
        }
 
-       if (!EX(object)) {
-               EX(called_scope) = NULL;
-               EX(object) = NULL;
-       } else if (EX(fbc) && (EX(fbc)->common.fn_flags & ZEND_ACC_STATIC) != 0) {
+       if ((EX(fbc)->common.fn_flags & ZEND_ACC_STATIC) != 0) {
                EX(object) = NULL;
        } else {
                if (!PZVAL_IS_REF(EX(object))) {
@@ -30853,7 +30808,7 @@ static int ZEND_FASTCALL  ZEND_ASSIGN_REF_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER
                PZVAL_LOCK(*value_ptr_ptr);
        }
        if (IS_CV == IS_VAR && EX_T(opline->op1.u.var).var.ptr_ptr == &EX_T(opline->op1.u.var).var.ptr) {
-               zend_error(E_ERROR, "Cannot assign by reference to overloaded object");
+               zend_error_noreturn(E_ERROR, "Cannot assign by reference to overloaded object");
        }
 
        variable_ptr_ptr = _get_zval_ptr_ptr_cv(&opline->op1, EX(Ts), BP_VAR_W TSRMLS_CC);
@@ -30915,10 +30870,7 @@ static int ZEND_FASTCALL  ZEND_INIT_METHOD_CALL_SPEC_CV_CV_HANDLER(ZEND_OPCODE_H
                zend_error_noreturn(E_ERROR, "Call to a member function %R() on a non-object", Z_TYPE_P(function_name), function_name_strval);
        }
 
-       if (!EX(object)) {
-               EX(called_scope) = NULL;
-               EX(object) = NULL;
-       } else if (EX(fbc) && (EX(fbc)->common.fn_flags & ZEND_ACC_STATIC) != 0) {
+       if ((EX(fbc)->common.fn_flags & ZEND_ACC_STATIC) != 0) {
                EX(object) = NULL;
        } else {
                if (!PZVAL_IS_REF(EX(object))) {