@@ -2485,8 +2485,10 @@ static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BOOL_NOT_SPEC_CON
24852485 if (Z_TYPE_INFO_P(val) == IS_TRUE) {
24862486 ZVAL_FALSE(EX_VAR(opline->result.var));
24872487 } else if (EXPECTED(Z_TYPE_INFO_P(val) <= IS_TRUE)) {
2488+ /* The result and op1 can be the same cv zval */
2489+ const uint32_t orig_val_type = Z_TYPE_INFO_P(val);
24882490 ZVAL_TRUE(EX_VAR(opline->result.var));
2489- if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) {
2491+ if (IS_CONST == IS_CV && UNEXPECTED(orig_val_type == IS_UNDEF)) {
24902492 SAVE_OPLINE();
24912493 GET_OP1_UNDEF_CV(val, BP_VAR_R);
24922494 ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
@@ -3056,8 +3058,10 @@ static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BOOL_SPEC_CONST_H
30563058 if (Z_TYPE_INFO_P(val) == IS_TRUE) {
30573059 ZVAL_TRUE(EX_VAR(opline->result.var));
30583060 } else if (EXPECTED(Z_TYPE_INFO_P(val) <= IS_TRUE)) {
3061+ /* The result and op1 can be the same cv zval */
3062+ const uint32_t orig_val_type = Z_TYPE_INFO_P(val);
30593063 ZVAL_FALSE(EX_VAR(opline->result.var));
3060- if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) {
3064+ if (IS_CONST == IS_CV && UNEXPECTED(orig_val_type == IS_UNDEF)) {
30613065 SAVE_OPLINE();
30623066 GET_OP1_UNDEF_CV(val, BP_VAR_R);
30633067 ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
@@ -12101,8 +12105,10 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BOOL_NOT_SPEC_TMPVAR_HANDLER(Z
1210112105 if (Z_TYPE_INFO_P(val) == IS_TRUE) {
1210212106 ZVAL_FALSE(EX_VAR(opline->result.var));
1210312107 } else if (EXPECTED(Z_TYPE_INFO_P(val) <= IS_TRUE)) {
12108+ /* The result and op1 can be the same cv zval */
12109+ const uint32_t orig_val_type = Z_TYPE_INFO_P(val);
1210412110 ZVAL_TRUE(EX_VAR(opline->result.var));
12105- if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) {
12111+ if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(orig_val_type == IS_UNDEF)) {
1210612112 SAVE_OPLINE();
1210712113 GET_OP1_UNDEF_CV(val, BP_VAR_R);
1210812114 ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
@@ -12363,8 +12369,10 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BOOL_SPEC_TMPVAR_HANDLER(ZEND_
1236312369 if (Z_TYPE_INFO_P(val) == IS_TRUE) {
1236412370 ZVAL_TRUE(EX_VAR(opline->result.var));
1236512371 } else if (EXPECTED(Z_TYPE_INFO_P(val) <= IS_TRUE)) {
12372+ /* The result and op1 can be the same cv zval */
12373+ const uint32_t orig_val_type = Z_TYPE_INFO_P(val);
1236612374 ZVAL_FALSE(EX_VAR(opline->result.var));
12367- if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) {
12375+ if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(orig_val_type == IS_UNDEF)) {
1236812376 SAVE_OPLINE();
1236912377 GET_OP1_UNDEF_CV(val, BP_VAR_R);
1237012378 ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
@@ -36411,8 +36419,10 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BOOL_NOT_SPEC_CV_HANDLER(ZEND_
3641136419 if (Z_TYPE_INFO_P(val) == IS_TRUE) {
3641236420 ZVAL_FALSE(EX_VAR(opline->result.var));
3641336421 } else if (EXPECTED(Z_TYPE_INFO_P(val) <= IS_TRUE)) {
36422+ /* The result and op1 can be the same cv zval */
36423+ const uint32_t orig_val_type = Z_TYPE_INFO_P(val);
3641436424 ZVAL_TRUE(EX_VAR(opline->result.var));
36415- if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) {
36425+ if (IS_CV == IS_CV && UNEXPECTED(orig_val_type == IS_UNDEF)) {
3641636426 SAVE_OPLINE();
3641736427 GET_OP1_UNDEF_CV(val, BP_VAR_R);
3641836428 ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
@@ -37234,8 +37244,10 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BOOL_SPEC_CV_HANDLER(ZEND_OPCO
3723437244 if (Z_TYPE_INFO_P(val) == IS_TRUE) {
3723537245 ZVAL_TRUE(EX_VAR(opline->result.var));
3723637246 } else if (EXPECTED(Z_TYPE_INFO_P(val) <= IS_TRUE)) {
37247+ /* The result and op1 can be the same cv zval */
37248+ const uint32_t orig_val_type = Z_TYPE_INFO_P(val);
3723737249 ZVAL_FALSE(EX_VAR(opline->result.var));
37238- if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) {
37250+ if (IS_CV == IS_CV && UNEXPECTED(orig_val_type == IS_UNDEF)) {
3723937251 SAVE_OPLINE();
3724037252 GET_OP1_UNDEF_CV(val, BP_VAR_R);
3724137253 ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
0 commit comments