@@ -10022,11 +10022,11 @@ ZEND_VM_HOT_TYPE_SPEC_HANDLER(ZEND_IS_NOT_EQUAL|ZEND_IS_NOT_IDENTICAL, (op1_info
1002210022 ZEND_VM_SMART_BRANCH (result , 0 );
1002310023}
1002410024
10025- ZEND_VM_TYPE_SPEC_HANDLER (ZEND_IS_IDENTICAL , op -> op1_type == IS_CV && (op -> op2_type & (IS_CONST |IS_CV )) && !(op1_info & (MAY_BE_UNDEF |MAY_BE_REF )) && !(op2_info & (MAY_BE_UNDEF |MAY_BE_REF )), ZEND_IS_IDENTICAL_NOTHROW , CV , CONST |CV , SPEC (COMMUTATIVE ))
10025+ ZEND_VM_TYPE_SPEC_HANDLER (ZEND_IS_IDENTICAL , op -> op1_type == IS_CV && (op -> op2_type & (IS_CONST |IS_CV )) && !(op1_info & (MAY_BE_UNDEF |MAY_BE_REF )) && !(op2_info & (MAY_BE_UNDEF |MAY_BE_REF )) && !(( op1_info & op2_info ) & MAY_BE_ARRAY_OF_ARRAY ) , ZEND_IS_IDENTICAL_NOTHROW , CV , CONST |CV , SPEC (COMMUTATIVE ))
1002610026{
1002710027 /* This is declared below the specializations for MAY_BE_LONG/MAY_BE_DOUBLE so those will be used instead if possible. */
1002810028 /* This optimizes $x === SOME_CONST_EXPR and $x === $y for non-refs and non-undef, which can't throw. */
10029- /* (Infinite recursion when comparing arrays is an uncatchable fatal error) */
10029+ /* Comparing two arrays that may contain arrays is excluded, as recursion throws an Error. */
1003010030 USE_OPLINE
1003110031 zval * op1 , * op2 ;
1003210032 bool result ;
@@ -10038,7 +10038,7 @@ ZEND_VM_TYPE_SPEC_HANDLER(ZEND_IS_IDENTICAL, op->op1_type == IS_CV && (op->op2_t
1003810038 ZEND_VM_SMART_BRANCH (result , 0 );
1003910039}
1004010040
10041- ZEND_VM_TYPE_SPEC_HANDLER (ZEND_IS_NOT_IDENTICAL , op -> op1_type == IS_CV && (op -> op2_type & (IS_CONST |IS_CV )) && !(op1_info & (MAY_BE_UNDEF |MAY_BE_REF )) && !(op2_info & (MAY_BE_UNDEF |MAY_BE_REF )), ZEND_IS_NOT_IDENTICAL_NOTHROW , CV , CONST |CV , SPEC (COMMUTATIVE ))
10041+ ZEND_VM_TYPE_SPEC_HANDLER (ZEND_IS_NOT_IDENTICAL , op -> op1_type == IS_CV && (op -> op2_type & (IS_CONST |IS_CV )) && !(op1_info & (MAY_BE_UNDEF |MAY_BE_REF )) && !(op2_info & (MAY_BE_UNDEF |MAY_BE_REF )) && !(( op1_info & op2_info ) & MAY_BE_ARRAY_OF_ARRAY ) , ZEND_IS_NOT_IDENTICAL_NOTHROW , CV , CONST |CV , SPEC (COMMUTATIVE ))
1004210042{
1004310043 USE_OPLINE
1004410044 zval * op1 , * op2 ;
0 commit comments