@@ -561,8 +561,8 @@ static void float_div(zend_long a, zend_long b, zend_long *r1, zend_long *r2) {
561
561
}
562
562
563
563
static 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 ) {
566
566
zend_long op1_min , op2_min , op1_max , op2_max , t1 , t2 , t3 , t4 ;
567
567
568
568
switch (opcode ) {
@@ -845,22 +845,22 @@ static bool zend_inference_calc_binary_op_range(
845
845
return 0 ;
846
846
}
847
847
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 )
849
849
{
850
850
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 ;
853
853
854
854
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 ;
856
856
int i ;
857
857
858
858
tmp -> underflow = 0 ;
859
859
tmp -> min = ZEND_LONG_MAX ;
860
860
tmp -> max = ZEND_LONG_MIN ;
861
861
tmp -> overflow = 0 ;
862
862
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 ;
864
864
if (constraint -> negative ) {
865
865
int src1 = p -> sources [0 ];
866
866
@@ -879,7 +879,7 @@ static bool zend_inference_calc_range(const zend_op_array *op_array, zend_ssa *s
879
879
case ZEND_PRE_DEC :
880
880
case ZEND_POST_DEC :
881
881
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 ;
883
883
884
884
if (p && p -> pi < 0
885
885
&& 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
893
893
case ZEND_PRE_INC :
894
894
case ZEND_POST_INC :
895
895
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 ;
897
897
898
898
if (p && p -> pi < 0
899
899
&& 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
1026
1026
return zend_inference_propagate_range (op_array , ssa , opline , ssa_op , var , tmp );
1027
1027
}
1028
1028
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 )
1030
1030
{
1031
1031
tmp -> underflow = 0 ;
1032
1032
tmp -> overflow = 0 ;
@@ -1326,8 +1326,8 @@ ZEND_API bool zend_inference_propagate_range(const zend_op_array *op_array, zend
1326
1326
case ZEND_DO_UCALL :
1327
1327
case ZEND_DO_FCALL_BY_NAME :
1328
1328
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 ;
1331
1331
if (!func_info || !func_info -> call_map ) {
1332
1332
break ;
1333
1333
}
@@ -1499,7 +1499,7 @@ static bool zend_check_inner_cycles(const zend_op_array *op_array, zend_ssa *ssa
1499
1499
}
1500
1500
#endif
1501
1501
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 )
1503
1503
{
1504
1504
int worklist_len = zend_bitset_len (ssa -> vars_count );
1505
1505
int j , n ;
@@ -2153,13 +2153,13 @@ static uint32_t zend_convert_type(const zend_script *script, zend_type type, zen
2153
2153
return tmp ;
2154
2154
}
2155
2155
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 )
2157
2157
{
2158
2158
return zend_convert_type (script , arg_info -> type , pce );
2159
2159
}
2160
2160
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 ;
2163
2163
2164
2164
/* If the class is linked, reuse the precise runtime logic. */
2165
2165
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
2185
2185
return NULL ;
2186
2186
}
2187
2187
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 )
2189
2189
{
2190
- zend_property_info * prop_info = NULL ;
2190
+ const zend_property_info * prop_info = NULL ;
2191
2191
if (opline -> op2_type == IS_CONST ) {
2192
- zend_class_entry * ce = NULL ;
2192
+ const zend_class_entry * ce = NULL ;
2193
2193
2194
2194
if (opline -> op1_type == IS_UNUSED ) {
2195
2195
ce = op_array -> scope ;
@@ -2208,9 +2208,9 @@ static zend_property_info *zend_fetch_prop_info(const zend_op_array *op_array, z
2208
2208
return prop_info ;
2209
2209
}
2210
2210
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 )
2212
2212
{
2213
- zend_property_info * prop_info = NULL ;
2213
+ const zend_property_info * prop_info = NULL ;
2214
2214
if (opline -> op1_type == IS_CONST ) {
2215
2215
zend_class_entry * ce = NULL ;
2216
2216
if (opline -> op2_type == IS_UNUSED ) {
@@ -2244,7 +2244,7 @@ static zend_property_info *zend_fetch_static_prop_info(const zend_script *script
2244
2244
return prop_info ;
2245
2245
}
2246
2246
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 )
2248
2248
{
2249
2249
if (!prop_info ) {
2250
2250
if (pce ) {
@@ -2280,7 +2280,7 @@ static zend_always_inline zend_result _zend_update_type_info(
2280
2280
zend_ssa * ssa ,
2281
2281
const zend_script * script ,
2282
2282
zend_bitset worklist ,
2283
- zend_op * opline ,
2283
+ const zend_op * opline ,
2284
2284
zend_ssa_op * ssa_op ,
2285
2285
const zend_op * * ssa_opcodes ,
2286
2286
zend_long optimization_level ,
@@ -2490,7 +2490,7 @@ static zend_always_inline zend_result _zend_update_type_info(
2490
2490
case ZEND_ASSIGN_OBJ_OP :
2491
2491
case ZEND_ASSIGN_STATIC_PROP_OP :
2492
2492
{
2493
- zend_property_info * prop_info = NULL ;
2493
+ const zend_property_info * prop_info = NULL ;
2494
2494
orig = 0 ;
2495
2495
tmp = 0 ;
2496
2496
if (opline -> opcode == ZEND_ASSIGN_OBJ_OP ) {
@@ -3468,13 +3468,13 @@ static zend_always_inline zend_result _zend_update_type_info(
3468
3468
tmp |= MAY_BE_NULL ;
3469
3469
}
3470
3470
if (opline -> op1_type == IS_UNUSED || (t1 & MAY_BE_OBJECT )) {
3471
- zend_property_info * prop_info = zend_fetch_prop_info (op_array , ssa , opline , ssa_op );
3471
+ const zend_property_info * prop_info = zend_fetch_prop_info (op_array , ssa , opline , ssa_op );
3472
3472
tmp |= zend_fetch_prop_type (script , prop_info , & ce );
3473
3473
if (opline -> opcode != ZEND_FETCH_OBJ_R && opline -> opcode != ZEND_FETCH_OBJ_IS ) {
3474
3474
tmp |= MAY_BE_REF | MAY_BE_INDIRECT ;
3475
3475
ce = NULL ;
3476
3476
} else if (!(opline -> op1_type & (IS_VAR |IS_TMP_VAR )) || !(t1 & MAY_BE_RC1 )) {
3477
- zend_class_entry * ce = NULL ;
3477
+ const zend_class_entry * ce = NULL ;
3478
3478
3479
3479
if (opline -> op1_type == IS_UNUSED ) {
3480
3480
ce = op_array -> scope ;
@@ -4501,7 +4501,7 @@ ZEND_API zend_result zend_ssa_inference(zend_arena **arena, const zend_op_array
4501
4501
}
4502
4502
/* }}} */
4503
4503
4504
- 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 )
4504
+ 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 )
4505
4505
{
4506
4506
if (opline -> op1_type == IS_CV ) {
4507
4507
if (t1 & MAY_BE_UNDEF ) {
@@ -4779,8 +4779,8 @@ ZEND_API bool zend_may_throw_ex(const zend_op *opline, const zend_ssa_op *ssa_op
4779
4779
}
4780
4780
}
4781
4781
if (ssa_op -> op1_use ) {
4782
- zend_ssa_var_info * var_info = ssa -> var_info + ssa_op -> op1_use ;
4783
- zend_class_entry * ce = var_info -> ce ;
4782
+ const zend_ssa_var_info * var_info = ssa -> var_info + ssa_op -> op1_use ;
4783
+ const zend_class_entry * ce = var_info -> ce ;
4784
4784
4785
4785
if (var_info -> is_instanceof ||
4786
4786
!ce || ce -> create_object || ce -> __get || ce -> __set || ce -> parent ) {
@@ -4827,7 +4827,7 @@ ZEND_API bool zend_may_throw_ex(const zend_op *opline, const zend_ssa_op *ssa_op
4827
4827
}
4828
4828
if (op_array -> fn_flags & ZEND_ACC_HAS_TYPE_HINTS ) {
4829
4829
uint32_t arg_num = opline -> op1 .num ;
4830
- zend_arg_info * cur_arg_info ;
4830
+ const zend_arg_info * cur_arg_info ;
4831
4831
4832
4832
if (EXPECTED (arg_num <= op_array -> num_args )) {
4833
4833
cur_arg_info = & op_array -> arg_info [arg_num - 1 ];
@@ -4903,7 +4903,7 @@ ZEND_API bool zend_may_throw_ex(const zend_op *opline, const zend_ssa_op *ssa_op
4903
4903
}
4904
4904
}
4905
4905
4906
- 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 )
4906
+ 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 )
4907
4907
{
4908
4908
return zend_may_throw_ex (opline , ssa_op , op_array , ssa , OP1_INFO (), OP2_INFO ());
4909
4909
}
0 commit comments