diff options
Diffstat (limited to 'Zend/zend_execute.c')
-rw-r--r-- | Zend/zend_execute.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c index 3edbb9c7d6..1101214e88 100644 --- a/Zend/zend_execute.c +++ b/Zend/zend_execute.c @@ -990,9 +990,12 @@ static int zend_verify_internal_return_type(zend_function *zf, zval *ret) zend_class_entry *ce = NULL; void *dummy_cache_slot = NULL; - if (UNEXPECTED(ZEND_TYPE_CODE(ret_info->type) == IS_VOID && Z_TYPE_P(ret) != IS_NULL)) { - zend_verify_void_return_error(zf, zend_zval_type_name(ret), ""); - return 0; + if (ZEND_TYPE_CODE(ret_info->type) == IS_VOID) { + if (UNEXPECTED(Z_TYPE_P(ret) != IS_NULL)) { + zend_verify_void_return_error(zf, zend_zval_type_name(ret), ""); + return 0; + } + return 1; } if (UNEXPECTED(!zend_check_type(ret_info->type, ret, &ce, &dummy_cache_slot, NULL, NULL, 1))) { |