From 88c1a72878baf89f9c27434a0345647cb89b82e8 Mon Sep 17 00:00:00 2001
From: Tristan Le Gall <tristan.le-gall@cea.fr>
Date: Fri, 10 Feb 2023 15:05:49 +0100
Subject: [PATCH] [alias] modificiation of print function

---
 src/plugins/alias/abstract_state.ml | 31 ++++++++++++++++++++++++++++-
 1 file changed, 30 insertions(+), 1 deletion(-)

diff --git a/src/plugins/alias/abstract_state.ml b/src/plugins/alias/abstract_state.ml
index 494e8b07df7..f81bc42d470 100644
--- a/src/plugins/alias/abstract_state.ml
+++ b/src/plugins/alias/abstract_state.ml
@@ -104,8 +104,37 @@ let print_debug fmt (x:t) =
   Format.fprintf fmt "cmpt: %d@." x.cmpt
 
 let print_aliases fmt (x:t) =
+  let iter_vmap v set_lv =
+    if G.mem_vertex x.graph v then
+      let set_lv =
+        match G.succ x.graph v with
+          [] -> LSet.empty
+        | [_] -> set_lv
+        | _ -> failwith "this should not happen"
+      in
+      let set_pred = ref LSet.empty in
+      G.iter_pred
+        (fun v -> set_pred := LSet.union !set_pred (VMap.find v x.vmap))
+        x.graph
+        v;
+      if LSet.cardinal set_lv + LSet.cardinal !set_pred >= 2
+      then
+        Format.fprintf fmt "{%a%a} are aliased@."
+          (fun fmt s ->
+             LSet.iter
+               (fun lv -> Format.fprintf fmt "%a; " Lval.pretty lv)
+               s
+          )
+          set_lv
+          (fun fmt s ->
+             LSet.iter
+               (fun lv -> Format.fprintf fmt "*%a; " Lval.pretty lv)
+               s
+          )
+          !set_pred
+  in
   Format.fprintf fmt "@[<hov 2><list of may-alias>@.";
-  VMap.iter  (fun _ set_lv -> if LSet.cardinal set_lv >= 2 then Format.fprintf fmt "%a are aliased@." LSet.pretty set_lv) x.vmap;
+  VMap.iter iter_vmap x.vmap;
   Format.fprintf fmt "<end of list>@]@."
 
 let pretty ?(debug=false) =
-- 
GitLab