if (expr) {
opline->op1 = *expr;
+
+ if (do_end_vparse) {
+ if (zend_is_function_or_method_call(expr)) {
+ opline->extended_value = ZEND_RETURNS_FUNCTION;
+ }
+ } else if (CG(active_op_array)->return_reference &&
+ expr->u.EA.type == ZEND_PARSED_NEW) {
+ opline->extended_value = ZEND_RETURNS_NEW;
+ zend_error(E_STRICT, "Returning the return value of new by reference is deprecated");
+ }
} else {
opline->op1.op_type = IS_CONST;
INIT_ZVAL(opline->op1.u.constant);
}
- if (do_end_vparse) {
- if (zend_is_function_or_method_call(expr)) {
- opline->extended_value = ZEND_RETURNS_FUNCTION;
- } else {
- opline->extended_value = 0;
- }
- } else if (CG(active_op_array)->return_reference &&
- expr && expr->u.EA.type == ZEND_PARSED_NEW) {
- opline->extended_value = ZEND_RETURNS_NEW;
- zend_error(E_STRICT, "Returning the return value of new by reference is deprecated");
- }
-
SET_UNUSED(opline->op2);
}