From: Nikita Popov Date: Sat, 2 Jan 2016 18:33:38 +0000 (+0100) Subject: Range&type inference for JMP_SET X-Git-Tag: php-7.1.0alpha1~617^2~92 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=04dc5d742091f991b7630a53df8d7ccd137d2797;p=php Range&type inference for JMP_SET --- diff --git a/ext/opcache/Optimizer/zend_inference.c b/ext/opcache/Optimizer/zend_inference.c index 3206634534..f87f6f529b 100644 --- a/ext/opcache/Optimizer/zend_inference.c +++ b/ext/opcache/Optimizer/zend_inference.c @@ -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: