From eaad2f5813fd15c0a2133f9fb64397601750d78d Mon Sep 17 00:00:00 2001 From: Dan Carpenter Date: Mon, 15 Jul 2013 09:40:20 +0300 Subject: [PATCH] math: introduce get_absolute_rl() It's like get_implied_rl() but it always returns a range list even if it's just the whole range. Signed-off-by: Dan Carpenter --- smatch_extra.h | 1 + smatch_math.c | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/smatch_extra.h b/smatch_extra.h index a2e11a18..937ba88c 100644 --- a/smatch_extra.h +++ b/smatch_extra.h @@ -79,6 +79,7 @@ void filter_top_rl(struct range_list_stack **rl_stack, sval_t sval); struct range_list *rl_truncate_cast(struct symbol *type, struct range_list *rl); struct range_list *cast_rl(struct symbol *type, struct range_list *rl); int get_implied_rl(struct expression *expr, struct range_list **rl); +int get_absolute_rl(struct expression *expr, struct range_list **rl); int get_implied_rl_var_sym(const char *var, struct symbol *sym, struct range_list **rl); void free_rl(struct range_list **rlist); diff --git a/smatch_math.c b/smatch_math.c index c1643dc3..a6cbc2b2 100644 --- a/smatch_math.c +++ b/smatch_math.c @@ -826,6 +826,14 @@ int get_implied_rl(struct expression *expr, struct range_list **rl) return 0; } +int get_absolute_rl(struct expression *expr, struct range_list **rl) +{ + *rl = _get_rl(expr, RL_ABSOLUTE); + if (!*rl) + *rl = alloc_whole_rl(get_type(expr)); + return 1; +} + int get_implied_rl_var_sym(const char *var, struct symbol *sym, struct range_list **rl) { struct smatch_state *state; -- 2.11.4.GIT