]> granicus.if.org Git - php/commitdiff
Taking into account "undefined" variables
authorDmitry Stogov <dmitry@zend.com>
Wed, 16 Mar 2016 01:20:43 +0000 (04:20 +0300)
committerDmitry Stogov <dmitry@zend.com>
Wed, 16 Mar 2016 01:20:43 +0000 (04:20 +0300)
Zend/zend_vm_def.h
Zend/zend_vm_execute.h

index 374ae5452982d30e072d5b56019d364cb1517f47..d0f78344a9d4045c446f6f0ae7dc348a3afc7431 100644 (file)
@@ -8238,7 +8238,7 @@ ZEND_VM_HANDLER(183, ZEND_BIND_STATIC, CV, CONST, REF)
        ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
-ZEND_VM_TYPE_SPEC_HANDLER(ZEND_ADD, ((res_info & MAY_BE_ANY) == MAY_BE_LONG && (op1_info & MAY_BE_ANY) == MAY_BE_LONG && (op2_info & MAY_BE_ANY) == MAY_BE_LONG), ZEND_ADD_LONG_NO_OVERFLOW, CONST|TMPVARCV, CONST|TMPVARCV, SPEC(NO_CONST_CONST,COMMUTATIVE))
+ZEND_VM_TYPE_SPEC_HANDLER(ZEND_ADD, ((res_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_LONG && (op1_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_LONG && (op2_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_LONG), ZEND_ADD_LONG_NO_OVERFLOW, CONST|TMPVARCV, CONST|TMPVARCV, SPEC(NO_CONST_CONST,COMMUTATIVE))
 {
        USE_OPLINE
        zval *op1, *op2, *result;
@@ -8250,7 +8250,7 @@ ZEND_VM_TYPE_SPEC_HANDLER(ZEND_ADD, ((res_info & MAY_BE_ANY) == MAY_BE_LONG && (
        ZEND_VM_NEXT_OPCODE();
 }
 
-ZEND_VM_TYPE_SPEC_HANDLER(ZEND_ADD, ((op1_info & MAY_BE_ANY) == MAY_BE_LONG && (op2_info & MAY_BE_ANY) == MAY_BE_LONG), ZEND_ADD_LONG, CONST|TMPVARCV, CONST|TMPVARCV, SPEC(NO_CONST_CONST,COMMUTATIVE))
+ZEND_VM_TYPE_SPEC_HANDLER(ZEND_ADD, ((op1_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_LONG && (op2_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_LONG), ZEND_ADD_LONG, CONST|TMPVARCV, CONST|TMPVARCV, SPEC(NO_CONST_CONST,COMMUTATIVE))
 {
        USE_OPLINE
        zval *op1, *op2, *result;
@@ -8262,7 +8262,7 @@ ZEND_VM_TYPE_SPEC_HANDLER(ZEND_ADD, ((op1_info & MAY_BE_ANY) == MAY_BE_LONG && (
        ZEND_VM_NEXT_OPCODE();
 }
 
-ZEND_VM_TYPE_SPEC_HANDLER(ZEND_ADD, ((op1_info & MAY_BE_ANY) == MAY_BE_DOUBLE && (op2_info & MAY_BE_ANY) == MAY_BE_DOUBLE), ZEND_ADD_DOUBLE, CONST|TMPVARCV, CONST|TMPVARCV, SPEC(NO_CONST_CONST,COMMUTATIVE))
+ZEND_VM_TYPE_SPEC_HANDLER(ZEND_ADD, ((op1_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_DOUBLE && (op2_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_DOUBLE), ZEND_ADD_DOUBLE, CONST|TMPVARCV, CONST|TMPVARCV, SPEC(NO_CONST_CONST,COMMUTATIVE))
 {
        USE_OPLINE
        zval *op1, *op2, *result;
@@ -8274,7 +8274,7 @@ ZEND_VM_TYPE_SPEC_HANDLER(ZEND_ADD, ((op1_info & MAY_BE_ANY) == MAY_BE_DOUBLE &&
        ZEND_VM_NEXT_OPCODE();
 }
 
-ZEND_VM_TYPE_SPEC_HANDLER(ZEND_SUB, ((res_info & MAY_BE_ANY) == MAY_BE_LONG && (op1_info & MAY_BE_ANY) == MAY_BE_LONG && (op2_info & MAY_BE_ANY) == MAY_BE_LONG), ZEND_SUB_LONG_NO_OVERFLOW, CONST|TMPVARCV, CONST|TMPVARCV, SPEC(NO_CONST_CONST))
+ZEND_VM_TYPE_SPEC_HANDLER(ZEND_SUB, ((res_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_LONG && (op1_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_LONG && (op2_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_LONG), ZEND_SUB_LONG_NO_OVERFLOW, CONST|TMPVARCV, CONST|TMPVARCV, SPEC(NO_CONST_CONST))
 {
        USE_OPLINE
        zval *op1, *op2, *result;
@@ -8286,7 +8286,7 @@ ZEND_VM_TYPE_SPEC_HANDLER(ZEND_SUB, ((res_info & MAY_BE_ANY) == MAY_BE_LONG && (
        ZEND_VM_NEXT_OPCODE();
 }
 
-ZEND_VM_TYPE_SPEC_HANDLER(ZEND_SUB, ((op1_info & MAY_BE_ANY) == MAY_BE_LONG && (op2_info & MAY_BE_ANY) == MAY_BE_LONG), ZEND_SUB_LONG, CONST|TMPVARCV, CONST|TMPVARCV, SPEC(NO_CONST_CONST))
+ZEND_VM_TYPE_SPEC_HANDLER(ZEND_SUB, ((op1_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_LONG && (op2_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_LONG), ZEND_SUB_LONG, CONST|TMPVARCV, CONST|TMPVARCV, SPEC(NO_CONST_CONST))
 {
        USE_OPLINE
        zval *op1, *op2, *result;
@@ -8298,7 +8298,7 @@ ZEND_VM_TYPE_SPEC_HANDLER(ZEND_SUB, ((op1_info & MAY_BE_ANY) == MAY_BE_LONG && (
        ZEND_VM_NEXT_OPCODE();
 }
 
-ZEND_VM_TYPE_SPEC_HANDLER(ZEND_SUB, ((op1_info & MAY_BE_ANY) == MAY_BE_DOUBLE && (op2_info & MAY_BE_ANY) == MAY_BE_DOUBLE), ZEND_SUB_DOUBLE, CONST|TMPVARCV, CONST|TMPVARCV, SPEC(NO_CONST_CONST))
+ZEND_VM_TYPE_SPEC_HANDLER(ZEND_SUB, ((op1_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_DOUBLE && (op2_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_DOUBLE), ZEND_SUB_DOUBLE, CONST|TMPVARCV, CONST|TMPVARCV, SPEC(NO_CONST_CONST))
 {
        USE_OPLINE
        zval *op1, *op2, *result;
@@ -8310,7 +8310,7 @@ ZEND_VM_TYPE_SPEC_HANDLER(ZEND_SUB, ((op1_info & MAY_BE_ANY) == MAY_BE_DOUBLE &&
        ZEND_VM_NEXT_OPCODE();
 }
 
-ZEND_VM_TYPE_SPEC_HANDLER(ZEND_MUL, ((res_info & MAY_BE_ANY) == MAY_BE_LONG && (op1_info & MAY_BE_ANY) == MAY_BE_LONG && (op2_info & MAY_BE_ANY) == MAY_BE_LONG), ZEND_MUL_LONG_NO_OVERFLOW, CONST|TMPVARCV, CONST|TMPVARCV, SPEC(NO_CONST_CONST,COMMUTATIVE))
+ZEND_VM_TYPE_SPEC_HANDLER(ZEND_MUL, ((res_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_LONG && (op1_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_LONG && (op2_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_LONG), ZEND_MUL_LONG_NO_OVERFLOW, CONST|TMPVARCV, CONST|TMPVARCV, SPEC(NO_CONST_CONST,COMMUTATIVE))
 {
        USE_OPLINE
        zval *op1, *op2, *result;
@@ -8322,7 +8322,7 @@ ZEND_VM_TYPE_SPEC_HANDLER(ZEND_MUL, ((res_info & MAY_BE_ANY) == MAY_BE_LONG && (
        ZEND_VM_NEXT_OPCODE();
 }
 
-ZEND_VM_TYPE_SPEC_HANDLER(ZEND_MUL, ((op1_info & MAY_BE_ANY) == MAY_BE_LONG && (op2_info & MAY_BE_ANY) == MAY_BE_LONG), ZEND_MUL_LONG, CONST|TMPVARCV, CONST|TMPVARCV, SPEC(NO_CONST_CONST,COMMUTATIVE))
+ZEND_VM_TYPE_SPEC_HANDLER(ZEND_MUL, ((op1_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_LONG && (op2_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_LONG), ZEND_MUL_LONG, CONST|TMPVARCV, CONST|TMPVARCV, SPEC(NO_CONST_CONST,COMMUTATIVE))
 {
        USE_OPLINE
        zval *op1, *op2, *result;
@@ -8336,7 +8336,7 @@ ZEND_VM_TYPE_SPEC_HANDLER(ZEND_MUL, ((op1_info & MAY_BE_ANY) == MAY_BE_LONG && (
        ZEND_VM_NEXT_OPCODE();
 }
 
-ZEND_VM_TYPE_SPEC_HANDLER(ZEND_MUL, ((op1_info & MAY_BE_ANY) == MAY_BE_DOUBLE && (op2_info & MAY_BE_ANY) == MAY_BE_DOUBLE), ZEND_MUL_DOUBLE, CONST|TMPVARCV, CONST|TMPVARCV, SPEC(NO_CONST_CONST,COMMUTATIVE))
+ZEND_VM_TYPE_SPEC_HANDLER(ZEND_MUL, ((op1_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_DOUBLE && (op2_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_DOUBLE), ZEND_MUL_DOUBLE, CONST|TMPVARCV, CONST|TMPVARCV, SPEC(NO_CONST_CONST,COMMUTATIVE))
 {
        USE_OPLINE
        zval *op1, *op2, *result;
@@ -8348,7 +8348,7 @@ ZEND_VM_TYPE_SPEC_HANDLER(ZEND_MUL, ((op1_info & MAY_BE_ANY) == MAY_BE_DOUBLE &&
        ZEND_VM_NEXT_OPCODE();
 }
 
-ZEND_VM_TYPE_SPEC_HANDLER(ZEND_IS_EQUAL, ((op1_info & MAY_BE_ANY) == MAY_BE_LONG && (op2_info & MAY_BE_ANY) == MAY_BE_LONG), ZEND_IS_EQUAL_LONG, CONST|TMPVARCV, CONST|TMPVARCV, SPEC(SMART_BRANCH,NO_CONST_CONST,COMMUTATIVE))
+ZEND_VM_TYPE_SPEC_HANDLER(ZEND_IS_EQUAL, ((op1_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_LONG && (op2_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_LONG), ZEND_IS_EQUAL_LONG, CONST|TMPVARCV, CONST|TMPVARCV, SPEC(SMART_BRANCH,NO_CONST_CONST,COMMUTATIVE))
 {
        USE_OPLINE
        zval *op1, *op2;
@@ -8362,7 +8362,7 @@ ZEND_VM_TYPE_SPEC_HANDLER(ZEND_IS_EQUAL, ((op1_info & MAY_BE_ANY) == MAY_BE_LONG
        ZEND_VM_NEXT_OPCODE();
 }
 
-ZEND_VM_TYPE_SPEC_HANDLER(ZEND_IS_EQUAL, ((op1_info & MAY_BE_ANY) == MAY_BE_DOUBLE && (op2_info & MAY_BE_ANY) == MAY_BE_DOUBLE), ZEND_IS_EQUAL_DOUBLE, CONST|TMPVARCV, CONST|TMPVARCV, SPEC(SMART_BRANCH,NO_CONST_CONST,COMMUTATIVE))
+ZEND_VM_TYPE_SPEC_HANDLER(ZEND_IS_EQUAL, ((op1_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_DOUBLE && (op2_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_DOUBLE), ZEND_IS_EQUAL_DOUBLE, CONST|TMPVARCV, CONST|TMPVARCV, SPEC(SMART_BRANCH,NO_CONST_CONST,COMMUTATIVE))
 {
        USE_OPLINE
        zval *op1, *op2;
@@ -8376,7 +8376,7 @@ ZEND_VM_TYPE_SPEC_HANDLER(ZEND_IS_EQUAL, ((op1_info & MAY_BE_ANY) == MAY_BE_DOUB
        ZEND_VM_NEXT_OPCODE();
 }
 
-ZEND_VM_TYPE_SPEC_HANDLER(ZEND_IS_NOT_EQUAL, ((op1_info & MAY_BE_ANY) == MAY_BE_LONG && (op2_info & MAY_BE_ANY) == MAY_BE_LONG), ZEND_IS_NOT_EQUAL_LONG, CONST|TMPVARCV, CONST|TMPVARCV, SPEC(SMART_BRANCH,NO_CONST_CONST,COMMUTATIVE))
+ZEND_VM_TYPE_SPEC_HANDLER(ZEND_IS_NOT_EQUAL, ((op1_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_LONG && (op2_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_LONG), ZEND_IS_NOT_EQUAL_LONG, CONST|TMPVARCV, CONST|TMPVARCV, SPEC(SMART_BRANCH,NO_CONST_CONST,COMMUTATIVE))
 {
        USE_OPLINE
        zval *op1, *op2;
@@ -8390,7 +8390,7 @@ ZEND_VM_TYPE_SPEC_HANDLER(ZEND_IS_NOT_EQUAL, ((op1_info & MAY_BE_ANY) == MAY_BE_
        ZEND_VM_NEXT_OPCODE();
 }
 
-ZEND_VM_TYPE_SPEC_HANDLER(ZEND_IS_NOT_EQUAL, ((op1_info & MAY_BE_ANY) == MAY_BE_DOUBLE && (op2_info & MAY_BE_ANY) == MAY_BE_DOUBLE), ZEND_IS_NOT_EQUAL_DOUBLE, CONST|TMPVARCV, CONST|TMPVARCV, SPEC(SMART_BRANCH,NO_CONST_CONST,COMMUTATIVE))
+ZEND_VM_TYPE_SPEC_HANDLER(ZEND_IS_NOT_EQUAL, ((op1_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_DOUBLE && (op2_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_DOUBLE), ZEND_IS_NOT_EQUAL_DOUBLE, CONST|TMPVARCV, CONST|TMPVARCV, SPEC(SMART_BRANCH,NO_CONST_CONST,COMMUTATIVE))
 {
        USE_OPLINE
        zval *op1, *op2;
@@ -8404,7 +8404,7 @@ ZEND_VM_TYPE_SPEC_HANDLER(ZEND_IS_NOT_EQUAL, ((op1_info & MAY_BE_ANY) == MAY_BE_
        ZEND_VM_NEXT_OPCODE();
 }
 
-ZEND_VM_TYPE_SPEC_HANDLER(ZEND_IS_SMALLER, ((op1_info & MAY_BE_ANY) == MAY_BE_LONG && (op2_info & MAY_BE_ANY) == MAY_BE_LONG), ZEND_IS_SMALLER_LONG, CONST|TMPVARCV, CONST|TMPVARCV, SPEC(SMART_BRANCH,NO_CONST_CONST))
+ZEND_VM_TYPE_SPEC_HANDLER(ZEND_IS_SMALLER, ((op1_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_LONG && (op2_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_LONG), ZEND_IS_SMALLER_LONG, CONST|TMPVARCV, CONST|TMPVARCV, SPEC(SMART_BRANCH,NO_CONST_CONST))
 {
        USE_OPLINE
        zval *op1, *op2;
@@ -8418,7 +8418,7 @@ ZEND_VM_TYPE_SPEC_HANDLER(ZEND_IS_SMALLER, ((op1_info & MAY_BE_ANY) == MAY_BE_LO
        ZEND_VM_NEXT_OPCODE();
 }
 
-ZEND_VM_TYPE_SPEC_HANDLER(ZEND_IS_SMALLER, ((op1_info & MAY_BE_ANY) == MAY_BE_DOUBLE && (op2_info & MAY_BE_ANY) == MAY_BE_DOUBLE), ZEND_IS_SMALLER_DOUBLE, CONST|TMPVARCV, CONST|TMPVARCV, SPEC(SMART_BRANCH,NO_CONST_CONST))
+ZEND_VM_TYPE_SPEC_HANDLER(ZEND_IS_SMALLER, ((op1_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_DOUBLE && (op2_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_DOUBLE), ZEND_IS_SMALLER_DOUBLE, CONST|TMPVARCV, CONST|TMPVARCV, SPEC(SMART_BRANCH,NO_CONST_CONST))
 {
        USE_OPLINE
        zval *op1, *op2;
@@ -8432,7 +8432,7 @@ ZEND_VM_TYPE_SPEC_HANDLER(ZEND_IS_SMALLER, ((op1_info & MAY_BE_ANY) == MAY_BE_DO
        ZEND_VM_NEXT_OPCODE();
 }
 
-ZEND_VM_TYPE_SPEC_HANDLER(ZEND_IS_SMALLER_OR_EQUAL, ((op1_info & MAY_BE_ANY) == MAY_BE_LONG && (op2_info & MAY_BE_ANY) == MAY_BE_LONG), ZEND_IS_SMALLER_OR_EQUAL_LONG, CONST|TMPVARCV, CONST|TMPVARCV, SPEC(SMART_BRANCH,NO_CONST_CONST))
+ZEND_VM_TYPE_SPEC_HANDLER(ZEND_IS_SMALLER_OR_EQUAL, ((op1_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_LONG && (op2_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_LONG), ZEND_IS_SMALLER_OR_EQUAL_LONG, CONST|TMPVARCV, CONST|TMPVARCV, SPEC(SMART_BRANCH,NO_CONST_CONST))
 {
        USE_OPLINE
        zval *op1, *op2;
@@ -8446,7 +8446,7 @@ ZEND_VM_TYPE_SPEC_HANDLER(ZEND_IS_SMALLER_OR_EQUAL, ((op1_info & MAY_BE_ANY) ==
        ZEND_VM_NEXT_OPCODE();
 }
 
-ZEND_VM_TYPE_SPEC_HANDLER(ZEND_IS_SMALLER_OR_EQUAL, ((op1_info & MAY_BE_ANY) == MAY_BE_DOUBLE && (op2_info & MAY_BE_ANY) == MAY_BE_DOUBLE), ZEND_IS_SMALLER_OR_EQUAL_DOUBLE, CONST|TMPVARCV, CONST|TMPVARCV, SPEC(SMART_BRANCH,NO_CONST_CONST))
+ZEND_VM_TYPE_SPEC_HANDLER(ZEND_IS_SMALLER_OR_EQUAL, ((op1_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_DOUBLE && (op2_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_DOUBLE), ZEND_IS_SMALLER_OR_EQUAL_DOUBLE, CONST|TMPVARCV, CONST|TMPVARCV, SPEC(SMART_BRANCH,NO_CONST_CONST))
 {
        USE_OPLINE
        zval *op1, *op2;
@@ -8460,7 +8460,7 @@ ZEND_VM_TYPE_SPEC_HANDLER(ZEND_IS_SMALLER_OR_EQUAL, ((op1_info & MAY_BE_ANY) ==
        ZEND_VM_NEXT_OPCODE();
 }
 
-ZEND_VM_TYPE_SPEC_HANDLER(ZEND_PRE_INC, ((res_info & MAY_BE_ANY) == MAY_BE_LONG && (op1_info & MAY_BE_ANY) == MAY_BE_LONG), ZEND_PRE_INC_LONG_NO_OVERFLOW, TMPVARCV, ANY, SPEC(RETVAL))
+ZEND_VM_TYPE_SPEC_HANDLER(ZEND_PRE_INC, ((res_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_LONG && (op1_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_LONG), ZEND_PRE_INC_LONG_NO_OVERFLOW, TMPVARCV, ANY, SPEC(RETVAL))
 {
        USE_OPLINE
        zval *var_ptr;
@@ -8473,7 +8473,7 @@ ZEND_VM_TYPE_SPEC_HANDLER(ZEND_PRE_INC, ((res_info & MAY_BE_ANY) == MAY_BE_LONG
        ZEND_VM_NEXT_OPCODE();
 }
 
-ZEND_VM_TYPE_SPEC_HANDLER(ZEND_PRE_INC, ((op1_info & MAY_BE_ANY) == MAY_BE_LONG), ZEND_PRE_INC_LONG, TMPVARCV, ANY, SPEC(RETVAL))
+ZEND_VM_TYPE_SPEC_HANDLER(ZEND_PRE_INC, ((op1_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_LONG), ZEND_PRE_INC_LONG, TMPVARCV, ANY, SPEC(RETVAL))
 {
        USE_OPLINE
        zval *var_ptr;
@@ -8486,7 +8486,7 @@ ZEND_VM_TYPE_SPEC_HANDLER(ZEND_PRE_INC, ((op1_info & MAY_BE_ANY) == MAY_BE_LONG)
        ZEND_VM_NEXT_OPCODE();
 }
 
-ZEND_VM_TYPE_SPEC_HANDLER(ZEND_PRE_INC, ((op1_info & MAY_BE_ANY) == (MAY_BE_LONG|MAY_BE_DOUBLE)), ZEND_PRE_INC_LONG_OR_DOUBLE, TMPVARCV, ANY, SPEC(RETVAL))
+ZEND_VM_TYPE_SPEC_HANDLER(ZEND_PRE_INC, ((op1_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == (MAY_BE_LONG|MAY_BE_DOUBLE)), ZEND_PRE_INC_LONG_OR_DOUBLE, TMPVARCV, ANY, SPEC(RETVAL))
 {
        USE_OPLINE
        zval *var_ptr;
@@ -8503,7 +8503,7 @@ ZEND_VM_TYPE_SPEC_HANDLER(ZEND_PRE_INC, ((op1_info & MAY_BE_ANY) == (MAY_BE_LONG
        ZEND_VM_NEXT_OPCODE();
 }
 
-ZEND_VM_TYPE_SPEC_HANDLER(ZEND_PRE_DEC, ((res_info & MAY_BE_ANY) == MAY_BE_LONG && (op1_info & MAY_BE_ANY) == MAY_BE_LONG), ZEND_PRE_DEC_LONG_NO_OVERFLOW, TMPVARCV, ANY, SPEC(RETVAL))
+ZEND_VM_TYPE_SPEC_HANDLER(ZEND_PRE_DEC, ((res_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_LONG && (op1_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_LONG), ZEND_PRE_DEC_LONG_NO_OVERFLOW, TMPVARCV, ANY, SPEC(RETVAL))
 {
        USE_OPLINE
        zval *var_ptr;
@@ -8516,7 +8516,7 @@ ZEND_VM_TYPE_SPEC_HANDLER(ZEND_PRE_DEC, ((res_info & MAY_BE_ANY) == MAY_BE_LONG
        ZEND_VM_NEXT_OPCODE();
 }
 
-ZEND_VM_TYPE_SPEC_HANDLER(ZEND_PRE_DEC, ((op1_info & MAY_BE_ANY) == MAY_BE_LONG), ZEND_PRE_DEC_LONG, TMPVARCV, ANY, SPEC(RETVAL))
+ZEND_VM_TYPE_SPEC_HANDLER(ZEND_PRE_DEC, ((op1_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_LONG), ZEND_PRE_DEC_LONG, TMPVARCV, ANY, SPEC(RETVAL))
 {
        USE_OPLINE
        zval *var_ptr;
@@ -8529,7 +8529,7 @@ ZEND_VM_TYPE_SPEC_HANDLER(ZEND_PRE_DEC, ((op1_info & MAY_BE_ANY) == MAY_BE_LONG)
        ZEND_VM_NEXT_OPCODE();
 }
 
-ZEND_VM_TYPE_SPEC_HANDLER(ZEND_PRE_DEC, ((op1_info & MAY_BE_ANY) == (MAY_BE_LONG|MAY_BE_DOUBLE)), ZEND_PRE_DEC_LONG_OR_DOUBLE, TMPVARCV, ANY, SPEC(RETVAL))
+ZEND_VM_TYPE_SPEC_HANDLER(ZEND_PRE_DEC, ((op1_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == (MAY_BE_LONG|MAY_BE_DOUBLE)), ZEND_PRE_DEC_LONG_OR_DOUBLE, TMPVARCV, ANY, SPEC(RETVAL))
 {
        USE_OPLINE
        zval *var_ptr;
@@ -8546,7 +8546,7 @@ ZEND_VM_TYPE_SPEC_HANDLER(ZEND_PRE_DEC, ((op1_info & MAY_BE_ANY) == (MAY_BE_LONG
        ZEND_VM_NEXT_OPCODE();
 }
 
-ZEND_VM_TYPE_SPEC_HANDLER(ZEND_POST_INC, ((res_info & MAY_BE_ANY) == MAY_BE_LONG && (op1_info & MAY_BE_ANY) == MAY_BE_LONG), ZEND_POST_INC_LONG_NO_OVERFLOW, TMPVARCV, ANY)
+ZEND_VM_TYPE_SPEC_HANDLER(ZEND_POST_INC, ((res_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_LONG && (op1_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_LONG), ZEND_POST_INC_LONG_NO_OVERFLOW, TMPVARCV, ANY)
 {
        USE_OPLINE
        zval *var_ptr;
@@ -8557,7 +8557,7 @@ ZEND_VM_TYPE_SPEC_HANDLER(ZEND_POST_INC, ((res_info & MAY_BE_ANY) == MAY_BE_LONG
        ZEND_VM_NEXT_OPCODE();
 }
 
-ZEND_VM_TYPE_SPEC_HANDLER(ZEND_POST_INC, ((op1_info & MAY_BE_ANY) == MAY_BE_LONG), ZEND_POST_INC_LONG, TMPVARCV, ANY)
+ZEND_VM_TYPE_SPEC_HANDLER(ZEND_POST_INC, ((op1_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_LONG), ZEND_POST_INC_LONG, TMPVARCV, ANY)
 {
        USE_OPLINE
        zval *var_ptr;
@@ -8568,7 +8568,7 @@ ZEND_VM_TYPE_SPEC_HANDLER(ZEND_POST_INC, ((op1_info & MAY_BE_ANY) == MAY_BE_LONG
        ZEND_VM_NEXT_OPCODE();
 }
 
-ZEND_VM_TYPE_SPEC_HANDLER(ZEND_POST_INC, ((op1_info & MAY_BE_ANY) == (MAY_BE_LONG|MAY_BE_DOUBLE)), ZEND_POST_INC_LONG_OR_DOUBLE, TMPVARCV, ANY)
+ZEND_VM_TYPE_SPEC_HANDLER(ZEND_POST_INC, ((op1_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == (MAY_BE_LONG|MAY_BE_DOUBLE)), ZEND_POST_INC_LONG_OR_DOUBLE, TMPVARCV, ANY)
 {
        USE_OPLINE
        zval *var_ptr;
@@ -8583,7 +8583,7 @@ ZEND_VM_TYPE_SPEC_HANDLER(ZEND_POST_INC, ((op1_info & MAY_BE_ANY) == (MAY_BE_LON
        ZEND_VM_NEXT_OPCODE();
 }
 
-ZEND_VM_TYPE_SPEC_HANDLER(ZEND_POST_DEC, ((res_info & MAY_BE_ANY) == MAY_BE_LONG && (op1_info & MAY_BE_ANY) == MAY_BE_LONG), ZEND_POST_DEC_LONG_NO_OVERFLOW, TMPVARCV, ANY)
+ZEND_VM_TYPE_SPEC_HANDLER(ZEND_POST_DEC, ((res_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_LONG && (op1_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_LONG), ZEND_POST_DEC_LONG_NO_OVERFLOW, TMPVARCV, ANY)
 {
        USE_OPLINE
        zval *var_ptr;
@@ -8594,7 +8594,7 @@ ZEND_VM_TYPE_SPEC_HANDLER(ZEND_POST_DEC, ((res_info & MAY_BE_ANY) == MAY_BE_LONG
        ZEND_VM_NEXT_OPCODE();
 }
 
-ZEND_VM_TYPE_SPEC_HANDLER(ZEND_POST_DEC, ((op1_info & MAY_BE_ANY) == MAY_BE_LONG), ZEND_POST_DEC_LONG, TMPVARCV, ANY)
+ZEND_VM_TYPE_SPEC_HANDLER(ZEND_POST_DEC, ((op1_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_LONG), ZEND_POST_DEC_LONG, TMPVARCV, ANY)
 {
        USE_OPLINE
        zval *var_ptr;
@@ -8605,7 +8605,7 @@ ZEND_VM_TYPE_SPEC_HANDLER(ZEND_POST_DEC, ((op1_info & MAY_BE_ANY) == MAY_BE_LONG
        ZEND_VM_NEXT_OPCODE();
 }
 
-ZEND_VM_TYPE_SPEC_HANDLER(ZEND_POST_DEC, ((op1_info & MAY_BE_ANY) == (MAY_BE_LONG|MAY_BE_DOUBLE)), ZEND_POST_DEC_LONG_OR_DOUBLE, TMPVARCV, ANY)
+ZEND_VM_TYPE_SPEC_HANDLER(ZEND_POST_DEC, ((op1_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == (MAY_BE_LONG|MAY_BE_DOUBLE)), ZEND_POST_DEC_LONG_OR_DOUBLE, TMPVARCV, ANY)
 {
        USE_OPLINE
        zval *var_ptr;
@@ -8620,7 +8620,7 @@ ZEND_VM_TYPE_SPEC_HANDLER(ZEND_POST_DEC, ((op1_info & MAY_BE_ANY) == (MAY_BE_LON
        ZEND_VM_NEXT_OPCODE();
 }
 
-ZEND_VM_TYPE_SPEC_HANDLER(ZEND_QM_ASSIGN, (!(op1_info & (MAY_BE_ANY-(MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG|MAY_BE_DOUBLE)))), ZEND_QM_ASSIGN_NOREF, CONST|TMPVARCV, ANY)
+ZEND_VM_TYPE_SPEC_HANDLER(ZEND_QM_ASSIGN, (!(op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF)-(MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG|MAY_BE_DOUBLE)))), ZEND_QM_ASSIGN_NOREF, CONST|TMPVARCV, ANY)
 {
        USE_OPLINE
        zend_free_op free_op1;
index 365d88f5d7c3fc1f0d765f8fc28de24201107c40..3913fff161de1c237f63527b49d0bfd4d6920a81 100644 (file)
@@ -59778,7 +59778,7 @@ ZEND_API void zend_vm_set_opcode_handler_ex(zend_op* op, uint32_t op1_info, uint
        uint32_t spec = zend_spec_handlers[opcode];
        switch (opcode) {
                case ZEND_ADD:
-                       if (((res_info & MAY_BE_ANY) == MAY_BE_LONG && (op1_info & MAY_BE_ANY) == MAY_BE_LONG && (op2_info & MAY_BE_ANY) == MAY_BE_LONG)) {
+                       if (((res_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_LONG && (op1_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_LONG && (op2_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_LONG)) {
                                if (op->op1_type == IS_CONST && op->op2_type == IS_CONST) {
                                        break;
                                }
@@ -59786,7 +59786,7 @@ ZEND_API void zend_vm_set_opcode_handler_ex(zend_op* op, uint32_t op1_info, uint
                                if (op->op1_type > op->op2_type) {
                                        zend_swap_operands(op);
                                }
-                       } else if (((op1_info & MAY_BE_ANY) == MAY_BE_LONG && (op2_info & MAY_BE_ANY) == MAY_BE_LONG)) {
+                       } else if (((op1_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_LONG && (op2_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_LONG)) {
                                if (op->op1_type == IS_CONST && op->op2_type == IS_CONST) {
                                        break;
                                }
@@ -59794,7 +59794,7 @@ ZEND_API void zend_vm_set_opcode_handler_ex(zend_op* op, uint32_t op1_info, uint
                                if (op->op1_type > op->op2_type) {
                                        zend_swap_operands(op);
                                }
-                       } else if (((op1_info & MAY_BE_ANY) == MAY_BE_DOUBLE && (op2_info & MAY_BE_ANY) == MAY_BE_DOUBLE)) {
+                       } else if (((op1_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_DOUBLE && (op2_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_DOUBLE)) {
                                if (op->op1_type == IS_CONST && op->op2_type == IS_CONST) {
                                        break;
                                }
@@ -59805,17 +59805,17 @@ ZEND_API void zend_vm_set_opcode_handler_ex(zend_op* op, uint32_t op1_info, uint
                        }
                        break;
                case ZEND_SUB:
-                       if (((res_info & MAY_BE_ANY) == MAY_BE_LONG && (op1_info & MAY_BE_ANY) == MAY_BE_LONG && (op2_info & MAY_BE_ANY) == MAY_BE_LONG)) {
+                       if (((res_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_LONG && (op1_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_LONG && (op2_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_LONG)) {
                                if (op->op1_type == IS_CONST && op->op2_type == IS_CONST) {
                                        break;
                                }
                                spec = 2995 | SPEC_RULE_OP1 | SPEC_RULE_OP2;
-                       } else if (((op1_info & MAY_BE_ANY) == MAY_BE_LONG && (op2_info & MAY_BE_ANY) == MAY_BE_LONG)) {
+                       } else if (((op1_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_LONG && (op2_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_LONG)) {
                                if (op->op1_type == IS_CONST && op->op2_type == IS_CONST) {
                                        break;
                                }
                                spec = 3020 | SPEC_RULE_OP1 | SPEC_RULE_OP2;
-                       } else if (((op1_info & MAY_BE_ANY) == MAY_BE_DOUBLE && (op2_info & MAY_BE_ANY) == MAY_BE_DOUBLE)) {
+                       } else if (((op1_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_DOUBLE && (op2_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_DOUBLE)) {
                                if (op->op1_type == IS_CONST && op->op2_type == IS_CONST) {
                                        break;
                                }
@@ -59823,7 +59823,7 @@ ZEND_API void zend_vm_set_opcode_handler_ex(zend_op* op, uint32_t op1_info, uint
                        }
                        break;
                case ZEND_MUL:
-                       if (((res_info & MAY_BE_ANY) == MAY_BE_LONG && (op1_info & MAY_BE_ANY) == MAY_BE_LONG && (op2_info & MAY_BE_ANY) == MAY_BE_LONG)) {
+                       if (((res_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_LONG && (op1_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_LONG && (op2_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_LONG)) {
                                if (op->op1_type == IS_CONST && op->op2_type == IS_CONST) {
                                        break;
                                }
@@ -59831,7 +59831,7 @@ ZEND_API void zend_vm_set_opcode_handler_ex(zend_op* op, uint32_t op1_info, uint
                                if (op->op1_type > op->op2_type) {
                                        zend_swap_operands(op);
                                }
-                       } else if (((op1_info & MAY_BE_ANY) == MAY_BE_LONG && (op2_info & MAY_BE_ANY) == MAY_BE_LONG)) {
+                       } else if (((op1_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_LONG && (op2_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_LONG)) {
                                if (op->op1_type == IS_CONST && op->op2_type == IS_CONST) {
                                        break;
                                }
@@ -59839,7 +59839,7 @@ ZEND_API void zend_vm_set_opcode_handler_ex(zend_op* op, uint32_t op1_info, uint
                                if (op->op1_type > op->op2_type) {
                                        zend_swap_operands(op);
                                }
-                       } else if (((op1_info & MAY_BE_ANY) == MAY_BE_DOUBLE && (op2_info & MAY_BE_ANY) == MAY_BE_DOUBLE)) {
+                       } else if (((op1_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_DOUBLE && (op2_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_DOUBLE)) {
                                if (op->op1_type == IS_CONST && op->op2_type == IS_CONST) {
                                        break;
                                }
@@ -59850,7 +59850,7 @@ ZEND_API void zend_vm_set_opcode_handler_ex(zend_op* op, uint32_t op1_info, uint
                        }
                        break;
                case ZEND_IS_EQUAL:
-                       if (((op1_info & MAY_BE_ANY) == MAY_BE_LONG && (op2_info & MAY_BE_ANY) == MAY_BE_LONG)) {
+                       if (((op1_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_LONG && (op2_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_LONG)) {
                                if (op->op1_type == IS_CONST && op->op2_type == IS_CONST) {
                                        break;
                                }
@@ -59858,7 +59858,7 @@ ZEND_API void zend_vm_set_opcode_handler_ex(zend_op* op, uint32_t op1_info, uint
                                if (op->op1_type > op->op2_type) {
                                        zend_swap_operands(op);
                                }
-                       } else if (((op1_info & MAY_BE_ANY) == MAY_BE_DOUBLE && (op2_info & MAY_BE_ANY) == MAY_BE_DOUBLE)) {
+                       } else if (((op1_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_DOUBLE && (op2_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_DOUBLE)) {
                                if (op->op1_type == IS_CONST && op->op2_type == IS_CONST) {
                                        break;
                                }
@@ -59869,7 +59869,7 @@ ZEND_API void zend_vm_set_opcode_handler_ex(zend_op* op, uint32_t op1_info, uint
                        }
                        break;
                case ZEND_IS_NOT_EQUAL:
-                       if (((op1_info & MAY_BE_ANY) == MAY_BE_LONG && (op2_info & MAY_BE_ANY) == MAY_BE_LONG)) {
+                       if (((op1_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_LONG && (op2_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_LONG)) {
                                if (op->op1_type == IS_CONST && op->op2_type == IS_CONST) {
                                        break;
                                }
@@ -59877,7 +59877,7 @@ ZEND_API void zend_vm_set_opcode_handler_ex(zend_op* op, uint32_t op1_info, uint
                                if (op->op1_type > op->op2_type) {
                                        zend_swap_operands(op);
                                }
-                       } else if (((op1_info & MAY_BE_ANY) == MAY_BE_DOUBLE && (op2_info & MAY_BE_ANY) == MAY_BE_DOUBLE)) {
+                       } else if (((op1_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_DOUBLE && (op2_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_DOUBLE)) {
                                if (op->op1_type == IS_CONST && op->op2_type == IS_CONST) {
                                        break;
                                }
@@ -59888,12 +59888,12 @@ ZEND_API void zend_vm_set_opcode_handler_ex(zend_op* op, uint32_t op1_info, uint
                        }
                        break;
                case ZEND_IS_SMALLER:
-                       if (((op1_info & MAY_BE_ANY) == MAY_BE_LONG && (op2_info & MAY_BE_ANY) == MAY_BE_LONG)) {
+                       if (((op1_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_LONG && (op2_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_LONG)) {
                                if (op->op1_type == IS_CONST && op->op2_type == IS_CONST) {
                                        break;
                                }
                                spec = 3445 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_SMART_BRANCH;
-                       } else if (((op1_info & MAY_BE_ANY) == MAY_BE_DOUBLE && (op2_info & MAY_BE_ANY) == MAY_BE_DOUBLE)) {
+                       } else if (((op1_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_DOUBLE && (op2_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_DOUBLE)) {
                                if (op->op1_type == IS_CONST && op->op2_type == IS_CONST) {
                                        break;
                                }
@@ -59901,12 +59901,12 @@ ZEND_API void zend_vm_set_opcode_handler_ex(zend_op* op, uint32_t op1_info, uint
                        }
                        break;
                case ZEND_IS_SMALLER_OR_EQUAL:
-                       if (((op1_info & MAY_BE_ANY) == MAY_BE_LONG && (op2_info & MAY_BE_ANY) == MAY_BE_LONG)) {
+                       if (((op1_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_LONG && (op2_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_LONG)) {
                                if (op->op1_type == IS_CONST && op->op2_type == IS_CONST) {
                                        break;
                                }
                                spec = 3595 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_SMART_BRANCH;
-                       } else if (((op1_info & MAY_BE_ANY) == MAY_BE_DOUBLE && (op2_info & MAY_BE_ANY) == MAY_BE_DOUBLE)) {
+                       } else if (((op1_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_DOUBLE && (op2_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_DOUBLE)) {
                                if (op->op1_type == IS_CONST && op->op2_type == IS_CONST) {
                                        break;
                                }
@@ -59914,43 +59914,43 @@ ZEND_API void zend_vm_set_opcode_handler_ex(zend_op* op, uint32_t op1_info, uint
                        }
                        break;
                case ZEND_QM_ASSIGN:
-                       if ((!(op1_info & (MAY_BE_ANY-(MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG|MAY_BE_DOUBLE))))) {
+                       if ((!(op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF)-(MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG|MAY_BE_DOUBLE))))) {
                                spec = 3835 | SPEC_RULE_OP1;
                        }
                        break;
                case ZEND_PRE_INC:
-                       if (((res_info & MAY_BE_ANY) == MAY_BE_LONG && (op1_info & MAY_BE_ANY) == MAY_BE_LONG)) {
+                       if (((res_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_LONG && (op1_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_LONG)) {
                                spec = 3745 | SPEC_RULE_OP1 | SPEC_RULE_RETVAL;
-                       } else if (((op1_info & MAY_BE_ANY) == MAY_BE_LONG)) {
+                       } else if (((op1_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_LONG)) {
                                spec = 3755 | SPEC_RULE_OP1 | SPEC_RULE_RETVAL;
-                       } else if (((op1_info & MAY_BE_ANY) == (MAY_BE_LONG|MAY_BE_DOUBLE))) {
+                       } else if (((op1_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == (MAY_BE_LONG|MAY_BE_DOUBLE))) {
                                spec = 3765 | SPEC_RULE_OP1 | SPEC_RULE_RETVAL;
                        }
                        break;
                case ZEND_PRE_DEC:
-                       if (((res_info & MAY_BE_ANY) == MAY_BE_LONG && (op1_info & MAY_BE_ANY) == MAY_BE_LONG)) {
+                       if (((res_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_LONG && (op1_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_LONG)) {
                                spec = 3775 | SPEC_RULE_OP1 | SPEC_RULE_RETVAL;
-                       } else if (((op1_info & MAY_BE_ANY) == MAY_BE_LONG)) {
+                       } else if (((op1_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_LONG)) {
                                spec = 3785 | SPEC_RULE_OP1 | SPEC_RULE_RETVAL;
-                       } else if (((op1_info & MAY_BE_ANY) == (MAY_BE_LONG|MAY_BE_DOUBLE))) {
+                       } else if (((op1_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == (MAY_BE_LONG|MAY_BE_DOUBLE))) {
                                spec = 3795 | SPEC_RULE_OP1 | SPEC_RULE_RETVAL;
                        }
                        break;
                case ZEND_POST_INC:
-                       if (((res_info & MAY_BE_ANY) == MAY_BE_LONG && (op1_info & MAY_BE_ANY) == MAY_BE_LONG)) {
+                       if (((res_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_LONG && (op1_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_LONG)) {
                                spec = 3805 | SPEC_RULE_OP1;
-                       } else if (((op1_info & MAY_BE_ANY) == MAY_BE_LONG)) {
+                       } else if (((op1_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_LONG)) {
                                spec = 3810 | SPEC_RULE_OP1;
-                       } else if (((op1_info & MAY_BE_ANY) == (MAY_BE_LONG|MAY_BE_DOUBLE))) {
+                       } else if (((op1_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == (MAY_BE_LONG|MAY_BE_DOUBLE))) {
                                spec = 3815 | SPEC_RULE_OP1;
                        }
                        break;
                case ZEND_POST_DEC:
-                       if (((res_info & MAY_BE_ANY) == MAY_BE_LONG && (op1_info & MAY_BE_ANY) == MAY_BE_LONG)) {
+                       if (((res_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_LONG && (op1_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_LONG)) {
                                spec = 3820 | SPEC_RULE_OP1;
-                       } else if (((op1_info & MAY_BE_ANY) == MAY_BE_LONG)) {
+                       } else if (((op1_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_LONG)) {
                                spec = 3825 | SPEC_RULE_OP1;
-                       } else if (((op1_info & MAY_BE_ANY) == (MAY_BE_LONG|MAY_BE_DOUBLE))) {
+                       } else if (((op1_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == (MAY_BE_LONG|MAY_BE_DOUBLE))) {
                                spec = 3830 | SPEC_RULE_OP1;
                        }
                        break;