From 9f1290d31a18d52aa674f547d6ee03402a150182 Mon Sep 17 00:00:00 2001
From: Maxime Jacquemin <maxime.jacquemin@cea.fr>
Date: Fri, 26 Nov 2021 11:03:45 +0100
Subject: [PATCH] [ivette] Details in values_request

Just some minor rewritting.
---
 src/plugins/value/api/values_request.ml | 26 ++++++++++---------------
 1 file changed, 10 insertions(+), 16 deletions(-)

diff --git a/src/plugins/value/api/values_request.ml b/src/plugins/value/api/values_request.ml
index cb3e04ab7e6..bbbca64de7e 100644
--- a/src/plugins/value/api/values_request.ml
+++ b/src/plugins/value/api/values_request.ml
@@ -311,11 +311,9 @@ let get_bases cvalue =
 (* Get pointed bases from an offsetmap.  *)
 let get_pointed_bases = function
   | Offsetmap offsm ->
-    Cvalue.V_Offsetmap.fold_on_values
-      (fun v acc ->
-         let v = Cvalue.V_Or_Uninitialized.get_v v in
-         Base.Hptset.union acc (get_bases v))
-      offsm Base.Hptset.empty
+    let get_bases v = Cvalue.V_Or_Uninitialized.get_v v |> get_bases in
+    let f v acc = get_bases v |> Base.Hptset.union acc in
+    Cvalue.V_Offsetmap.fold_on_values f offsm Base.Hptset.empty
   | Bottom | Empty | Top | InvalidLoc -> Base.Hptset.empty
 
 (* Only keep a list of C variables from both previous functions. *)
@@ -342,9 +340,8 @@ module Proxy(A : Analysis.S) : EvaProxy = struct
   type dstate = A.Dom.state or_top_or_bottom
 
   let get_precise_loc =
-    match A.Loc.get Main_locations.PLoc.key with
-    | None -> fun _ -> Precise_locs.loc_top
-    | Some get -> get
+    let default = fun _ -> Precise_locs.loc_top in
+    Option.value ~default (A.Loc.get Main_locations.PLoc.key)
 
   let get_cvalue =
     let default = fun _ -> Cvalue.V.top in
@@ -396,16 +393,13 @@ module Proxy(A : Analysis.S) : EvaProxy = struct
 
   (* Creates an exported [value] from an evaluation result. *)
   let make_value typ stmt (result, alarms) =
-    let alarms =
-      let descr = Format.asprintf "@[<hov 2>%a@]" Alarms.pretty in
-      let f alarm status acc = (status, descr alarm) :: acc in
-      Alarmset.fold f [] alarms |> List.rev
-    in
+    let descr = Format.asprintf "@[<hov 2>%a@]" Alarms.pretty in
+    let f alarm status acc = (status, descr alarm) :: acc in
+    let alarms = Alarmset.fold f [] alarms |> List.rev in
     let pretty_eval = Bottom.pretty (pp_result typ) in
     let value = Pretty_utils.to_string pretty_eval result in
-    let pointed_vars =
-      Bottom.fold ~bottom:[] (get_pointed_markers stmt) result
-    in
+    let pointed_markers = get_pointed_markers stmt in
+    let pointed_vars = Bottom.fold ~bottom:[] pointed_markers result in
     { value; alarms; pointed_vars }
 
   (* --- Evaluates an expression or lvalue into an evaluation [result]. ----- *)
-- 
GitLab