]> granicus.if.org Git - php/commitdiff
Range&type inference for JMP_SET
authorNikita Popov <nikic@php.net>
Sat, 2 Jan 2016 18:33:38 +0000 (19:33 +0100)
committerNikita Popov <nikic@php.net>
Thu, 7 Jan 2016 17:53:02 +0000 (18:53 +0100)
ext/opcache/Optimizer/zend_inference.c

index 3206634534c0e325aa3c7237c8d93d4717b1fdba..f87f6f529bcfe68582b567d105d6351df6d71d0b 100644 (file)
@@ -1031,6 +1031,7 @@ int zend_inference_calc_range(const zend_op_array *op_array, zend_ssa *ssa, int
                        }
                        break;
                case ZEND_QM_ASSIGN:
+               case ZEND_JMP_SET:
                case ZEND_COALESCE:
                        if (ssa->ops[line].result_def == var) {
                                if (OP1_HAS_RANGE()) {
@@ -2350,6 +2351,7 @@ static void zend_update_type_info(const zend_op_array *op_array,
                        UPDATE_SSA_TYPE(tmp, ssa_ops[i].result_def);
                        break;
                case ZEND_QM_ASSIGN:
+               case ZEND_JMP_SET:
                case ZEND_COALESCE:
                        tmp = t1 & ~(MAY_BE_UNDEF|MAY_BE_REF);
                        if (t1 & MAY_BE_UNDEF) {
@@ -3421,10 +3423,6 @@ static void zend_update_type_info(const zend_op_array *op_array,
                        break;
 //             case ZEND_CATCH:
 // TODO: ???
-//                     break;
-//             case ZEND_JMP_SET:
-//             case ZEND_COALESCE:
-// TODO: ???
 //                     break;
                case ZEND_FETCH_DIM_R:
                case ZEND_FETCH_DIM_IS: