Skip to content

Commit 1a14533

Browse files
committed
Introduce new CHECK_VAR instruction to keep warnings about undefined variables.
1 parent 3a45242 commit 1a14533

File tree

6 files changed

+212
-133
lines changed

6 files changed

+212
-133
lines changed

Zend/zend_vm_def.h

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8100,6 +8100,19 @@ ZEND_VM_HANDLER(186, ZEND_ISSET_ISEMPTY_THIS, UNUSED, UNUSED)
81008100
ZEND_VM_NEXT_OPCODE();
81018101
}
81028102

8103+
ZEND_VM_HANDLER(49, ZEND_CHECK_VAR, CV, UNUSED)
8104+
{
8105+
USE_OPLINE
8106+
zval *op1 = EX_VAR(opline->op1.var);
8107+
8108+
if (UNEXPECTED(Z_TYPE_INFO_P(op1) == IS_UNDEF)) {
8109+
SAVE_OPLINE();
8110+
GET_OP1_UNDEF_CV(op1, BP_VAR_R);
8111+
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
8112+
}
8113+
ZEND_VM_NEXT_OPCODE();
8114+
}
8115+
81038116
ZEND_VM_TYPE_SPEC_HANDLER(ZEND_ADD, (res_info == MAY_BE_LONG && op1_info == MAY_BE_LONG && op2_info == MAY_BE_LONG), ZEND_ADD_LONG_NO_OVERFLOW, CONST|TMPVARCV, CONST|TMPVARCV, SPEC(NO_CONST_CONST,COMMUTATIVE))
81048117
{
81058118
USE_OPLINE

0 commit comments

Comments
 (0)