#if !ZEND_VM_SPEC || (OP1_TYPE != IS_UNUSED)
zval *retval_ref, *retval_ptr;
zend_arg_info *ret_info = EX(func)->common.arg_info - 1;
- retval_ref = retval_ptr = GET_OP1_ZVAL_PTR(BP_VAR_R);
+ retval_ref = retval_ptr = GET_OP1_ZVAL_PTR_UNDEF(BP_VAR_R);
if (OP1_TYPE == IS_CONST) {
ZVAL_COPY(EX_VAR(opline->result.var), retval_ptr);
ZEND_VM_NEXT_OPCODE();
}
+ if (OP1_TYPE == IS_CV && UNEXPECTED(Z_ISUNDEF_P(retval_ptr))) {
+ SAVE_OPLINE();
+ retval_ref = retval_ptr = ZVAL_UNDEFINED_OP1();
+ if (ZEND_TYPE_FULL_MASK(ret_info->type) & MAY_BE_NULL) {
+ ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
+ }
+ }
+
zend_reference *ref = NULL;
void *cache_slot = CACHE_ADDR(opline->op2.num);
if (UNEXPECTED(retval_ref != retval_ptr)) {
ZEND_VM_NEXT_OPCODE();
}
+ if (IS_CONST == IS_CV && UNEXPECTED(Z_ISUNDEF_P(retval_ptr))) {
+ SAVE_OPLINE();
+ retval_ref = retval_ptr = ZVAL_UNDEFINED_OP1();
+ if (ZEND_TYPE_FULL_MASK(ret_info->type) & MAY_BE_NULL) {
+ ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
+ }
+ }
+
zend_reference *ref = NULL;
void *cache_slot = CACHE_ADDR(opline->op2.num);
if (UNEXPECTED(retval_ref != retval_ptr)) {
ZEND_VM_NEXT_OPCODE();
}
+ if (IS_TMP_VAR == IS_CV && UNEXPECTED(Z_ISUNDEF_P(retval_ptr))) {
+ SAVE_OPLINE();
+ retval_ref = retval_ptr = ZVAL_UNDEFINED_OP1();
+ if (ZEND_TYPE_FULL_MASK(ret_info->type) & MAY_BE_NULL) {
+ ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
+ }
+ }
+
zend_reference *ref = NULL;
void *cache_slot = CACHE_ADDR(opline->op2.num);
if (UNEXPECTED(retval_ref != retval_ptr)) {
ZEND_VM_NEXT_OPCODE();
}
+ if (IS_VAR == IS_CV && UNEXPECTED(Z_ISUNDEF_P(retval_ptr))) {
+ SAVE_OPLINE();
+ retval_ref = retval_ptr = ZVAL_UNDEFINED_OP1();
+ if (ZEND_TYPE_FULL_MASK(ret_info->type) & MAY_BE_NULL) {
+ ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
+ }
+ }
+
zend_reference *ref = NULL;
void *cache_slot = CACHE_ADDR(opline->op2.num);
if (UNEXPECTED(retval_ref != retval_ptr)) {
ZEND_VM_NEXT_OPCODE();
}
+ if (IS_UNUSED == IS_CV && UNEXPECTED(Z_ISUNDEF_P(retval_ptr))) {
+ SAVE_OPLINE();
+ retval_ref = retval_ptr = ZVAL_UNDEFINED_OP1();
+ if (ZEND_TYPE_FULL_MASK(ret_info->type) & MAY_BE_NULL) {
+ ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
+ }
+ }
+
zend_reference *ref = NULL;
void *cache_slot = CACHE_ADDR(opline->op2.num);
if (UNEXPECTED(retval_ref != retval_ptr)) {
#if 0 || (IS_CV != IS_UNUSED)
zval *retval_ref, *retval_ptr;
zend_arg_info *ret_info = EX(func)->common.arg_info - 1;
- retval_ref = retval_ptr = _get_zval_ptr_cv_BP_VAR_R(opline->op1.var EXECUTE_DATA_CC);
+ retval_ref = retval_ptr = EX_VAR(opline->op1.var);
if (IS_CV == IS_CONST) {
ZVAL_COPY(EX_VAR(opline->result.var), retval_ptr);
ZEND_VM_NEXT_OPCODE();
}
+ if (IS_CV == IS_CV && UNEXPECTED(Z_ISUNDEF_P(retval_ptr))) {
+ SAVE_OPLINE();
+ retval_ref = retval_ptr = ZVAL_UNDEFINED_OP1();
+ if (ZEND_TYPE_FULL_MASK(ret_info->type) & MAY_BE_NULL) {
+ ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
+ }
+ }
+
zend_reference *ref = NULL;
void *cache_slot = CACHE_ADDR(opline->op2.num);
if (UNEXPECTED(retval_ref != retval_ptr)) {