@@ -2653,8 +2653,10 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BOOL_NOT_SPEC_CONST_HANDLER(ZE
26532653 if (Z_TYPE_INFO_P(val) == IS_TRUE) {
26542654 ZVAL_FALSE(EX_VAR(opline->result.var));
26552655 } else if (EXPECTED(Z_TYPE_INFO_P(val) <= IS_TRUE)) {
2656+ /* The result and op1 can be the same cv zval */
2657+ const uint32_t orig_val_type = Z_TYPE_INFO_P(val);
26562658 ZVAL_TRUE(EX_VAR(opline->result.var));
2657- if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) {
2659+ if (IS_CONST == IS_CV && UNEXPECTED(orig_val_type == IS_UNDEF)) {
26582660 SAVE_OPLINE();
26592661 GET_OP1_UNDEF_CV(val, BP_VAR_R);
26602662 ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
@@ -3185,8 +3187,10 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BOOL_SPEC_CONST_HANDLER(ZEND_O
31853187 if (Z_TYPE_INFO_P(val) == IS_TRUE) {
31863188 ZVAL_TRUE(EX_VAR(opline->result.var));
31873189 } else if (EXPECTED(Z_TYPE_INFO_P(val) <= IS_TRUE)) {
3190+ /* The result and op1 can be the same cv zval */
3191+ const uint32_t orig_val_type = Z_TYPE_INFO_P(val);
31883192 ZVAL_FALSE(EX_VAR(opline->result.var));
3189- if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) {
3193+ if (IS_CONST == IS_CV && UNEXPECTED(orig_val_type == IS_UNDEF)) {
31903194 SAVE_OPLINE();
31913195 GET_OP1_UNDEF_CV(val, BP_VAR_R);
31923196 ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
@@ -32866,8 +32870,10 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BOOL_NOT_SPEC_CV_HANDLER(ZEND_
3286632870 if (Z_TYPE_INFO_P(val) == IS_TRUE) {
3286732871 ZVAL_FALSE(EX_VAR(opline->result.var));
3286832872 } else if (EXPECTED(Z_TYPE_INFO_P(val) <= IS_TRUE)) {
32873+ /* The result and op1 can be the same cv zval */
32874+ const uint32_t orig_val_type = Z_TYPE_INFO_P(val);
3286932875 ZVAL_TRUE(EX_VAR(opline->result.var));
32870- if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) {
32876+ if (IS_CV == IS_CV && UNEXPECTED(orig_val_type == IS_UNDEF)) {
3287132877 SAVE_OPLINE();
3287232878 GET_OP1_UNDEF_CV(val, BP_VAR_R);
3287332879 ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
@@ -33704,8 +33710,10 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BOOL_SPEC_CV_HANDLER(ZEND_OPCO
3370433710 if (Z_TYPE_INFO_P(val) == IS_TRUE) {
3370533711 ZVAL_TRUE(EX_VAR(opline->result.var));
3370633712 } else if (EXPECTED(Z_TYPE_INFO_P(val) <= IS_TRUE)) {
33713+ /* The result and op1 can be the same cv zval */
33714+ const uint32_t orig_val_type = Z_TYPE_INFO_P(val);
3370733715 ZVAL_FALSE(EX_VAR(opline->result.var));
33708- if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) {
33716+ if (IS_CV == IS_CV && UNEXPECTED(orig_val_type == IS_UNDEF)) {
3370933717 SAVE_OPLINE();
3371033718 GET_OP1_UNDEF_CV(val, BP_VAR_R);
3371133719 ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
@@ -48537,8 +48545,10 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BOOL_NOT_SPEC_TMPVAR_HANDLER(Z
4853748545 if (Z_TYPE_INFO_P(val) == IS_TRUE) {
4853848546 ZVAL_FALSE(EX_VAR(opline->result.var));
4853948547 } else if (EXPECTED(Z_TYPE_INFO_P(val) <= IS_TRUE)) {
48548+ /* The result and op1 can be the same cv zval */
48549+ const uint32_t orig_val_type = Z_TYPE_INFO_P(val);
4854048550 ZVAL_TRUE(EX_VAR(opline->result.var));
48541- if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) {
48551+ if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(orig_val_type == IS_UNDEF)) {
4854248552 SAVE_OPLINE();
4854348553 GET_OP1_UNDEF_CV(val, BP_VAR_R);
4854448554 ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
@@ -48801,8 +48811,10 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BOOL_SPEC_TMPVAR_HANDLER(ZEND_
4880148811 if (Z_TYPE_INFO_P(val) == IS_TRUE) {
4880248812 ZVAL_TRUE(EX_VAR(opline->result.var));
4880348813 } else if (EXPECTED(Z_TYPE_INFO_P(val) <= IS_TRUE)) {
48814+ /* The result and op1 can be the same cv zval */
48815+ const uint32_t orig_val_type = Z_TYPE_INFO_P(val);
4880448816 ZVAL_FALSE(EX_VAR(opline->result.var));
48805- if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) {
48817+ if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(orig_val_type == IS_UNDEF)) {
4880648818 SAVE_OPLINE();
4880748819 GET_OP1_UNDEF_CV(val, BP_VAR_R);
4880848820 ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
0 commit comments