From 6c152bf87197d87adebaab5fbc7cb458cceea0c1 Mon Sep 17 00:00:00 2001 From: Dan Carpenter Date: Fri, 20 Jul 2012 13:51:22 +0300 Subject: [PATCH] ranges: introduce rl_contiguous() It returns if a range list is all one range. I use it in one of my checks locally. Signed-off-by: Dan Carpenter --- smatch_extra.h | 1 + smatch_ranges.c | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/smatch_extra.h b/smatch_extra.h index 308dd387..a19bc03e 100644 --- a/smatch_extra.h +++ b/smatch_extra.h @@ -36,6 +36,7 @@ void alloc_estate_undefined(void); /* these are implemented in smatch_ranges.c */ int is_whole_range_rl(struct range_list *rl); +int rl_contiguous(struct range_list *rl); long long rl_min(struct range_list *rl); long long rl_max(struct range_list *rl); struct data_range *alloc_range_perm(long long min, long long max); diff --git a/smatch_ranges.c b/smatch_ranges.c index 4ad32175..089346b3 100644 --- a/smatch_ranges.c +++ b/smatch_ranges.c @@ -139,6 +139,13 @@ int is_whole_range_rl(struct range_list *rl) return 0; } +int rl_contiguous(struct range_list *rl) +{ + if (first_ptr_list((struct ptr_list *)rl) == last_ptr_list((struct ptr_list *)rl)) + return 1; + return 0; +} + long long rl_min(struct range_list *rl) { struct data_range *drange; -- 2.11.4.GIT