From 3db3ae172ce1459e9fdbce5a49c726eb434e59ce Mon Sep 17 00:00:00 2001 From: Dan Carpenter Date: Mon, 21 May 2012 09:40:39 +0300 Subject: [PATCH] ranges: add possibly_true/false_range_lists_rl() It takes two ranges lists, instead of two expressions. I need to use this for a later patch. Signed-off-by: Dan Carpenter --- smatch_extra.h | 5 +++++ smatch_ranges.c | 16 ++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/smatch_extra.h b/smatch_extra.h index bee3dd29..f85d5852 100644 --- a/smatch_extra.h +++ b/smatch_extra.h @@ -42,10 +42,15 @@ void add_range(struct range_list **list, long long min, long long max); int range_lists_equiv(struct range_list *one, struct range_list *two); struct range_list *invert_range_list(struct range_list *orig); int true_comparison_range(struct data_range *left, int comparison, struct data_range *right); + int possibly_true(struct expression *left, int comparison, struct expression *right); int possibly_true_range_lists(struct range_list *left_ranges, int comparison, struct range_list *right_ranges); +int possibly_true_range_lists_rl(int comparison, struct range_list *a, struct range_list *b, int left); + int possibly_false(struct expression *left, int comparison, struct expression *right); int possibly_false_range_lists(struct range_list *left_ranges, int comparison, struct range_list *right_ranges); +int possibly_false_range_lists_rl(int comparison, struct range_list *a, struct range_list *b, int left); + void free_range_list(struct range_list **rlist); void free_data_info_allocs(void); struct range_list *clone_range_list(struct range_list *list); diff --git a/smatch_ranges.c b/smatch_ranges.c index 54fcb306..4ad32175 100644 --- a/smatch_ranges.c +++ b/smatch_ranges.c @@ -604,6 +604,22 @@ int possibly_false_range_lists(struct range_list *left_ranges, int comparison, s return 0; } +int possibly_true_range_lists_rl(int comparison, struct range_list *a, struct range_list *b, int left) +{ + if (left) + return possibly_true_range_lists(a, comparison, b); + else + return possibly_true_range_lists(b, comparison, a); +} + +int possibly_false_range_lists_rl(int comparison, struct range_list *a, struct range_list *b, int left) +{ + if (left) + return possibly_false_range_lists(a, comparison, b); + else + return possibly_false_range_lists(b, comparison, a); +} + void tack_on(struct range_list **list, struct data_range *drange) { add_ptr_list(list, drange); -- 2.11.4.GIT