Skip to content
Snippets Groups Projects
Commit 34a2b354 authored by Allan Blanchard's avatar Allan Blanchard
Browse files

[wp] Clarifies some functions in MemoryContext

parent 78c55ade
No related branches found
No related tags found
No related merge requests found
...@@ -179,12 +179,9 @@ let separated_list ?loc = function ...@@ -179,12 +179,9 @@ let separated_list ?loc = function
let comp = Cil_datatype.Term.compare in let comp = Cil_datatype.Term.compare in
pseparated ?loc (List.sort comp l) pseparated ?loc (List.sort comp l)
let separated_from_term loc assigned l = let term_separated_from_regions loc assigned l =
separated_list ~loc (assigned :: List.map (region_to_term loc) l) separated_list ~loc (assigned :: List.map (region_to_term loc) l)
let separated_from_addr loc assigned =
separated_from_term loc (addr_of_lval ~loc assigned.it_content)
let valid_region loc r = let valid_region loc r =
let t = region_to_term loc r in let t = region_to_term loc r in
pvalid ~loc (here_label, t) pvalid ~loc (here_label, t)
...@@ -265,20 +262,20 @@ let assigned_via_pointers kf = ...@@ -265,20 +262,20 @@ let assigned_via_pointers kf =
let clauses_of_partition kf loc p = let clauses_of_partition kf loc p =
let globals = global_zones p in let globals = global_zones p in
let filter p = not (Logic_utils.is_trivially_true p) in
let main_sep = let main_sep =
main_separation loc globals (context_zones p) (heaps p) main_separation loc globals (context_zones p) (heaps p)
in in
let assigns_sep = let assigns_sep =
let addr_of t = addr_of_lval ~loc t.it_content in
List.map List.map
(fun t -> separated_from_addr loc t globals) (fun t -> term_separated_from_regions loc (addr_of t) globals)
(assigned_via_pointers kf) (assigned_via_pointers kf)
in in
let context_validity = let context_validity =
List.map (valid_region loc) (context_zones p) List.map (valid_region loc) (context_zones p)
in in
let reqs = main_sep @ assigns_sep @ context_validity in let reqs = main_sep @ assigns_sep @ context_validity in
let reqs = List.filter filter reqs in let reqs = List.filter (fun p -> not(Logic_utils.is_trivially_true p)) reqs in
let reqs = List.sort_uniq Logic_utils.compare_predicate reqs in let reqs = List.sort_uniq Logic_utils.compare_predicate reqs in
reqs reqs
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment