[php-src] master: VM: Also exclude CV for exception check in include_or_eval
| From: | ndossche | Date: | Fri, 02 Oct 2026 22:19:32 +0000 |
| Subject: | [php-src] master: VM: Also exclude CV for exception check in include_or_eval | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-141902@lists.php.net to get a copy of this message | ||
Author: ndossche (ndossche)
Date: 2026-10-03T00:19:09+02:00
Commit: https://github.com/php/php-src/commit/459f8cb22bb795f620f1d6fdfbba374c6520ea03
Raw diff: https://github.com/php/php-src/commit/459f8cb22bb795f620f1d6fdfbba374c6520ea03.diff
VM: Also exclude CV for exception check in include_or_eval
Follow-up for e7b225697ef2251e3ecfdd21984489c633f94101
Changed paths:
M Zend/zend_vm_def.h
M Zend/zend_vm_execute.h
Diff:
diff --git a/Zend/zend_vm_def.h b/Zend/zend_vm_def.h
index efa05df6aa6f..19fa358cb54c 100644
--- a/Zend/zend_vm_def.h
+++ b/Zend/zend_vm_def.h
@@ -6684,7 +6684,7 @@ ZEND_VM_HANDLER(73, ZEND_INCLUDE_OR_EVAL, CONST|TMP|CV, ANY, EVAL,
SPEC(OBSERVER
}
}
FREE_OP1();
- if (OP1_TYPE & IS_CONST) {
+ if (OP1_TYPE & (IS_CONST|IS_CV)) {
ZEND_VM_NEXT_OPCODE();
} else {
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h
index 243716bfe87c..1b30ad218f23 100644
--- a/Zend/zend_vm_execute.h
+++ b/Zend/zend_vm_execute.h
@@ -5464,7 +5464,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_OPCODE_HANDLER_FUNC_CCONV
ZEND_INCLUDE_OR_EV
}
- if (IS_CONST & IS_CONST) {
+ if (IS_CONST & (IS_CONST|IS_CV)) {
ZEND_VM_NEXT_OPCODE();
} else {
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
@@ -5551,7 +5551,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_OPCODE_HANDLER_FUNC_CCONV
ZEND_INCLUDE_OR_EV
}
}
FREE_OP(opline->op1_type, opline->op1.var);
- if (opline->op1_type & IS_CONST) {
+ if (opline->op1_type & (IS_CONST|IS_CV)) {
ZEND_VM_NEXT_OPCODE();
} else {
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
@@ -17660,7 +17660,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_OPCODE_HANDLER_FUNC_CCONV
ZEND_INCLUDE_OR_EV
}
}
zval_ptr_dtor_nogc(EX_VAR(opline->op1.var));
- if (IS_TMP_VAR & IS_CONST) {
+ if (IS_TMP_VAR & (IS_CONST|IS_CV)) {
ZEND_VM_NEXT_OPCODE();
} else {
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
@@ -40438,7 +40438,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_OPCODE_HANDLER_FUNC_CCONV
ZEND_INCLUDE_OR_EV
}
- if (IS_CV & IS_CONST) {
+ if (IS_CV & (IS_CONST|IS_CV)) {
ZEND_VM_NEXT_OPCODE();
} else {
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
@@ -58325,7 +58325,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_OPCODE_HANDLER_CCONV
ZEND_INCLUDE_OR_EVAL_SP
}
- if (IS_CONST & IS_CONST) {
+ if (IS_CONST & (IS_CONST|IS_CV)) {
ZEND_VM_NEXT_OPCODE();
} else {
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
@@ -58412,7 +58412,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_OPCODE_HANDLER_CCONV
ZEND_INCLUDE_OR_EVAL_SP
}
}
FREE_OP(opline->op1_type, opline->op1.var);
- if (opline->op1_type & IS_CONST) {
+ if (opline->op1_type & (IS_CONST|IS_CV)) {
ZEND_VM_NEXT_OPCODE();
} else {
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
@@ -70419,7 +70419,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_OPCODE_HANDLER_CCONV
ZEND_INCLUDE_OR_EVAL_SP
}
}
zval_ptr_dtor_nogc(EX_VAR(opline->op1.var));
- if (IS_TMP_VAR & IS_CONST) {
+ if (IS_TMP_VAR & (IS_CONST|IS_CV)) {
ZEND_VM_NEXT_OPCODE();
} else {
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
@@ -93097,7 +93097,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_OPCODE_HANDLER_CCONV
ZEND_INCLUDE_OR_EVAL_SP
}
- if (IS_CV & IS_CONST) {
+ if (IS_CV & (IS_CONST|IS_CV)) {
ZEND_VM_NEXT_OPCODE();
} else {
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();