From: Dan Carpenter Date: Fri, 11 Jan 2013 12:33:24 +0000 (+0300) Subject: estate: rename filter_range() to estate_filter_range() X-Git-Tag: 1.57~65 X-Git-Url: https://repo.or.cz/w/smatch.git/commitdiff_plain/08bb11fb4ed135da330df0439fdcf23e52f8ed64 estate: rename filter_range() to estate_filter_range() I've moved these from smatch_extra.c to smatch_estate.c as well. Signed-off-by: Dan Carpenter --- diff --git a/check_kernel.c b/check_kernel.c index b751da36..a24db0d3 100644 --- a/check_kernel.c +++ b/check_kernel.c @@ -45,7 +45,7 @@ static void match_param_nonnull(const char *fn, struct expression *call_expr, arg = get_argument_from_call_expr(call_expr->args, param); pre_state = get_state_expr(SMATCH_EXTRA, arg); - true_state = add_filter(pre_state, ll_to_sval(0)); + true_state = estate_filter_sval(pre_state, ll_to_sval(0)); set_extra_expr_nomod(arg, true_state); } @@ -58,7 +58,7 @@ static void match_not_err(const char *fn, struct expression *call_expr, arg = get_argument_from_call_expr(call_expr->args, 0); pre_state = get_state_expr(SMATCH_EXTRA, arg); - new_state = filter_range(pre_state, sval_type_min(&long_ctype), ll_to_sval(-1)); + new_state = estate_filter_range(pre_state, sval_type_min(&long_ctype), ll_to_sval(-1)); set_extra_expr_nomod(arg, new_state); } @@ -71,8 +71,8 @@ static void match_err(const char *fn, struct expression *call_expr, arg = get_argument_from_call_expr(call_expr->args, 0); pre_state = get_state_expr(SMATCH_EXTRA, arg); - new_state = filter_range(pre_state, sval_type_min(&long_ctype), ll_to_sval(-4096)); - new_state = filter_range(new_state, ll_to_sval(0), sval_type_max(&long_ctype)); + new_state = estate_filter_range(pre_state, sval_type_min(&long_ctype), ll_to_sval(-4096)); + new_state = estate_filter_range(new_state, ll_to_sval(0), sval_type_max(&long_ctype)); set_extra_expr_nomod(arg, new_state); } diff --git a/smatch_estate.c b/smatch_estate.c index e359df28..cef6dda3 100644 --- a/smatch_estate.c +++ b/smatch_estate.c @@ -279,3 +279,22 @@ struct smatch_state *get_implied_estate(struct expression *expr) rl = alloc_whole_rl(get_type(expr)); return alloc_estate_rl(rl); } + +struct smatch_state *estate_filter_range(struct smatch_state *orig, + sval_t filter_min, sval_t filter_max) +{ + struct range_list *rl; + + if (!orig) + orig = alloc_estate_whole(filter_min.type); + + rl = remove_range(estate_rl(orig), filter_min, filter_max); + return alloc_estate_rl(rl); +} + +struct smatch_state *estate_filter_sval(struct smatch_state *orig, sval_t sval) +{ + return estate_filter_range(orig, sval, sval); +} + + diff --git a/smatch_extra.c b/smatch_extra.c index 7b3cf70b..9a7c9147 100644 --- a/smatch_extra.c +++ b/smatch_extra.c @@ -169,23 +169,6 @@ free: free_string(name); } -struct smatch_state *filter_range(struct smatch_state *orig, - sval_t filter_min, sval_t filter_max) -{ - struct range_list *rl; - - if (!orig) - orig = alloc_estate_whole(filter_min.type); - - rl = remove_range(estate_rl(orig), filter_min, filter_max); - return alloc_estate_rl(rl); -} - -struct smatch_state *add_filter(struct smatch_state *orig, sval_t sval) -{ - return filter_range(orig, sval, sval); -} - static struct sm_state *handle_canonical_while_count_down(struct statement *loop) { struct expression *iter_var; @@ -950,7 +933,7 @@ void __extra_match_condition(struct expression *expr) if (!name) return; pre_state = get_state(my_id, name, sym); - true_state = add_filter(pre_state, zero); + true_state = estate_filter_sval(pre_state, zero); if (possibly_true(expr, SPECIAL_EQUAL, zero_expr())) false_state = alloc_estate_sval(zero); else diff --git a/smatch_extra.h b/smatch_extra.h index 3473cd58..6c0875b0 100644 --- a/smatch_extra.h +++ b/smatch_extra.h @@ -113,6 +113,9 @@ int estate_get_hard_max(struct smatch_state *state, sval_t *sval); int estate_get_single_value(struct smatch_state *state, sval_t *sval); struct smatch_state *get_implied_estate(struct expression *expr); +struct smatch_state *estate_filter_sval(struct smatch_state *orig, sval_t filter); +struct smatch_state *estate_filter_range(struct smatch_state *orig, sval_t filter_min, sval_t filter_max); + /* used in smatch_slist. implemented in smatch_extra.c */ void add_extra_mod_hook(void (*fn)(const char *name, struct symbol *sym, struct smatch_state *state)); int implied_not_equal(struct expression *expr, long long val); @@ -128,8 +131,6 @@ struct sm_state *set_extra_expr_mod(struct expression *expr, struct smatch_state void set_extra_expr_nomod(struct expression *expr, struct smatch_state *state); struct data_info *get_dinfo(struct smatch_state *state); -struct smatch_state *add_filter(struct smatch_state *orig, sval_t filter); -struct smatch_state *filter_range(struct smatch_state *orig, sval_t filter_min, sval_t filter_max); void function_comparison(int comparison, struct expression *expr, sval_t sval, int left); /* smatch_expressions.c */