@@ -561,8 +561,8 @@ static void float_div(zend_long a, zend_long b, zend_long *r1, zend_long *r2) {
561561}
562562
563563static bool zend_inference_calc_binary_op_range (
564- const zend_op_array * op_array , zend_ssa * ssa ,
565- zend_op * opline , zend_ssa_op * ssa_op , zend_uchar opcode , zend_ssa_range * tmp ) {
564+ const zend_op_array * op_array , const zend_ssa * ssa ,
565+ const zend_op * opline , const zend_ssa_op * ssa_op , zend_uchar opcode , zend_ssa_range * tmp ) {
566566 zend_long op1_min , op2_min , op1_max , op2_max , t1 , t2 , t3 , t4 ;
567567
568568 switch (opcode ) {
@@ -845,22 +845,22 @@ static bool zend_inference_calc_binary_op_range(
845845 return 0 ;
846846}
847847
848- static bool zend_inference_calc_range (const zend_op_array * op_array , zend_ssa * ssa , int var , int widening , int narrowing , zend_ssa_range * tmp )
848+ static bool zend_inference_calc_range (const zend_op_array * op_array , const zend_ssa * ssa , int var , int widening , int narrowing , zend_ssa_range * tmp )
849849{
850850 uint32_t line ;
851- zend_op * opline ;
852- zend_ssa_op * ssa_op ;
851+ const zend_op * opline ;
852+ const zend_ssa_op * ssa_op ;
853853
854854 if (ssa -> vars [var ].definition_phi ) {
855- zend_ssa_phi * p = ssa -> vars [var ].definition_phi ;
855+ const zend_ssa_phi * p = ssa -> vars [var ].definition_phi ;
856856 int i ;
857857
858858 tmp -> underflow = 0 ;
859859 tmp -> min = ZEND_LONG_MAX ;
860860 tmp -> max = ZEND_LONG_MIN ;
861861 tmp -> overflow = 0 ;
862862 if (p -> pi >= 0 && p -> has_range_constraint ) {
863- zend_ssa_range_constraint * constraint = & p -> constraint .range ;
863+ const zend_ssa_range_constraint * constraint = & p -> constraint .range ;
864864 if (constraint -> negative ) {
865865 int src1 = p -> sources [0 ];
866866
@@ -879,7 +879,7 @@ static bool zend_inference_calc_range(const zend_op_array *op_array, zend_ssa *s
879879 case ZEND_PRE_DEC :
880880 case ZEND_POST_DEC :
881881 if (!tmp -> underflow ) {
882- zend_ssa_phi * p = ssa -> vars [ssa -> ops [line ].op1_use ].definition_phi ;
882+ const zend_ssa_phi * p = ssa -> vars [ssa -> ops [line ].op1_use ].definition_phi ;
883883
884884 if (p && p -> pi < 0
885885 && ssa -> cfg .blocks [p -> block ].predecessors_count == 2
@@ -893,7 +893,7 @@ static bool zend_inference_calc_range(const zend_op_array *op_array, zend_ssa *s
893893 case ZEND_PRE_INC :
894894 case ZEND_POST_INC :
895895 if (!tmp -> overflow ) {
896- zend_ssa_phi * p = ssa -> vars [ssa -> ops [line ].op1_use ].definition_phi ;
896+ const zend_ssa_phi * p = ssa -> vars [ssa -> ops [line ].op1_use ].definition_phi ;
897897
898898 if (p && p -> pi < 0
899899 && ssa -> cfg .blocks [p -> block ].predecessors_count == 2
@@ -1026,7 +1026,7 @@ static bool zend_inference_calc_range(const zend_op_array *op_array, zend_ssa *s
10261026 return zend_inference_propagate_range (op_array , ssa , opline , ssa_op , var , tmp );
10271027}
10281028
1029- ZEND_API bool zend_inference_propagate_range (const zend_op_array * op_array , zend_ssa * ssa , zend_op * opline , zend_ssa_op * ssa_op , int var , zend_ssa_range * tmp )
1029+ ZEND_API bool zend_inference_propagate_range (const zend_op_array * op_array , const zend_ssa * ssa , const zend_op * opline , const zend_ssa_op * ssa_op , int var , zend_ssa_range * tmp )
10301030{
10311031 tmp -> underflow = 0 ;
10321032 tmp -> overflow = 0 ;
@@ -1326,8 +1326,8 @@ ZEND_API bool zend_inference_propagate_range(const zend_op_array *op_array, zend
13261326 case ZEND_DO_UCALL :
13271327 case ZEND_DO_FCALL_BY_NAME :
13281328 if (ssa_op -> result_def == var ) {
1329- zend_func_info * func_info = ZEND_FUNC_INFO (op_array );
1330- zend_call_info * call_info ;
1329+ const zend_func_info * func_info = ZEND_FUNC_INFO (op_array );
1330+ const zend_call_info * call_info ;
13311331 if (!func_info || !func_info -> call_map ) {
13321332 break ;
13331333 }
@@ -1499,7 +1499,7 @@ static bool zend_check_inner_cycles(const zend_op_array *op_array, zend_ssa *ssa
14991499}
15001500#endif
15011501
1502- static void zend_infer_ranges_warmup (const zend_op_array * op_array , zend_ssa * ssa , int * scc_var , int * next_scc_var , int scc )
1502+ static void zend_infer_ranges_warmup (const zend_op_array * op_array , zend_ssa * ssa , const int * scc_var , const int * next_scc_var , int scc )
15031503{
15041504 int worklist_len = zend_bitset_len (ssa -> vars_count );
15051505 int j , n ;
@@ -2153,13 +2153,13 @@ static uint32_t zend_convert_type(const zend_script *script, zend_type type, zen
21532153 return tmp ;
21542154}
21552155
2156- ZEND_API uint32_t zend_fetch_arg_info_type (const zend_script * script , zend_arg_info * arg_info , zend_class_entry * * pce )
2156+ ZEND_API uint32_t zend_fetch_arg_info_type (const zend_script * script , const zend_arg_info * arg_info , zend_class_entry * * pce )
21572157{
21582158 return zend_convert_type (script , arg_info -> type , pce );
21592159}
21602160
2161- static zend_property_info * lookup_prop_info (zend_class_entry * ce , zend_string * name , zend_class_entry * scope ) {
2162- zend_property_info * prop_info ;
2161+ static const zend_property_info * lookup_prop_info (const zend_class_entry * ce , zend_string * name , zend_class_entry * scope ) {
2162+ const zend_property_info * prop_info ;
21632163
21642164 /* If the class is linked, reuse the precise runtime logic. */
21652165 if ((ce -> ce_flags & ZEND_ACC_LINKED )
@@ -2185,11 +2185,11 @@ static zend_property_info *lookup_prop_info(zend_class_entry *ce, zend_string *n
21852185 return NULL ;
21862186}
21872187
2188- static zend_property_info * zend_fetch_prop_info (const zend_op_array * op_array , zend_ssa * ssa , zend_op * opline , zend_ssa_op * ssa_op )
2188+ static const zend_property_info * zend_fetch_prop_info (const zend_op_array * op_array , zend_ssa * ssa , const zend_op * opline , const zend_ssa_op * ssa_op )
21892189{
2190- zend_property_info * prop_info = NULL ;
2190+ const zend_property_info * prop_info = NULL ;
21912191 if (opline -> op2_type == IS_CONST ) {
2192- zend_class_entry * ce = NULL ;
2192+ const zend_class_entry * ce = NULL ;
21932193
21942194 if (opline -> op1_type == IS_UNUSED ) {
21952195 ce = op_array -> scope ;
@@ -2208,9 +2208,9 @@ static zend_property_info *zend_fetch_prop_info(const zend_op_array *op_array, z
22082208 return prop_info ;
22092209}
22102210
2211- static zend_property_info * zend_fetch_static_prop_info (const zend_script * script , const zend_op_array * op_array , zend_ssa * ssa , zend_op * opline )
2211+ static const zend_property_info * zend_fetch_static_prop_info (const zend_script * script , const zend_op_array * op_array , const zend_ssa * ssa , const zend_op * opline )
22122212{
2213- zend_property_info * prop_info = NULL ;
2213+ const zend_property_info * prop_info = NULL ;
22142214 if (opline -> op1_type == IS_CONST ) {
22152215 zend_class_entry * ce = NULL ;
22162216 if (opline -> op2_type == IS_UNUSED ) {
@@ -2244,7 +2244,7 @@ static zend_property_info *zend_fetch_static_prop_info(const zend_script *script
22442244 return prop_info ;
22452245}
22462246
2247- static uint32_t zend_fetch_prop_type (const zend_script * script , zend_property_info * prop_info , zend_class_entry * * pce )
2247+ static uint32_t zend_fetch_prop_type (const zend_script * script , const zend_property_info * prop_info , zend_class_entry * * pce )
22482248{
22492249 if (!prop_info ) {
22502250 if (pce ) {
@@ -2280,7 +2280,7 @@ static zend_always_inline zend_result _zend_update_type_info(
22802280 zend_ssa * ssa ,
22812281 const zend_script * script ,
22822282 zend_bitset worklist ,
2283- zend_op * opline ,
2283+ const zend_op * opline ,
22842284 zend_ssa_op * ssa_op ,
22852285 const zend_op * * ssa_opcodes ,
22862286 zend_long optimization_level ,
@@ -2490,7 +2490,7 @@ static zend_always_inline zend_result _zend_update_type_info(
24902490 case ZEND_ASSIGN_OBJ_OP :
24912491 case ZEND_ASSIGN_STATIC_PROP_OP :
24922492 {
2493- zend_property_info * prop_info = NULL ;
2493+ const zend_property_info * prop_info = NULL ;
24942494 orig = 0 ;
24952495 tmp = 0 ;
24962496 if (opline -> opcode == ZEND_ASSIGN_OBJ_OP ) {
@@ -3454,13 +3454,13 @@ static zend_always_inline zend_result _zend_update_type_info(
34543454 tmp |= MAY_BE_NULL ;
34553455 }
34563456 if (opline -> op1_type == IS_UNUSED || (t1 & MAY_BE_OBJECT )) {
3457- zend_property_info * prop_info = zend_fetch_prop_info (op_array , ssa , opline , ssa_op );
3457+ const zend_property_info * prop_info = zend_fetch_prop_info (op_array , ssa , opline , ssa_op );
34583458 tmp |= zend_fetch_prop_type (script , prop_info , & ce );
34593459 if (opline -> opcode != ZEND_FETCH_OBJ_R && opline -> opcode != ZEND_FETCH_OBJ_IS ) {
34603460 tmp |= MAY_BE_REF | MAY_BE_INDIRECT ;
34613461 ce = NULL ;
34623462 } else if (!(opline -> op1_type & (IS_VAR |IS_TMP_VAR )) || !(t1 & MAY_BE_RC1 )) {
3463- zend_class_entry * ce = NULL ;
3463+ const zend_class_entry * ce = NULL ;
34643464
34653465 if (opline -> op1_type == IS_UNUSED ) {
34663466 ce = op_array -> scope ;
@@ -4487,7 +4487,7 @@ ZEND_API zend_result zend_ssa_inference(zend_arena **arena, const zend_op_array
44874487}
44884488/* }}} */
44894489
4490- ZEND_API bool zend_may_throw_ex (const zend_op * opline , const zend_ssa_op * ssa_op , const zend_op_array * op_array , zend_ssa * ssa , uint32_t t1 , uint32_t t2 )
4490+ ZEND_API bool zend_may_throw_ex (const zend_op * opline , const zend_ssa_op * ssa_op , const zend_op_array * op_array , const zend_ssa * ssa , uint32_t t1 , uint32_t t2 )
44914491{
44924492 if (opline -> op1_type == IS_CV ) {
44934493 if (t1 & MAY_BE_UNDEF ) {
@@ -4765,8 +4765,8 @@ ZEND_API bool zend_may_throw_ex(const zend_op *opline, const zend_ssa_op *ssa_op
47654765 }
47664766 }
47674767 if (ssa_op -> op1_use ) {
4768- zend_ssa_var_info * var_info = ssa -> var_info + ssa_op -> op1_use ;
4769- zend_class_entry * ce = var_info -> ce ;
4768+ const zend_ssa_var_info * var_info = ssa -> var_info + ssa_op -> op1_use ;
4769+ const zend_class_entry * ce = var_info -> ce ;
47704770
47714771 if (var_info -> is_instanceof ||
47724772 !ce || ce -> create_object || ce -> __get || ce -> __set || ce -> parent ) {
@@ -4813,7 +4813,7 @@ ZEND_API bool zend_may_throw_ex(const zend_op *opline, const zend_ssa_op *ssa_op
48134813 }
48144814 if (op_array -> fn_flags & ZEND_ACC_HAS_TYPE_HINTS ) {
48154815 uint32_t arg_num = opline -> op1 .num ;
4816- zend_arg_info * cur_arg_info ;
4816+ const zend_arg_info * cur_arg_info ;
48174817
48184818 if (EXPECTED (arg_num <= op_array -> num_args )) {
48194819 cur_arg_info = & op_array -> arg_info [arg_num - 1 ];
@@ -4889,7 +4889,7 @@ ZEND_API bool zend_may_throw_ex(const zend_op *opline, const zend_ssa_op *ssa_op
48894889 }
48904890}
48914891
4892- ZEND_API bool zend_may_throw (const zend_op * opline , const zend_ssa_op * ssa_op , const zend_op_array * op_array , zend_ssa * ssa )
4892+ ZEND_API bool zend_may_throw (const zend_op * opline , const zend_ssa_op * ssa_op , const zend_op_array * op_array , const zend_ssa * ssa )
48934893{
48944894 return zend_may_throw_ex (opline , ssa_op , op_array , ssa , OP1_INFO (), OP2_INFO ());
48954895}
0 commit comments