From 689d6be2a7fbc94f65bb3fc21a33dc33d15eb510 Mon Sep 17 00:00:00 2001
From: Jan Rochel <jan.rochel@cea.fr>
Date: Thu, 6 Apr 2023 18:18:34 +0200
Subject: [PATCH] [alias] more compact pretty printing

---
 src/plugins/alias/abstract_state.ml           | 117 ++--
 src/plugins/alias/abstract_state.mli          |   2 +-
 src/plugins/alias/analysis.ml                 |  32 +-
 src/plugins/alias/simplified.ml               |   6 +-
 .../tests/basic/oracle/addrof.res.oracle      |  26 +-
 .../tests/basic/oracle/assignment1.res.oracle |  27 +-
 .../tests/basic/oracle/assignment2.res.oracle |  31 +-
 .../tests/basic/oracle/assignment3.res.oracle |  21 +-
 .../tests/basic/oracle/assignment4.res.oracle |  31 +-
 .../tests/basic/oracle/assignment5.res.oracle |  31 +-
 .../alias/tests/basic/oracle/cast1.res.oracle |  27 +-
 .../basic/oracle/conditional1.res.oracle      |  24 +-
 .../basic/oracle/conditional2.res.oracle      |  33 +-
 .../basic/oracle/conditional3.res.oracle      |  64 +-
 .../tests/basic/oracle/function1.res.oracle   |  48 +-
 .../tests/basic/oracle/function2.res.oracle   | 200 ++----
 .../tests/basic/oracle/function3.res.oracle   |  42 +-
 .../tests/basic/oracle/function4.res.oracle   |  24 +-
 .../tests/basic/oracle/function5.res.oracle   |  30 +-
 .../tests/basic/oracle/globctr.res.oracle     |  27 +-
 .../alias/tests/basic/oracle/loop.res.oracle  |  24 +-
 .../tests/basic/oracle/steensgaard.res.oracle |  28 +-
 .../tests/basic/oracle/switch1.res.oracle     |  27 +-
 .../tests/basic/oracle/switch2.res.oracle     |  30 +-
 .../tests/basic/oracle/while_for1.res.oracle  | 189 ++----
 .../tests/basic/oracle/while_for2.res.oracle  |  18 +-
 .../tests/basic/oracle/while_for3.res.oracle  |  27 +-
 .../fixed_bugs/oracle/union_vmap.res.oracle   |  19 +-
 .../tests/offsets/oracle/array1.res.oracle    |  24 +-
 .../tests/offsets/oracle/array2.res.oracle    |  18 +-
 .../tests/offsets/oracle/array3.res.oracle    | 190 ++----
 .../tests/offsets/oracle/collapse1.res.oracle |  30 +-
 .../tests/offsets/oracle/collapse2.res.oracle |  24 +-
 .../tests/offsets/oracle/collapse3.res.oracle |  24 +-
 .../tests/offsets/oracle/nested1.res.oracle   | 243 +++----
 .../tests/offsets/oracle/nested2.res.oracle   | 209 ++----
 .../offsets/oracle/structure1.res.oracle      |  24 +-
 .../offsets/oracle/structure2.res.oracle      |  20 +-
 .../offsets/oracle/structure3.res.oracle      |  43 +-
 .../offsets/oracle/structure4.res.oracle      | 194 ++----
 .../offsets/oracle/structure5.res.oracle      | 219 +++----
 .../real_world/oracle/example1.res.oracle     | 590 ++++++-----------
 .../real_world/oracle/example2.res.oracle     | 608 +++++++-----------
 43 files changed, 1280 insertions(+), 2385 deletions(-)

diff --git a/src/plugins/alias/abstract_state.ml b/src/plugins/alias/abstract_state.ml
index 1dfce6cfd29..22ca8d84cc1 100644
--- a/src/plugins/alias/abstract_state.ml
+++ b/src/plugins/alias/abstract_state.ml
@@ -96,10 +96,13 @@ struct
       m
 
   let pretty fmt (m:t) =
+    let is_first = ref true in
     LMap.iter
       (fun lv mo ->
          OMap.iter
-           (fun o v -> let lv =  Lval.addOffsetLval o lv in Format.fprintf fmt "(lval=%a -> id=%d)@." Lval.pretty lv v)
+           (fun o v -> let lv =  Lval.addOffsetLval o lv in
+             if !is_first then is_first := false else Format.fprintf fmt "@;<3>";
+             Format.fprintf fmt "@ @[%a:%d@]" Lval.pretty lv v)
            mo
       )
       m
@@ -236,27 +239,36 @@ let get_lval_set = find_lset
 (* printing functions *)
 
 let print_debug fmt (x:t) =
-  Format.fprintf fmt "@[<hov 2>List of edges: @.";
-  G.iter_edges (fun v1 v2 -> Format.fprintf fmt "%d → %d@." v1 v2) x.graph;
-  Format.fprintf fmt "@]@.";
-  Format.fprintf fmt "@[<hov 2>LMap: @.";
+  Format.fprintf fmt "@[<v>";
+  Format.fprintf fmt "@[Edges:";
+  G.iter_edges (fun v1 v2 -> Format.fprintf fmt "@;<3 2>@[%d → %d@]" v1 v2) x.graph;
+  Format.fprintf fmt "@]@;<6>";
+  Format.fprintf fmt "@[LMap:@;<3 2>";
   LLMap.pretty fmt x.lmap;
-  Format.fprintf fmt "@]@.";
-  Format.fprintf fmt "@[<hov 2>VMap: @.";
-  VMap.iter (fun v ls -> Format.fprintf fmt "id=%d → lset=%a@." v LSet.pretty ls) x.vmap;
-  Format.fprintf fmt "@]@."
+  Format.fprintf fmt "@]@;<6>";
+  Format.fprintf fmt "@[VMap:@;<2>";
+  VMap.iter (fun v ls -> Format.fprintf fmt "@;<2 2>@[%d:%a@]" v LSet.pretty ls) x.vmap;
+  Format.fprintf fmt "@]";
+  Format.fprintf fmt "@]"
 
 let print_graph fmt (x:t) =
+  let is_first = ref true in
   let print_edge v1 v2 =
-    Format.fprintf fmt "%d:%a -> %d:%a@."
-      v1 LSet.pretty (VMap.find v1 x.vmap)
-      v2 LSet.pretty (VMap.find v2 x.vmap)
+    if !is_first then is_first := false else Format.fprintf fmt "@;<3>";
+    let print_node v fmt lset = Format.fprintf fmt "%d:%a" v LSet.pretty lset in
+    Format.fprintf fmt "@[%a@] → @[%a@]"
+      (print_node v1) (VMap.find v1 x.vmap)
+      (print_node v2) (VMap.find v2 x.vmap)
   in
-  G.iter_edges print_edge x.graph
+  if G.nb_edges x.graph = 0
+  then Format.fprintf fmt "<empty>"
+  else G.iter_edges print_edge x.graph
 
 let print_aliases fmt (x:t) =
+  let is_first = ref true in
   let print_alias_set _ set_lv =
-    Format.fprintf fmt "@[<hov 2>%a@] are aliased@." LSet.pretty set_lv
+    if !is_first then is_first := false else Format.fprintf fmt "@;<2>";
+    LSet.pretty fmt set_lv
   in
   let alias_set_of_vertex i _ =
     let aliases = aliases_of_vertex i x in
@@ -388,7 +400,7 @@ let find_all_aliases_of_offset (lv1: Lval.t) (x: t) : LSet.t =
   in
   Options.debug ~level:9 "decompose_lval %a : [@[<hov 2>" Lval.pretty lv1;
   List.iter (fun (x, o) -> Options.debug ~level:9 " (%a,%a) " Lval.pretty x Offset.pretty o) list_of_lval_to_be_searched;
-  Options.debug ~level:9 "@]]@.";
+  Options.debug ~level:9 "@]]";
   let list_of_aliases : (LSet.t*offset) list =
     List.map f_map list_of_lval_to_be_searched
   in
@@ -413,7 +425,7 @@ let create_vertex_simple (lv:Lval.t) (x:t) : V.t * t =
   (* find all the alias of lv (because of offset) *)
   let set_of_aliases : LSet.t = find_all_aliases_of_offset lv x in
   (* add all these aliases *)
-  Options.debug ~level:9 "all_aliases of %a : %a @." Lval.pretty lv LSet.pretty set_of_aliases;
+  Options.debug ~level:9 "all_aliases of %a : %a " Lval.pretty lv LSet.pretty set_of_aliases;
   let new_lmap =
     LSet.fold
       (fun lv acc -> assert (not (LLMap.mem lv x.lmap)); LLMap.add lv new_v acc)
@@ -469,7 +481,7 @@ let diff_offset (lv1:Lval.t) (lv2:Lval.t) =
    in the graph. If it is present, there will be bugs *)
 let rec create_vertex_lval (blv:Lval.t) (x:t) : V.t * t =
   assert (not (LLMap.mem blv x.lmap));
-  Options.debug ~level:9 "creating a vertex for %a@." Lval.pretty blv;
+  Options.debug ~level:9 "creating a vertex for %a" Lval.pretty blv;
   match blv with
   | BNone ->
     Options.fatal "Should not happen: create_vertex_lval %a" Lval.pretty blv
@@ -519,7 +531,7 @@ and find_or_create_vertex (lv:Lval.t) (x:t) : V.t * t =
       (* for any predecessor, find all its aliases and then look for potential existing vertex *)
       let f_fold_lmap lvx vx acc =
         let set_aliases = VMap.find vx x.vmap in
-        Options.debug ~level:9 "looking for aliases of %a in set %a@." Lval.pretty lv LSet.pretty set_aliases;
+        Options.debug ~level:9 "looking for aliases of %a in set %a" Lval.pretty lv LSet.pretty set_aliases;
         if LSet.cardinal set_aliases > 1
         then
           let off = diff_offset lvx lv in
@@ -544,7 +556,7 @@ and find_or_create_vertex (lv:Lval.t) (x:t) : V.t * t =
           map_predecessors
           VSet.empty
       in
-      Options.debug ~level:9 "found aliases of %a : %a@." Lval.pretty lv VSet.pretty vset_res;
+      Options.debug ~level:9 "found aliases of %a : %a" Lval.pretty lv VSet.pretty vset_res;
       if VSet.is_empty vset_res
       then create_vertex_lval lv x
       else
@@ -637,16 +649,16 @@ let rec join_without_check (x:t) (v1:V.t) (v2:V.t) : t =
 
 (* since the recursive version of join, unify, unify2 and merge may break the invariants *)
 let join (x:t) (v1:V.t) (v2:V.t) : t =
-  Options.debug ~level:7 "graph before join(%d,%d) @.%a@." v1 v2 print_debug x;
+  Options.debug ~level:7 "graph before join(%d,%d):@;<2>@[%a@]" v1 v2 print_debug x;
   assert_invariants x;
   let res = join_without_check x v1 v2 in
-  Options.debug ~level:7 "graph after join(%d,%d) @.%a@." v1 v2 print_debug res;
+  Options.debug ~level:7 "graph after join(%d,%d):@;<2>@[%a@]" v1 v2 print_debug res;
   begin
     try assert_invariants res
     with Assert_failure _ ->
       Options.debug "join(%d,%d) failed" v1 v2;
-      Options.debug "graph before join(%d,%d) @.%a@." v1 v2 print_debug x;
-      Options.debug "graph after join(%d,%d) @.%a@." v1 v2 print_debug res;
+      Options.debug "graph before join(%d,%d):@;<2>@[%a@]" v1 v2 print_debug x;
+      Options.debug "graph after join(%d,%d):@;<2>@[ %a@]" v1 v2 print_debug res;
       assert_invariants res
   end;
   res
@@ -654,15 +666,15 @@ let join (x:t) (v1:V.t) (v2:V.t) : t =
 let merge_set (x:t) (vs:VSet.t) : V.t * t =
   let v0 = VSet.choose vs in
   if VSet.cardinal vs < 2 then v0, x else begin
-    Options.debug ~level:7 "graph before merge_set %a @.%a@." VSet.pretty vs print_debug x;
+    Options.debug ~level:7 "graph before merge_set %a:@;<2>@[%a@]" VSet.pretty vs print_debug x;
     assert (G.mem_vertex x.graph v0);
     let result = VSet.fold (fun v acc -> merge acc v0 v) vs x in
-    Options.debug ~level:7 "graph after merge_set %a @.%a@." VSet.pretty vs print_debug result;
+    Options.debug ~level:7 "graph after merge_set %a:@;<2>@[%a@]" VSet.pretty vs print_debug result;
     v0, result
   end
 
 let rec join_succs (x:t) v =
-  Options.debug ~level:8 "joining successors of %d@." v;
+  Options.debug ~level:8 "joining successors of %d" v;
   if not @@ G.mem_vertex x.graph v then x else
     match G.succ x.graph v with
     | [] | [_] -> x
@@ -733,7 +745,7 @@ let is_included (a1:t) (a2:t) =
   (* tests if a1 is included in a2, at least as the nodes with lval *)
   assert_invariants a1;
   assert_invariants a2;
-  Options.debug ~level:8 "testing equal @.%a@. AND à.%a@." (pretty ~debug:true) a1 (pretty ~debug:true) a2;
+  Options.debug ~level:8 "testing equal %a AND à.%a" (pretty ~debug:true) a1 (pretty ~debug:true) a2;
   try
     let iter_lmap (lv:Lval.t) (v1:V.t): unit =
       let v2 : V.t = try LLMap.find lv a2.lmap with Not_found -> raise Not_included in
@@ -773,7 +785,7 @@ let is_empty s =
 let shift (a : t) : t =
   assert_invariants a;
   if is_empty a then a else
-    let () = Options.debug ~level:8 "before shift: node_counter=%d@.%a@." !node_counter print_debug a in
+    let () = Options.debug ~level:8 "before shift: node_counter=%d@.%a" !node_counter print_debug a in
     let max_idx = G.fold_vertex max a.graph 0 in
     let min_idx = G.fold_vertex min a.graph max_idx in
     let offset = !node_counter - min_idx in
@@ -783,13 +795,12 @@ let shift (a : t) : t =
     in
     let {graph; lmap; vmap} = a in
     node_counter := max_idx + offset + 1;
-    let () = Options.debug ~level:8 "node_counter after shift: %d@." !node_counter in
     let result =
       {graph = G.map_vertex shift graph;
        lmap = LLMap.map shift lmap;
        vmap = shift_vmap (fun (key, l) -> (shift key, l)) vmap}
     in
-    let () = Options.debug ~level:8 "after shift: node_counter=%d@.%a@." !node_counter print_debug result in
+    let () = Options.debug ~level:8 "after shift: node_counter=%d@.%a" !node_counter print_debug result in
     assert_invariants result;
     result
 
@@ -828,10 +839,10 @@ let union (a1:t) (a2:t) :t =
   assert_invariants a1;
   assert_invariants a2;
 
-  Options.debug ~level:4 "Union: First graph:@.%a@." print_graph a1;
-  Options.debug ~level:5 "Union: First graph:@.%a@." print_debug a1;
-  Options.debug ~level:4 "Union: Second graph:@.%a@." print_graph a2;
-  Options.debug ~level:5 "Union: Second graph:@.%a@." print_debug a2;
+  Options.debug ~level:4 "Union: First graph:%a" print_graph a1;
+  Options.debug ~level:5 "Union: First graph:%a" print_debug a1;
+  Options.debug ~level:4 "Union: Second graph:%a" print_graph a2;
+  Options.debug ~level:5 "Union: Second graph:%a" print_debug a2;
   let new_graph =
     G.fold_vertex
       (fun v2 g -> G.add_vertex g v2)
@@ -856,7 +867,7 @@ let union (a1:t) (a2:t) :t =
   let new_lmap = LLMap.union a1.lmap a2.lmap in
   Options.debug ~level:7 "Union: sets to be joined:@[";
   VMap.iter (fun _ set -> Options.debug ~level:7 "%a" VSet.pretty set) sets_to_be_joined;
-  Options.debug ~level:7 "@]@.";
+  Options.debug ~level:7 "@]";
   let new_a = {graph = new_graph; lmap = new_lmap; vmap = new_vmap} in
   let merged_nodes, new_a =
     VMap.fold
@@ -865,18 +876,18 @@ let union (a1:t) (a2:t) :t =
       ([], new_a)
   in
   let new_a = List.fold_left join_succs new_a merged_nodes in
-  Options.debug ~level:4 "Union: Result graph:@.%a@." print_graph new_a;
-  Options.debug ~level:5 "Union: Result graph:@.%a@." print_debug new_a;
+  Options.debug ~level:4 "Union: Result graph:%a" print_graph new_a;
+  Options.debug ~level:5 "Union: Result graph:%a" print_debug new_a;
   begin
     try assert_invariants new_a
     with Assert_failure _ ->
       Options.debug "union failed";
-      Options.debug "Union: First graph:@.%a@." print_graph a1;
-      Options.debug "Union: First graph:@.%a@." print_debug a1;
-      Options.debug "Union: Second graph:@.%a@." print_graph a2;
-      Options.debug "Union: Second graph:@.%a@." print_debug a2;
-      Options.debug "Union: Result graph:@.%a@." print_graph new_a;
-      Options.debug "Union: Result graph:@.%a@." print_debug new_a;
+      Options.debug "Union: First graph:%a" print_graph a1;
+      Options.debug "Union: First graph:%a" print_debug a1;
+      Options.debug "Union: Second graph:%a" print_graph a2;
+      Options.debug "Union: Second graph:%a" print_debug a2;
+      Options.debug "Union: Result graph:%a" print_graph new_a;
+      Options.debug "Union: Result graph:%a" print_debug new_a;
       assert_invariants new_a
   end;
   new_a
@@ -909,8 +920,8 @@ let make_summary (s: t option) (kf: kernel_function) =
           None, _ |  _, BNone -> s
         | Some s, lv ->
           let _, new_s = find_or_create_vertex lv s in
-          (* Format.printf "DEBUG: new state BEFORE finding %a:@.%a@." Lval.pretty lv (pretty ~debug:true) s; *)
-          (* Format.printf "DEBUG: new state AFTER finding %a:@.%a@." Lval.pretty lv (pretty ~debug:true) new_s; *)
+          (* Format.printf "DEBUG: new state BEFORE finding %a:%a" Lval.pretty lv (pretty ~debug:true) s; *)
+          (* Format.printf "DEBUG: new state AFTER finding %a:%a" Lval.pretty lv (pretty ~debug:true) new_s; *)
           Some new_s
       end
   in
@@ -922,24 +933,26 @@ let make_summary (s: t option) (kf: kernel_function) =
   }
 
 
-let pretty_summary ?(debug=false) ?(function_name="") fmt s =
+let pretty_summary ?(debug=false) fmt s =
   let print_list_lval fmt (l: lval list) =
     List.iter (fun x -> Format.fprintf fmt "%a " Cil_datatype.Lval.pretty x) l
   in
   let print_option pp fmt x =
     match x with
     | Some x -> pp fmt x
-    | None -> Format.fprintf fmt "<None>"
+    | None -> Format.fprintf fmt "<none>"
   in
   match s.state with
-    None -> if debug then Format.fprintf fmt  "@Summary of function %s is not in the table @." function_name
-  | Some s when is_empty s -> if debug then Format.fprintf fmt "@Summary of function %s is empty @." function_name
+  | None -> if debug then Format.fprintf fmt "not found"
+  | Some s when is_empty s -> if debug then Format.fprintf fmt "empty"
   | _ ->
     begin
-      Format.fprintf fmt "@[<hov 2>Summary of function %s: @." function_name;
       (* Format.fprintf fmt "state not empty"; *)
-      Format.fprintf fmt "formals: %a locals : %a return expression: %a @.State: @[<hov 2>%a@] " print_list_lval s.formals print_list_lval s.locals (print_option Exp.pretty) s.return (print_option (pretty ~debug)) s.state;
-      Format.fprintf fmt "@]@."
+      Format.fprintf fmt "@[formals: @[%a@]@;<3>locals: @[%a@]@;<3>returns: @[%a@]@;<3>state: @[%a@] "
+        print_list_lval s.formals
+        print_list_lval s.locals
+        (print_option Exp.pretty) s.return
+        (print_option @@ pretty ~debug) s.state;
     end
 
 (* the algorithm:
diff --git a/src/plugins/alias/abstract_state.mli b/src/plugins/alias/abstract_state.mli
index c046771e438..41dfadfeec3 100644
--- a/src/plugins/alias/abstract_state.mli
+++ b/src/plugins/alias/abstract_state.mli
@@ -123,7 +123,7 @@ type summary
 val make_summary : t option -> kernel_function -> summary
 
 (** pretty printer *)
-val pretty_summary :  ?debug:bool -> ?function_name:string -> Format.formatter -> summary -> unit
+val pretty_summary :  ?debug:bool -> Format.formatter -> summary -> unit
 
 (** [call a res args s] computes the abstract state after the
     instruction res=f(args), with f summarized by [s]. [a] is the abstract state before the call *)
diff --git a/src/plugins/alias/analysis.ml b/src/plugins/alias/analysis.ml
index e2d27fc9555..7d3613d0036 100644
--- a/src/plugins/alias/analysis.ml
+++ b/src/plugins/alias/analysis.ml
@@ -155,15 +155,15 @@ let analyse_instr (s:stmt)  (i:instr) (a:Abstract_state.t option) : Abstract_sta
 
 let pp_abstract_state_opt ?(debug=false) fmt v =
   match v with
-  | None -> Format.fprintf fmt "<Bot>"
+  | None -> Format.fprintf fmt "⊥"
   | Some a -> Abstract_state.pretty ~debug fmt a
 
 let do_instr (s:stmt)  (i:instr) (a:Abstract_state.t option) : Abstract_state.t option =
-  Options.feedback ~level:3 "analysing instruction: %a" Printer.pp_stmt s;
+  Options.feedback ~level:3 "@[analysing instruction:@ %a@]" Printer.pp_stmt s;
   let result = analyse_instr s i a in
-  Options.feedback ~level:3 "May-aliases at the end of instruction: %a@.%a@."
+  Options.feedback ~level:3 "@[May-aliases after instruction@;<2>@[%a@]@;<2>are@;<2>@[%a@]@]"
     Printer.pp_stmt s (pp_abstract_state_opt ~debug:false) result;
-  Options.debug ~level:3 "May-alias graph at the end of instruction: %a@.%a@."
+  Options.debug ~level:3 "@[May-alias graph after instruction@;<2>@[%a@]@;<2>is@;<4>@[%a@]@]"
     Printer.pp_stmt s (pp_abstract_state_opt ~debug:true) result;
   result
 
@@ -247,10 +247,10 @@ let analyse_function (kf:kernel_function) =
 let doFunction (kf:kernel_function) =
   let final_state = analyse_function kf in
   let level = if Kernel_function.is_main kf then 1 else 2 in
-  Options.feedback ~level "May-aliases at the end of function %a:@.%a@."
+  Options.feedback ~level "@[May-aliases at the end of function %a:@ @[%a@]"
     Kernel_function.pretty kf
     (pp_abstract_state_opt ~debug:false) final_state;
-  Options.debug ~level "May-alias graph at the end of function %a:@.%a@."
+  Options.debug ~level "May-alias graph at the end of function %a:@;<4>@[%a@]"
     Kernel_function.pretty kf
     (pp_abstract_state_opt ~debug:true) final_state;
   let result =
@@ -260,10 +260,9 @@ let doFunction (kf:kernel_function) =
     | _ ->
       begin
         let summary = Abstract_state.make_summary final_state kf in
-        let function_name = Kernel_function.get_name kf in
-        Options.debug ~level:2 "Summary of function %a:@.%a@."
+        Options.debug ~level:2 "Summary of function %a:@ @[%a@]"
           Kernel_function.pretty kf
-          (Abstract_state.pretty_summary ~debug:false ~function_name) summary;
+          (Abstract_state.pretty_summary ~debug:false) summary;
         Some summary
       end
   in
@@ -312,15 +311,16 @@ let compute () =
       | None -> Format.fprintf fmt "<Bot>"
       | Some a -> Abstract_state.pretty ~debug:(Options.DebugTable.get()) fmt a
     in
-    Format.fprintf fmt "Before statement %a :@.@[<hov 2> %a@]@." print_key k print_value v
+    Format.fprintf fmt "Before statement %a :@[<hov 2> %a@]" print_key k print_value v
   in
-  let print_function_table_elt fmt kf s :unit =
-    let function_name =
-      Kernel_function.get_name kf
-    in
+  let print_function_table_elt fmt kf s : unit =
+    let function_name = Kernel_function.get_name kf in
     match s with
-      None -> Options.debug "function %s -> None@." function_name
-    | Some s -> Abstract_state.pretty_summary ~debug:(Options.DebugTable.get()) ~function_name fmt s
+    | None -> Options.debug "function %s -> None" function_name
+    | Some s ->
+      Format.fprintf fmt "Summary of function %s:@;<5 2>@[%a@]@."
+        function_name
+        (Abstract_state.pretty_summary ~debug:(Options.DebugTable.get())) s
   in
   if Options.ShowStmtTable.get() then
     Stmt_table.iter (print_stmt_table_elt Format.std_formatter);
diff --git a/src/plugins/alias/simplified.ml b/src/plugins/alias/simplified.ml
index 1f112950961..4ee158e677e 100644
--- a/src/plugins/alias/simplified.ml
+++ b/src/plugins/alias/simplified.ml
@@ -184,7 +184,7 @@ struct
         Format.fprintf fmt " %a -> %a" f_key k f_val v
       )
       m;
-    Format.fprintf fmt " @]}@."
+    Format.fprintf fmt " @]}"
 
   let pretty f fmt m = print Simplified_lval.pretty f fmt m
 end
@@ -195,7 +195,7 @@ struct
 
   let print (f_elt: Format.formatter -> elt -> unit) fmt (m: t) =
     let is_first = ref true in
-    Format.fprintf fmt "{@[<hov 2>";
+    Format.fprintf fmt "{@[";
     iter (fun e ->
         if !is_first
         then
@@ -205,7 +205,7 @@ struct
         Format.fprintf fmt "%a" f_elt e
       )
       m;
-    Format.fprintf fmt "@]}@?"
+    Format.fprintf fmt "@]}"
 
   let pretty fmt s = print Simplified_lval.pretty fmt s
 
diff --git a/src/plugins/alias/tests/basic/oracle/addrof.res.oracle b/src/plugins/alias/tests/basic/oracle/addrof.res.oracle
index 1bd037d387d..8b2b579be28 100644
--- a/src/plugins/alias/tests/basic/oracle/addrof.res.oracle
+++ b/src/plugins/alias/tests/basic/oracle/addrof.res.oracle
@@ -1,25 +1,15 @@
 [kernel] Parsing addrof.c (with preprocessing)
 [alias] analysing function: main
 [alias] analysing instruction: a = & x;
-[alias] May-aliases at the end of instruction: a = & x;
-  {*a, x} are aliased
+[alias] May-aliases after instruction  a = & x;  are  {*a, x}
 [alias] analysing instruction: b = & y;
-[alias] May-aliases at the end of instruction: b = & y;
-  {*a, x} are aliased
-  {*b, y} are aliased
+[alias] May-aliases after instruction  b = & y;  are  {*a, x}  {*b, y}
 [alias] analysing instruction: y = & z;
-[alias] May-aliases at the end of instruction: y = & z;
-  {*a, x} are aliased
-  {*b, y} are aliased
-  {*(*b), *y, z} are aliased
+[alias] May-aliases after instruction  y = & z;  are
+  {*a, x}  {*b, y}  {*(*b), *y, z}
 [alias] analysing instruction: *y = x;
-[alias] May-aliases at the end of instruction: *y = x;
-  {*(*b), *a, *y, x} are aliased
-  {*b, a, y} are aliased
+[alias] May-aliases after instruction  *y = x;  are  {*(*b), *a, *y, x}  {*b, a, y}
 [alias] analysing instruction: __retres = 0;
-[alias] May-aliases at the end of instruction: __retres = 0;
-  {*b, a, y} are aliased
-  {*(*b), *a, *y, x, z} are aliased
-[alias] May-aliases at the end of function main:
-  {*b, a, y} are aliased
-  {*(*b), *a, *y, x, z} are aliased
+[alias] May-aliases after instruction  __retres = 0;  are
+  {*b, a, y}  {*(*b), *a, *y, x, z}
+[alias] May-aliases at the end of function main: {*b, a, y}  {*(*b), *a, *y, x, z}
diff --git a/src/plugins/alias/tests/basic/oracle/assignment1.res.oracle b/src/plugins/alias/tests/basic/oracle/assignment1.res.oracle
index 35feff272aa..b3522cdd4e0 100644
--- a/src/plugins/alias/tests/basic/oracle/assignment1.res.oracle
+++ b/src/plugins/alias/tests/basic/oracle/assignment1.res.oracle
@@ -2,31 +2,22 @@
 [alias] analysing function: main
 [alias] analysing instruction: int *a = (int *)0;
 [alias:unsafe-cast] assignment1.c:6: Warning: unsafe cast from int to int *
-[alias] May-aliases at the end of instruction: int *a = (int *)0;
-  <none>
+[alias] May-aliases after instruction  int *a = (int *)0;  are  <none>
 [alias] analysing instruction: int *b = (int *)0;
 [alias:unsafe-cast] assignment1.c:6: Warning: unsafe cast from int to int *
-[alias] May-aliases at the end of instruction: int *b = (int *)0;
-  <none>
+[alias] May-aliases after instruction  int *b = (int *)0;  are  <none>
 [alias] analysing instruction: int *c = (int *)0;
 [alias:unsafe-cast] assignment1.c:6: Warning: unsafe cast from int to int *
-[alias] May-aliases at the end of instruction: int *c = (int *)0;
-  <none>
+[alias] May-aliases after instruction  int *c = (int *)0;  are  <none>
 [alias] analysing instruction: int *d = (int *)0;
 [alias:unsafe-cast] assignment1.c:6: Warning: unsafe cast from int to int *
-[alias] May-aliases at the end of instruction: int *d = (int *)0;
-  <none>
+[alias] May-aliases after instruction  int *d = (int *)0;  are  <none>
 [alias] analysing instruction: a = b;
-[alias] May-aliases at the end of instruction: a = b;
-  {a, b} are aliased
+[alias] May-aliases after instruction  a = b;  are  {a, b}
 [alias] analysing instruction: b = c;
-[alias] May-aliases at the end of instruction: b = c;
-  {a, b, c} are aliased
+[alias] May-aliases after instruction  b = c;  are  {a, b, c}
 [alias] analysing instruction: a = d;
-[alias] May-aliases at the end of instruction: a = d;
-  {a, b, c, d} are aliased
+[alias] May-aliases after instruction  a = d;  are  {a, b, c, d}
 [alias] analysing instruction: __retres = 0;
-[alias] May-aliases at the end of instruction: __retres = 0;
-  {a, b, c, d} are aliased
-[alias] May-aliases at the end of function main:
-  {a, b, c, d} are aliased
+[alias] May-aliases after instruction  __retres = 0;  are  {a, b, c, d}
+[alias] May-aliases at the end of function main: {a, b, c, d}
diff --git a/src/plugins/alias/tests/basic/oracle/assignment2.res.oracle b/src/plugins/alias/tests/basic/oracle/assignment2.res.oracle
index 0752c920750..3b9e86290c5 100644
--- a/src/plugins/alias/tests/basic/oracle/assignment2.res.oracle
+++ b/src/plugins/alias/tests/basic/oracle/assignment2.res.oracle
@@ -2,35 +2,22 @@
 [alias] analysing function: main
 [alias] analysing instruction: int **a = (int **)0;
 [alias:unsafe-cast] assignment2.c:8: Warning: unsafe cast from int to int **
-[alias] May-aliases at the end of instruction: int **a = (int **)0;
-  <none>
+[alias] May-aliases after instruction  int **a = (int **)0;  are  <none>
 [alias] analysing instruction: int *b = (int *)0;
 [alias:unsafe-cast] assignment2.c:8: Warning: unsafe cast from int to int *
-[alias] May-aliases at the end of instruction: int *b = (int *)0;
-  <none>
+[alias] May-aliases after instruction  int *b = (int *)0;  are  <none>
 [alias] analysing instruction: int **c = (int **)0;
 [alias:unsafe-cast] assignment2.c:8: Warning: unsafe cast from int to int **
-[alias] May-aliases at the end of instruction: int **c = (int **)0;
-  <none>
+[alias] May-aliases after instruction  int **c = (int **)0;  are  <none>
 [alias] analysing instruction: int *d = (int *)0;
 [alias:unsafe-cast] assignment2.c:8: Warning: unsafe cast from int to int *
-[alias] May-aliases at the end of instruction: int *d = (int *)0;
-  <none>
+[alias] May-aliases after instruction  int *d = (int *)0;  are  <none>
 [alias] analysing instruction: *a = b;
-[alias] May-aliases at the end of instruction: *a = b;
-  {*a, b} are aliased
+[alias] May-aliases after instruction  *a = b;  are  {*a, b}
 [alias] analysing instruction: *c = d;
-[alias] May-aliases at the end of instruction: *c = d;
-  {*a, b} are aliased
-  {*c, d} are aliased
+[alias] May-aliases after instruction  *c = d;  are  {*a, b}  {*c, d}
 [alias] analysing instruction: a = c;
-[alias] May-aliases at the end of instruction: a = c;
-  {a, c} are aliased
-  {*a, *c, b, d} are aliased
+[alias] May-aliases after instruction  a = c;  are  {a, c}  {*a, *c, b, d}
 [alias] analysing instruction: __retres = 0;
-[alias] May-aliases at the end of instruction: __retres = 0;
-  {a, c} are aliased
-  {*a, *c, b, d} are aliased
-[alias] May-aliases at the end of function main:
-  {a, c} are aliased
-  {*a, *c, b, d} are aliased
+[alias] May-aliases after instruction  __retres = 0;  are  {a, c}  {*a, *c, b, d}
+[alias] May-aliases at the end of function main: {a, c}  {*a, *c, b, d}
diff --git a/src/plugins/alias/tests/basic/oracle/assignment3.res.oracle b/src/plugins/alias/tests/basic/oracle/assignment3.res.oracle
index 7c4c81fba2c..12ea8d48056 100644
--- a/src/plugins/alias/tests/basic/oracle/assignment3.res.oracle
+++ b/src/plugins/alias/tests/basic/oracle/assignment3.res.oracle
@@ -2,23 +2,16 @@
 [alias] analysing function: main
 [alias] analysing instruction: int *a = (int *)0;
 [alias:unsafe-cast] assignment3.c:6: Warning: unsafe cast from int to int *
-[alias] May-aliases at the end of instruction: int *a = (int *)0;
-  <none>
+[alias] May-aliases after instruction  int *a = (int *)0;  are  <none>
 [alias] analysing instruction: int b = 0;
-[alias] May-aliases at the end of instruction: int b = 0;
-  <none>
+[alias] May-aliases after instruction  int b = 0;  are  <none>
 [alias] analysing instruction: int *c = (int *)0;
 [alias:unsafe-cast] assignment3.c:6: Warning: unsafe cast from int to int *
-[alias] May-aliases at the end of instruction: int *c = (int *)0;
-  <none>
+[alias] May-aliases after instruction  int *c = (int *)0;  are  <none>
 [alias] analysing instruction: a = & b;
-[alias] May-aliases at the end of instruction: a = & b;
-  <none>
+[alias] May-aliases after instruction  a = & b;  are  <none>
 [alias] analysing instruction: c = & b;
-[alias] May-aliases at the end of instruction: c = & b;
-  {a, c} are aliased
+[alias] May-aliases after instruction  c = & b;  are  {a, c}
 [alias] analysing instruction: __retres = 0;
-[alias] May-aliases at the end of instruction: __retres = 0;
-  {a, c} are aliased
-[alias] May-aliases at the end of function main:
-  {a, c} are aliased
+[alias] May-aliases after instruction  __retres = 0;  are  {a, c}
+[alias] May-aliases at the end of function main: {a, c}
diff --git a/src/plugins/alias/tests/basic/oracle/assignment4.res.oracle b/src/plugins/alias/tests/basic/oracle/assignment4.res.oracle
index 511454fecf5..f85c245dc1c 100644
--- a/src/plugins/alias/tests/basic/oracle/assignment4.res.oracle
+++ b/src/plugins/alias/tests/basic/oracle/assignment4.res.oracle
@@ -2,35 +2,22 @@
 [alias] analysing function: main
 [alias] analysing instruction: int **a = (int **)0;
 [alias:unsafe-cast] assignment4.c:8: Warning: unsafe cast from int to int **
-[alias] May-aliases at the end of instruction: int **a = (int **)0;
-  <none>
+[alias] May-aliases after instruction  int **a = (int **)0;  are  <none>
 [alias] analysing instruction: int *b = (int *)0;
 [alias:unsafe-cast] assignment4.c:8: Warning: unsafe cast from int to int *
-[alias] May-aliases at the end of instruction: int *b = (int *)0;
-  <none>
+[alias] May-aliases after instruction  int *b = (int *)0;  are  <none>
 [alias] analysing instruction: int **c = (int **)0;
 [alias:unsafe-cast] assignment4.c:8: Warning: unsafe cast from int to int **
-[alias] May-aliases at the end of instruction: int **c = (int **)0;
-  <none>
+[alias] May-aliases after instruction  int **c = (int **)0;  are  <none>
 [alias] analysing instruction: int *d = (int *)0;
 [alias:unsafe-cast] assignment4.c:8: Warning: unsafe cast from int to int *
-[alias] May-aliases at the end of instruction: int *d = (int *)0;
-  <none>
+[alias] May-aliases after instruction  int *d = (int *)0;  are  <none>
 [alias] analysing instruction: *a = b;
-[alias] May-aliases at the end of instruction: *a = b;
-  {*a, b} are aliased
+[alias] May-aliases after instruction  *a = b;  are  {*a, b}
 [alias] analysing instruction: *c = d;
-[alias] May-aliases at the end of instruction: *c = d;
-  {*a, b} are aliased
-  {*c, d} are aliased
+[alias] May-aliases after instruction  *c = d;  are  {*a, b}  {*c, d}
 [alias] analysing instruction: b = d;
-[alias] May-aliases at the end of instruction: b = d;
-  {a, c} are aliased
-  {*a, *c, b, d} are aliased
+[alias] May-aliases after instruction  b = d;  are  {a, c}  {*a, *c, b, d}
 [alias] analysing instruction: __retres = 0;
-[alias] May-aliases at the end of instruction: __retres = 0;
-  {a, c} are aliased
-  {*a, *c, b, d} are aliased
-[alias] May-aliases at the end of function main:
-  {a, c} are aliased
-  {*a, *c, b, d} are aliased
+[alias] May-aliases after instruction  __retres = 0;  are  {a, c}  {*a, *c, b, d}
+[alias] May-aliases at the end of function main: {a, c}  {*a, *c, b, d}
diff --git a/src/plugins/alias/tests/basic/oracle/assignment5.res.oracle b/src/plugins/alias/tests/basic/oracle/assignment5.res.oracle
index 694d63e0307..d669aaccb4e 100644
--- a/src/plugins/alias/tests/basic/oracle/assignment5.res.oracle
+++ b/src/plugins/alias/tests/basic/oracle/assignment5.res.oracle
@@ -2,35 +2,22 @@
 [alias] analysing function: main
 [alias] analysing instruction: int ***a = (int ***)0;
 [alias:unsafe-cast] assignment5.c:7: Warning: unsafe cast from int to int ***
-[alias] May-aliases at the end of instruction: int ***a = (int ***)0;
-  <none>
+[alias] May-aliases after instruction  int ***a = (int ***)0;  are  <none>
 [alias] analysing instruction: int **b = (int **)0;
 [alias:unsafe-cast] assignment5.c:7: Warning: unsafe cast from int to int **
-[alias] May-aliases at the end of instruction: int **b = (int **)0;
-  <none>
+[alias] May-aliases after instruction  int **b = (int **)0;  are  <none>
 [alias] analysing instruction: int *c = (int *)0;
 [alias:unsafe-cast] assignment5.c:7: Warning: unsafe cast from int to int *
-[alias] May-aliases at the end of instruction: int *c = (int *)0;
-  <none>
+[alias] May-aliases after instruction  int *c = (int *)0;  are  <none>
 [alias] analysing instruction: int *d = (int *)0;
 [alias:unsafe-cast] assignment5.c:7: Warning: unsafe cast from int to int *
-[alias] May-aliases at the end of instruction: int *d = (int *)0;
-  <none>
+[alias] May-aliases after instruction  int *d = (int *)0;  are  <none>
 [alias] analysing instruction: *a = b;
-[alias] May-aliases at the end of instruction: *a = b;
-  {*a, b} are aliased
+[alias] May-aliases after instruction  *a = b;  are  {*a, b}
 [alias] analysing instruction: *b = c;
-[alias] May-aliases at the end of instruction: *b = c;
-  {*a, b} are aliased
-  {*(*a), *b, c} are aliased
+[alias] May-aliases after instruction  *b = c;  are  {*a, b}  {*(*a), *b, c}
 [alias] analysing instruction: d = *(*a);
-[alias] May-aliases at the end of instruction: d = *(*a);
-  {*a, b} are aliased
-  {*(*a), *b, c, d} are aliased
+[alias] May-aliases after instruction  d = *(*a);  are  {*a, b}  {*(*a), *b, c, d}
 [alias] analysing instruction: __retres = 0;
-[alias] May-aliases at the end of instruction: __retres = 0;
-  {*a, b} are aliased
-  {*(*a), *b, c, d} are aliased
-[alias] May-aliases at the end of function main:
-  {*a, b} are aliased
-  {*(*a), *b, c, d} are aliased
+[alias] May-aliases after instruction  __retres = 0;  are  {*a, b}  {*(*a), *b, c, d}
+[alias] May-aliases at the end of function main: {*a, b}  {*(*a), *b, c, d}
diff --git a/src/plugins/alias/tests/basic/oracle/cast1.res.oracle b/src/plugins/alias/tests/basic/oracle/cast1.res.oracle
index 66df1e6f0e9..0f17af6ac7e 100644
--- a/src/plugins/alias/tests/basic/oracle/cast1.res.oracle
+++ b/src/plugins/alias/tests/basic/oracle/cast1.res.oracle
@@ -2,33 +2,22 @@
 [alias] analysing function: main
 [alias] analysing instruction: int *a = (int *)0;
 [alias:unsafe-cast] cast1.c:8: Warning: unsafe cast from int to int *
-[alias] May-aliases at the end of instruction: int *a = (int *)0;
-  <none>
+[alias] May-aliases after instruction  int *a = (int *)0;  are  <none>
 [alias] analysing instruction: int *b = (int *)0;
 [alias:unsafe-cast] cast1.c:8: Warning: unsafe cast from int to int *
-[alias] May-aliases at the end of instruction: int *b = (int *)0;
-  <none>
+[alias] May-aliases after instruction  int *b = (int *)0;  are  <none>
 [alias] analysing instruction: float *c = (float *)0;
 [alias:unsafe-cast] cast1.c:9: Warning: unsafe cast from int to float *
-[alias] May-aliases at the end of instruction: float *c = (float *)0;
-  <none>
+[alias] May-aliases after instruction  float *c = (float *)0;  are  <none>
 [alias] analysing instruction: float *d = (float *)0;
 [alias:unsafe-cast] cast1.c:9: Warning: unsafe cast from int to float *
-[alias] May-aliases at the end of instruction: float *d = (float *)0;
-  <none>
+[alias] May-aliases after instruction  float *d = (float *)0;  are  <none>
 [alias] analysing instruction: a = (int *)c;
 [alias:unsafe-cast] cast1.c:10: Warning: unsafe cast from float * to int *
-[alias] May-aliases at the end of instruction: a = (int *)c;
-  {a, c} are aliased
+[alias] May-aliases after instruction  a = (int *)c;  are  {a, c}
 [alias] analysing instruction: d = (float *)b;
 [alias:unsafe-cast] cast1.c:11: Warning: unsafe cast from int * to float *
-[alias] May-aliases at the end of instruction: d = (float *)b;
-  {a, c} are aliased
-  {b, d} are aliased
+[alias] May-aliases after instruction  d = (float *)b;  are  {a, c}  {b, d}
 [alias] analysing instruction: __retres = 0;
-[alias] May-aliases at the end of instruction: __retres = 0;
-  {a, c} are aliased
-  {b, d} are aliased
-[alias] May-aliases at the end of function main:
-  {a, c} are aliased
-  {b, d} are aliased
+[alias] May-aliases after instruction  __retres = 0;  are  {a, c}  {b, d}
+[alias] May-aliases at the end of function main: {a, c}  {b, d}
diff --git a/src/plugins/alias/tests/basic/oracle/conditional1.res.oracle b/src/plugins/alias/tests/basic/oracle/conditional1.res.oracle
index 9b38a767a32..bc8f602898d 100644
--- a/src/plugins/alias/tests/basic/oracle/conditional1.res.oracle
+++ b/src/plugins/alias/tests/basic/oracle/conditional1.res.oracle
@@ -2,27 +2,19 @@
 [alias] analysing function: main
 [alias] analysing instruction: int *a = (int *)0;
 [alias:unsafe-cast] conditional1.c:6: Warning: unsafe cast from int to int *
-[alias] May-aliases at the end of instruction: int *a = (int *)0;
-  <none>
+[alias] May-aliases after instruction  int *a = (int *)0;  are  <none>
 [alias] analysing instruction: int *b = (int *)0;
 [alias:unsafe-cast] conditional1.c:6: Warning: unsafe cast from int to int *
-[alias] May-aliases at the end of instruction: int *b = (int *)0;
-  <none>
+[alias] May-aliases after instruction  int *b = (int *)0;  are  <none>
 [alias] analysing instruction: int *c = (int *)0;
 [alias:unsafe-cast] conditional1.c:6: Warning: unsafe cast from int to int *
-[alias] May-aliases at the end of instruction: int *c = (int *)0;
-  <none>
+[alias] May-aliases after instruction  int *c = (int *)0;  are  <none>
 [alias] analysing instruction: a = b;
-[alias] May-aliases at the end of instruction: a = b;
-  {a, b} are aliased
+[alias] May-aliases after instruction  a = b;  are  {a, b}
 [alias] analysing instruction: a = c;
-[alias] May-aliases at the end of instruction: a = c;
-  {a, c} are aliased
+[alias] May-aliases after instruction  a = c;  are  {a, c}
 [alias] analysing instruction: *a = 4;
-[alias] May-aliases at the end of instruction: *a = 4;
-  {a, b, c} are aliased
+[alias] May-aliases after instruction  *a = 4;  are  {a, b, c}
 [alias] analysing instruction: __retres = 0;
-[alias] May-aliases at the end of instruction: __retres = 0;
-  {a, b, c} are aliased
-[alias] May-aliases at the end of function main:
-  {a, b, c} are aliased
+[alias] May-aliases after instruction  __retres = 0;  are  {a, b, c}
+[alias] May-aliases at the end of function main: {a, b, c}
diff --git a/src/plugins/alias/tests/basic/oracle/conditional2.res.oracle b/src/plugins/alias/tests/basic/oracle/conditional2.res.oracle
index 9d42e210d8c..6088f9fb04d 100644
--- a/src/plugins/alias/tests/basic/oracle/conditional2.res.oracle
+++ b/src/plugins/alias/tests/basic/oracle/conditional2.res.oracle
@@ -1,32 +1,19 @@
 [kernel] Parsing conditional2.c (with preprocessing)
 [alias] analysing function: main
 [alias] analysing instruction: b = & c;
-[alias] May-aliases at the end of instruction: b = & c;
-  {*b, c} are aliased
+[alias] May-aliases after instruction  b = & c;  are  {*b, c}
 [alias] analysing instruction: c = & d;
-[alias] May-aliases at the end of instruction: c = & d;
-  {*b, c} are aliased
-  {*(*b), *c, d} are aliased
+[alias] May-aliases after instruction  c = & d;  are  {*b, c}  {*(*b), *c, d}
 [alias] analysing instruction: d = & e;
-[alias] May-aliases at the end of instruction: d = & e;
-  {*b, c} are aliased
-  {*(*b), *c, d} are aliased
+[alias] May-aliases after instruction  d = & e;  are  {*b, c}  {*(*b), *c, d}
 [alias] analysing instruction: a = b;
-[alias] May-aliases at the end of instruction: a = b;
-  {*a, *b, c} are aliased
-  {*(*a), *(*b), *c, d} are aliased
-  {a, b} are aliased
+[alias] May-aliases after instruction  a = b;  are
+  {*a, *b, c}  {*(*a), *(*b), *c, d}  {a, b}
 [alias] analysing instruction: a = & c;
-[alias] May-aliases at the end of instruction: a = & c;
-  {*a, *b, c} are aliased
-  {*(*a), *(*b), *c, d} are aliased
-  {a, b} are aliased
+[alias] May-aliases after instruction  a = & c;  are
+  {*a, *b, c}  {*(*a), *(*b), *c, d}  {a, b}
 [alias] analysing instruction: __retres = 0;
-[alias] May-aliases at the end of instruction: __retres = 0;
-  {*a, *b, c} are aliased
-  {*(*a), *(*b), *c, d} are aliased
-  {a, b} are aliased
+[alias] May-aliases after instruction  __retres = 0;  are
+  {*a, *b, c}  {*(*a), *(*b), *c, d}  {a, b}
 [alias] May-aliases at the end of function main:
-  {*a, *b, c} are aliased
-  {*(*a), *(*b), *c, d} are aliased
-  {a, b} are aliased
+  {*a, *b, c}  {*(*a), *(*b), *c, d}  {a, b}
diff --git a/src/plugins/alias/tests/basic/oracle/conditional3.res.oracle b/src/plugins/alias/tests/basic/oracle/conditional3.res.oracle
index ae89a264580..19088629ddb 100644
--- a/src/plugins/alias/tests/basic/oracle/conditional3.res.oracle
+++ b/src/plugins/alias/tests/basic/oracle/conditional3.res.oracle
@@ -1,55 +1,35 @@
 [kernel] Parsing conditional3.c (with preprocessing)
 [alias] analysing function: main
 [alias] analysing instruction: a = b;
-[alias] May-aliases at the end of instruction: a = b;
-  {a, b} are aliased
+[alias] May-aliases after instruction  a = b;  are  {a, b}
 [alias] analysing instruction: b = & i;
-[alias] May-aliases at the end of instruction: b = & i;
-  {a, b} are aliased
-  {*a, *b, i} are aliased
+[alias] May-aliases after instruction  b = & i;  are  {a, b}  {*a, *b, i}
 [alias] analysing instruction: i = & x;
-[alias] May-aliases at the end of instruction: i = & x;
-  {a, b} are aliased
-  {*a, *b, i} are aliased
-  {*(*a), *(*b), *i, x} are aliased
+[alias] May-aliases after instruction  i = & x;  are
+  {a, b}  {*a, *b, i}  {*(*a), *(*b), *i, x}
 [alias] analysing instruction: x = & t;
-[alias] May-aliases at the end of instruction: x = & t;
-  {a, b} are aliased
-  {*a, *b, i} are aliased
-  {*(*a), *(*b), *i, x} are aliased
-  {*(*(*a)), *(*(*b)), *(*i), *x, t} are aliased
+[alias] May-aliases after instruction  x = & t;  are
+  {a, b}  {*a, *b, i}  {*(*a), *(*b), *i, x}
+  {*(*(*a)), *(*(*b)), *(*i), *x, t}
 [alias] analysing instruction: a = c;
-[alias] May-aliases at the end of instruction: a = c;
-  {a, c} are aliased
+[alias] May-aliases after instruction  a = c;  are  {a, c}
 [alias] analysing instruction: c = & j;
-[alias] May-aliases at the end of instruction: c = & j;
-  {a, c} are aliased
-  {*a, *c, j} are aliased
+[alias] May-aliases after instruction  c = & j;  are  {a, c}  {*a, *c, j}
 [alias] analysing instruction: j = & y;
-[alias] May-aliases at the end of instruction: j = & y;
-  {a, c} are aliased
-  {*a, *c, j} are aliased
-  {*(*a), *(*c), *j, y} are aliased
+[alias] May-aliases after instruction  j = & y;  are
+  {a, c}  {*a, *c, j}  {*(*a), *(*c), *j, y}
 [alias] analysing instruction: y = & u;
-[alias] May-aliases at the end of instruction: y = & u;
-  {a, c} are aliased
-  {*a, *c, j} are aliased
-  {*(*a), *(*c), *j, y} are aliased
-  {*(*(*a)), *(*(*c)), *(*j), *y, u} are aliased
+[alias] May-aliases after instruction  y = & u;  are
+  {a, c}  {*a, *c, j}  {*(*a), *(*c), *j, y}
+  {*(*(*a)), *(*(*c)), *(*j), *y, u}
 [alias] analysing instruction: p = 0;
-[alias] May-aliases at the end of instruction: p = 0;
-  {a, b, c} are aliased
-  {*a, *b, *c, i, j} are aliased
-  {*(*a), *(*b), *(*c), *i, *j, x, y} are aliased
-  {*(*(*a)), *(*(*b)), *(*(*c)), *(*i), *(*j), *x, *y, t, u} are aliased
+[alias] May-aliases after instruction  p = 0;  are
+  {a, b, c}  {*a, *b, *c, i, j}  {*(*a), *(*b), *(*c), *i, *j, x, y}
+  {*(*(*a)), *(*(*b)), *(*(*c)), *(*i), *(*j), *x, *y, t, u}
 [alias] analysing instruction: __retres = 0;
-[alias] May-aliases at the end of instruction: __retres = 0;
-  {a, b, c} are aliased
-  {*a, *b, *c, i, j} are aliased
-  {*(*a), *(*b), *(*c), *i, *j, x, y} are aliased
-  {*(*(*a)), *(*(*b)), *(*(*c)), *(*i), *(*j), *x, *y, t, u} are aliased
+[alias] May-aliases after instruction  __retres = 0;  are
+  {a, b, c}  {*a, *b, *c, i, j}  {*(*a), *(*b), *(*c), *i, *j, x, y}
+  {*(*(*a)), *(*(*b)), *(*(*c)), *(*i), *(*j), *x, *y, t, u}
 [alias] May-aliases at the end of function main:
-  {a, b, c} are aliased
-  {*a, *b, *c, i, j} are aliased
-  {*(*a), *(*b), *(*c), *i, *j, x, y} are aliased
-  {*(*(*a)), *(*(*b)), *(*(*c)), *(*i), *(*j), *x, *y, t, u} are aliased
+  {a, b, c}  {*a, *b, *c, i, j}  {*(*a), *(*b), *(*c), *i, *j, x, y}
+  {*(*(*a)), *(*(*b)), *(*(*c)), *(*i), *(*j), *x, *y, t, u}
diff --git a/src/plugins/alias/tests/basic/oracle/function1.res.oracle b/src/plugins/alias/tests/basic/oracle/function1.res.oracle
index 0158b97495e..dc6162c6bfe 100644
--- a/src/plugins/alias/tests/basic/oracle/function1.res.oracle
+++ b/src/plugins/alias/tests/basic/oracle/function1.res.oracle
@@ -2,53 +2,35 @@
 [alias] analysing function: main
 [alias] analysing instruction: int *a = (int *)0;
 [alias:unsafe-cast] function1.c:16: Warning: unsafe cast from int to int *
-[alias] May-aliases at the end of instruction: int *a = (int *)0;
-  <none>
+[alias] May-aliases after instruction  int *a = (int *)0;  are  <none>
 [alias] analysing instruction: int *b = (int *)0;
 [alias:unsafe-cast] function1.c:16: Warning: unsafe cast from int to int *
-[alias] May-aliases at the end of instruction: int *b = (int *)0;
-  <none>
+[alias] May-aliases after instruction  int *b = (int *)0;  are  <none>
 [alias] analysing instruction: int *c = (int *)0;
 [alias:unsafe-cast] function1.c:16: Warning: unsafe cast from int to int *
-[alias] May-aliases at the end of instruction: int *c = (int *)0;
-  <none>
+[alias] May-aliases after instruction  int *c = (int *)0;  are  <none>
 [alias] analysing instruction: int *d = (int *)0;
 [alias:unsafe-cast] function1.c:16: Warning: unsafe cast from int to int *
-[alias] May-aliases at the end of instruction: int *d = (int *)0;
-  <none>
+[alias] May-aliases after instruction  int *d = (int *)0;  are  <none>
 [alias] analysing instruction: swap(a,b);
 [alias] analysing function: swap
 [alias] analysing instruction: int *z = (int *)0;
 [alias:unsafe-cast] function1.c:7: Warning: unsafe cast from int to int *
-[alias] May-aliases at the end of instruction: int *z = (int *)0;
-  <none>
+[alias] May-aliases after instruction  int *z = (int *)0;  are  <none>
 [alias] analysing instruction: z = x;
-[alias] May-aliases at the end of instruction: z = x;
-  {x, z} are aliased
+[alias] May-aliases after instruction  z = x;  are  {x, z}
 [alias] analysing instruction: x = y;
-[alias] May-aliases at the end of instruction: x = y;
-  {x, y, z} are aliased
+[alias] May-aliases after instruction  x = y;  are  {x, y, z}
 [alias] analysing instruction: y = z;
-[alias] May-aliases at the end of instruction: y = z;
-  {x, y, z} are aliased
-[alias] May-aliases at the end of function swap:
-  {x, y, z} are aliased
-[alias] May-aliases at the end of instruction: swap(a,b);
-  {a, b} are aliased
+[alias] May-aliases after instruction  y = z;  are  {x, y, z}
+[alias] May-aliases at the end of function swap: {x, y, z}
+[alias] May-aliases after instruction  swap(a,b);  are  {a, b}
 [alias] analysing instruction: swap(c,d);
-[alias] May-aliases at the end of instruction: swap(c,d);
-  {a, b} are aliased
-  {c, d} are aliased
+[alias] May-aliases after instruction  swap(c,d);  are  {a, b}  {c, d}
 [alias] analysing instruction: __retres = 0;
-[alias] May-aliases at the end of instruction: __retres = 0;
-  {a, b} are aliased
-  {c, d} are aliased
-[alias] May-aliases at the end of function main:
-  {a, b} are aliased
-  {c, d} are aliased
+[alias] May-aliases after instruction  __retres = 0;  are  {a, b}  {c, d}
+[alias] May-aliases at the end of function main: {a, b}  {c, d}
 [alias] analysing function: swap
 [alias] analysing instruction: int *z = (int *)0;
-[alias] May-aliases at the end of instruction: int *z = (int *)0;
-  <none>
-[alias] May-aliases at the end of function swap:
-  {x, y, z} are aliased
+[alias] May-aliases after instruction  int *z = (int *)0;  are  <none>
+[alias] May-aliases at the end of function swap: {x, y, z}
diff --git a/src/plugins/alias/tests/basic/oracle/function2.res.oracle b/src/plugins/alias/tests/basic/oracle/function2.res.oracle
index 48b64d74e02..1e2c3d8e7fc 100644
--- a/src/plugins/alias/tests/basic/oracle/function2.res.oracle
+++ b/src/plugins/alias/tests/basic/oracle/function2.res.oracle
@@ -1,205 +1,139 @@
 [kernel] Parsing function2.c (with preprocessing)
 [alias] analysing function: _Exit
-[alias] May-aliases at the end of function _Exit:
-  <Bot>
+[alias] May-aliases at the end of function _Exit: ⊥
 [alias] analysing function: abort
-[alias] May-aliases at the end of function abort:
-  <Bot>
+[alias] May-aliases at the end of function abort: ⊥
 [alias] analysing function: abs
-[alias] May-aliases at the end of function abs:
-  <Bot>
+[alias] May-aliases at the end of function abs: ⊥
 [alias] analysing function: at_quick_exit
-[alias] May-aliases at the end of function at_quick_exit:
-  <Bot>
+[alias] May-aliases at the end of function at_quick_exit: ⊥
 [alias] analysing function: atexit
-[alias] May-aliases at the end of function atexit:
-  <Bot>
+[alias] May-aliases at the end of function atexit: ⊥
 [alias] analysing function: atof
-[alias] May-aliases at the end of function atof:
-  <Bot>
+[alias] May-aliases at the end of function atof: ⊥
 [alias] analysing function: atoi
-[alias] May-aliases at the end of function atoi:
-  <Bot>
+[alias] May-aliases at the end of function atoi: ⊥
 [alias] analysing function: atol
-[alias] May-aliases at the end of function atol:
-  <Bot>
+[alias] May-aliases at the end of function atol: ⊥
 [alias] analysing function: atoll
-[alias] May-aliases at the end of function atoll:
-  <Bot>
+[alias] May-aliases at the end of function atoll: ⊥
 [alias] analysing function: bsearch
-[alias] May-aliases at the end of function bsearch:
-  <Bot>
+[alias] May-aliases at the end of function bsearch: ⊥
 [alias] analysing function: calloc
-[alias] May-aliases at the end of function calloc:
-  <Bot>
+[alias] May-aliases at the end of function calloc: ⊥
 [alias] analysing function: div
-[alias] May-aliases at the end of function div:
-  <Bot>
+[alias] May-aliases at the end of function div: ⊥
 [alias] analysing function: drand48
-[alias] May-aliases at the end of function drand48:
-  <Bot>
+[alias] May-aliases at the end of function drand48: ⊥
 [alias] analysing function: erand48
-[alias] May-aliases at the end of function erand48:
-  <Bot>
+[alias] May-aliases at the end of function erand48: ⊥
 [alias] analysing function: exit
-[alias] May-aliases at the end of function exit:
-  <Bot>
+[alias] May-aliases at the end of function exit: ⊥
 [alias] analysing function: free
-[alias] May-aliases at the end of function free:
-  <Bot>
+[alias] May-aliases at the end of function free: ⊥
 [alias] analysing function: getenv
-[alias] May-aliases at the end of function getenv:
-  <Bot>
+[alias] May-aliases at the end of function getenv: ⊥
 [alias] analysing function: jrand48
-[alias] May-aliases at the end of function jrand48:
-  <Bot>
+[alias] May-aliases at the end of function jrand48: ⊥
 [alias] analysing function: labs
-[alias] May-aliases at the end of function labs:
-  <Bot>
+[alias] May-aliases at the end of function labs: ⊥
 [alias] analysing function: lcong48
-[alias] May-aliases at the end of function lcong48:
-  <Bot>
+[alias] May-aliases at the end of function lcong48: ⊥
 [alias] analysing function: ldiv
-[alias] May-aliases at the end of function ldiv:
-  <Bot>
+[alias] May-aliases at the end of function ldiv: ⊥
 [alias] analysing function: llabs
-[alias] May-aliases at the end of function llabs:
-  <Bot>
+[alias] May-aliases at the end of function llabs: ⊥
 [alias] analysing function: lldiv
-[alias] May-aliases at the end of function lldiv:
-  <Bot>
+[alias] May-aliases at the end of function lldiv: ⊥
 [alias] analysing function: lrand48
-[alias] May-aliases at the end of function lrand48:
-  <Bot>
+[alias] May-aliases at the end of function lrand48: ⊥
 [alias] analysing function: main
 [alias] analysing instruction: int *a = (int *)0;
 [alias:unsafe-cast] function2.c:14: Warning: unsafe cast from int to int *
-[alias] May-aliases at the end of instruction: int *a = (int *)0;
-  <none>
+[alias] May-aliases after instruction  int *a = (int *)0;  are  <none>
 [alias] analysing instruction: int *b = (int *)0;
 [alias:unsafe-cast] function2.c:14: Warning: unsafe cast from int to int *
-[alias] May-aliases at the end of instruction: int *b = (int *)0;
-  <none>
+[alias] May-aliases after instruction  int *b = (int *)0;  are  <none>
 [alias] analysing instruction: a = my_malloc(2);
 [alias] analysing function: my_malloc
 [alias] analysing instruction: int *res = (int *)0;
 [alias:unsafe-cast] function2.c:7: Warning: unsafe cast from int to int *
-[alias] May-aliases at the end of instruction: int *res = (int *)0;
-  <none>
+[alias] May-aliases after instruction  int *res = (int *)0;  are  <none>
 [alias] analysing instruction: res = (int *)malloc((size_t)size);
-[alias] May-aliases at the end of instruction: res = (int *)malloc((size_t)size);
-  <none>
-[alias] May-aliases at the end of function my_malloc:
-  <none>
-[alias] May-aliases at the end of instruction: a = my_malloc(2);
+[alias] May-aliases after instruction  res = (int *)malloc((size_t)size);  are
   <none>
+[alias] May-aliases at the end of function my_malloc: <none>
+[alias] May-aliases after instruction  a = my_malloc(2);  are  <none>
 [alias] analysing instruction: b = my_malloc(3);
-[alias] May-aliases at the end of instruction: b = my_malloc(3);
-  <none>
+[alias] May-aliases after instruction  b = my_malloc(3);  are  <none>
 [alias] analysing instruction: __retres = 0;
-[alias] May-aliases at the end of instruction: __retres = 0;
-  <none>
-[alias] May-aliases at the end of function main:
-  <none>
+[alias] May-aliases after instruction  __retres = 0;  are  <none>
+[alias] May-aliases at the end of function main: <none>
 [alias] analysing function: malloc
-[alias] May-aliases at the end of function malloc:
-  <Bot>
+[alias] May-aliases at the end of function malloc: ⊥
 [alias] analysing function: mblen
-[alias] May-aliases at the end of function mblen:
-  <Bot>
+[alias] May-aliases at the end of function mblen: ⊥
 [alias] analysing function: mbstowcs
-[alias] May-aliases at the end of function mbstowcs:
-  <Bot>
+[alias] May-aliases at the end of function mbstowcs: ⊥
 [alias] analysing function: mbtowc
-[alias] May-aliases at the end of function mbtowc:
-  <Bot>
+[alias] May-aliases at the end of function mbtowc: ⊥
 [alias] analysing function: mkstemp
-[alias] May-aliases at the end of function mkstemp:
-  <Bot>
+[alias] May-aliases at the end of function mkstemp: ⊥
 [alias] analysing function: mkstemps
-[alias] May-aliases at the end of function mkstemps:
-  <Bot>
+[alias] May-aliases at the end of function mkstemps: ⊥
 [alias] analysing function: mrand48
-[alias] May-aliases at the end of function mrand48:
-  <Bot>
+[alias] May-aliases at the end of function mrand48: ⊥
 [alias] analysing function: my_malloc
 [alias] analysing instruction: int *res = (int *)0;
-[alias] May-aliases at the end of instruction: int *res = (int *)0;
-  <none>
-[alias] May-aliases at the end of function my_malloc:
-  <none>
+[alias] May-aliases after instruction  int *res = (int *)0;  are  <none>
+[alias] May-aliases at the end of function my_malloc: <none>
 [alias] analysing function: nrand48
-[alias] May-aliases at the end of function nrand48:
-  <Bot>
+[alias] May-aliases at the end of function nrand48: ⊥
 [alias] analysing function: posix_memalign
-[alias] May-aliases at the end of function posix_memalign:
-  <Bot>
+[alias] May-aliases at the end of function posix_memalign: ⊥
 [alias] analysing function: putenv
-[alias] May-aliases at the end of function putenv:
-  <Bot>
+[alias] May-aliases at the end of function putenv: ⊥
 [alias] analysing function: qsort
-[alias] May-aliases at the end of function qsort:
-  <Bot>
+[alias] May-aliases at the end of function qsort: ⊥
 [alias] analysing function: quick_exit
-[alias] May-aliases at the end of function quick_exit:
-  <Bot>
+[alias] May-aliases at the end of function quick_exit: ⊥
 [alias] analysing function: rand
-[alias] May-aliases at the end of function rand:
-  <Bot>
+[alias] May-aliases at the end of function rand: ⊥
 [alias] analysing function: random
-[alias] May-aliases at the end of function random:
-  <Bot>
+[alias] May-aliases at the end of function random: ⊥
 [alias] analysing function: realloc
-[alias] May-aliases at the end of function realloc:
-  <Bot>
+[alias] May-aliases at the end of function realloc: ⊥
 [alias] analysing function: reallocarray
-[alias] May-aliases at the end of function reallocarray:
-  <Bot>
+[alias] May-aliases at the end of function reallocarray: ⊥
 [alias] analysing function: seed48
-[alias] May-aliases at the end of function seed48:
-  <Bot>
+[alias] May-aliases at the end of function seed48: ⊥
 [alias] analysing function: setenv
-[alias] May-aliases at the end of function setenv:
-  <Bot>
+[alias] May-aliases at the end of function setenv: ⊥
 [alias] analysing function: srand
-[alias] May-aliases at the end of function srand:
-  <Bot>
+[alias] May-aliases at the end of function srand: ⊥
 [alias] analysing function: srand48
-[alias] May-aliases at the end of function srand48:
-  <Bot>
+[alias] May-aliases at the end of function srand48: ⊥
 [alias] analysing function: srandom
-[alias] May-aliases at the end of function srandom:
-  <Bot>
+[alias] May-aliases at the end of function srandom: ⊥
 [alias] analysing function: strtod
-[alias] May-aliases at the end of function strtod:
-  <Bot>
+[alias] May-aliases at the end of function strtod: ⊥
 [alias] analysing function: strtof
-[alias] May-aliases at the end of function strtof:
-  <Bot>
+[alias] May-aliases at the end of function strtof: ⊥
 [alias] analysing function: strtol
-[alias] May-aliases at the end of function strtol:
-  <Bot>
+[alias] May-aliases at the end of function strtol: ⊥
 [alias] analysing function: strtold
-[alias] May-aliases at the end of function strtold:
-  <Bot>
+[alias] May-aliases at the end of function strtold: ⊥
 [alias] analysing function: strtoll
-[alias] May-aliases at the end of function strtoll:
-  <Bot>
+[alias] May-aliases at the end of function strtoll: ⊥
 [alias] analysing function: strtoul
-[alias] May-aliases at the end of function strtoul:
-  <Bot>
+[alias] May-aliases at the end of function strtoul: ⊥
 [alias] analysing function: strtoull
-[alias] May-aliases at the end of function strtoull:
-  <Bot>
+[alias] May-aliases at the end of function strtoull: ⊥
 [alias] analysing function: system
-[alias] May-aliases at the end of function system:
-  <Bot>
+[alias] May-aliases at the end of function system: ⊥
 [alias] analysing function: unsetenv
-[alias] May-aliases at the end of function unsetenv:
-  <Bot>
+[alias] May-aliases at the end of function unsetenv: ⊥
 [alias] analysing function: wcstombs
-[alias] May-aliases at the end of function wcstombs:
-  <Bot>
+[alias] May-aliases at the end of function wcstombs: ⊥
 [alias] analysing function: wctomb
-[alias] May-aliases at the end of function wctomb:
-  <Bot>
+[alias] May-aliases at the end of function wctomb: ⊥
diff --git a/src/plugins/alias/tests/basic/oracle/function3.res.oracle b/src/plugins/alias/tests/basic/oracle/function3.res.oracle
index d61cfa89c47..eba69e81d45 100644
--- a/src/plugins/alias/tests/basic/oracle/function3.res.oracle
+++ b/src/plugins/alias/tests/basic/oracle/function3.res.oracle
@@ -1,48 +1,32 @@
 [kernel] Parsing function3.c (with preprocessing)
 [alias] analysing function: f1
 [alias] analysing instruction: int *tmp = x;
-[alias] May-aliases at the end of instruction: int *tmp = x;
-  {x, tmp} are aliased
+[alias] May-aliases after instruction  int *tmp = x;  are  {x, tmp}
 [alias] analysing instruction: x = y;
-[alias] May-aliases at the end of instruction: x = y;
-  {x, y, tmp} are aliased
+[alias] May-aliases after instruction  x = y;  are  {x, y, tmp}
 [alias] analysing instruction: y = tmp;
-[alias] May-aliases at the end of instruction: y = tmp;
-  {x, y, tmp} are aliased
+[alias] May-aliases after instruction  y = tmp;  are  {x, y, tmp}
 [alias] analysing instruction: __retres = (void *)0;
 [alias:unsafe-cast] function3.c:14: Warning: unsafe cast from int to void *
-[alias] May-aliases at the end of instruction: __retres = (void *)0;
-  {x, y, tmp} are aliased
-[alias] May-aliases at the end of function f1:
-  {x, y, tmp} are aliased
+[alias] May-aliases after instruction  __retres = (void *)0;  are  {x, y, tmp}
+[alias] May-aliases at the end of function f1: {x, y, tmp}
 [alias] analysing function: main
 [alias] analysing instruction: int *a = (int *)0;
 [alias:unsafe-cast] function3.c:19: Warning: unsafe cast from int to int *
-[alias] May-aliases at the end of instruction: int *a = (int *)0;
-  <none>
+[alias] May-aliases after instruction  int *a = (int *)0;  are  <none>
 [alias] analysing instruction: int *b = (int *)0;
 [alias:unsafe-cast] function3.c:19: Warning: unsafe cast from int to int *
-[alias] May-aliases at the end of instruction: int *b = (int *)0;
-  <none>
+[alias] May-aliases after instruction  int *b = (int *)0;  are  <none>
 [alias] analysing instruction: int *c = (int *)0;
 [alias:unsafe-cast] function3.c:19: Warning: unsafe cast from int to int *
-[alias] May-aliases at the end of instruction: int *c = (int *)0;
-  <none>
+[alias] May-aliases after instruction  int *c = (int *)0;  are  <none>
 [alias] analysing instruction: int *d = (int *)0;
 [alias:unsafe-cast] function3.c:19: Warning: unsafe cast from int to int *
-[alias] May-aliases at the end of instruction: int *d = (int *)0;
-  <none>
+[alias] May-aliases after instruction  int *d = (int *)0;  are  <none>
 [alias] analysing instruction: f1(a,b);
-[alias] May-aliases at the end of instruction: f1(a,b);
-  {a, b} are aliased
+[alias] May-aliases after instruction  f1(a,b);  are  {a, b}
 [alias] analysing instruction: f1(c,d);
-[alias] May-aliases at the end of instruction: f1(c,d);
-  {a, b} are aliased
-  {c, d} are aliased
+[alias] May-aliases after instruction  f1(c,d);  are  {a, b}  {c, d}
 [alias] analysing instruction: __retres = 0;
-[alias] May-aliases at the end of instruction: __retres = 0;
-  {a, b} are aliased
-  {c, d} are aliased
-[alias] May-aliases at the end of function main:
-  {a, b} are aliased
-  {c, d} are aliased
+[alias] May-aliases after instruction  __retres = 0;  are  {a, b}  {c, d}
+[alias] May-aliases at the end of function main: {a, b}  {c, d}
diff --git a/src/plugins/alias/tests/basic/oracle/function4.res.oracle b/src/plugins/alias/tests/basic/oracle/function4.res.oracle
index ee692419b85..9cd4facfea6 100644
--- a/src/plugins/alias/tests/basic/oracle/function4.res.oracle
+++ b/src/plugins/alias/tests/basic/oracle/function4.res.oracle
@@ -1,27 +1,19 @@
 [kernel] Parsing function4.c (with preprocessing)
 [alias] analysing function: addr
-[alias] May-aliases at the end of function addr:
-  <none>
+[alias] May-aliases at the end of function addr: <none>
 [alias] analysing function: main
 [alias] analysing instruction: int *a = (int *)0;
 [alias:unsafe-cast] function4.c:11: Warning: unsafe cast from int to int *
-[alias] May-aliases at the end of instruction: int *a = (int *)0;
-  <none>
+[alias] May-aliases after instruction  int *a = (int *)0;  are  <none>
 [alias] analysing instruction: int *b = (int *)0;
 [alias:unsafe-cast] function4.c:11: Warning: unsafe cast from int to int *
-[alias] May-aliases at the end of instruction: int *b = (int *)0;
-  <none>
+[alias] May-aliases after instruction  int *b = (int *)0;  are  <none>
 [alias] analysing instruction: int c = 0;
-[alias] May-aliases at the end of instruction: int c = 0;
-  <none>
+[alias] May-aliases after instruction  int c = 0;  are  <none>
 [alias] analysing instruction: a = addr(& c);
-[alias] May-aliases at the end of instruction: a = addr(& c);
-  {a, &c} are aliased
+[alias] May-aliases after instruction  a = addr(& c);  are  {a, &c}
 [alias] analysing instruction: b = & c;
-[alias] May-aliases at the end of instruction: b = & c;
-  {a, b} are aliased
+[alias] May-aliases after instruction  b = & c;  are  {a, b}
 [alias] analysing instruction: __retres = 0;
-[alias] May-aliases at the end of instruction: __retres = 0;
-  {a, b} are aliased
-[alias] May-aliases at the end of function main:
-  {a, b} are aliased
+[alias] May-aliases after instruction  __retres = 0;  are  {a, b}
+[alias] May-aliases at the end of function main: {a, b}
diff --git a/src/plugins/alias/tests/basic/oracle/function5.res.oracle b/src/plugins/alias/tests/basic/oracle/function5.res.oracle
index c496bb34f2e..ed152049176 100644
--- a/src/plugins/alias/tests/basic/oracle/function5.res.oracle
+++ b/src/plugins/alias/tests/basic/oracle/function5.res.oracle
@@ -1,34 +1,24 @@
 [kernel] Parsing function5.c (with preprocessing)
 [alias] analysing function: choice
 [alias] analysing instruction: int c = 0;
-[alias] May-aliases at the end of instruction: int c = 0;
-  <none>
+[alias] May-aliases after instruction  int c = 0;  are  <none>
 [alias] analysing instruction: __retres = x;
-[alias] May-aliases at the end of instruction: __retres = x;
-  {x, __retres} are aliased
+[alias] May-aliases after instruction  __retres = x;  are  {x, __retres}
 [alias] analysing instruction: __retres = y;
-[alias] May-aliases at the end of instruction: __retres = y;
-  {y, __retres} are aliased
-[alias] May-aliases at the end of function choice:
-  {x, y, __retres} are aliased
+[alias] May-aliases after instruction  __retres = y;  are  {y, __retres}
+[alias] May-aliases at the end of function choice: {x, y, __retres}
 [alias] analysing function: main
 [alias] analysing instruction: int *a = (int *)0;
 [alias:unsafe-cast] function5.c:16: Warning: unsafe cast from int to int *
-[alias] May-aliases at the end of instruction: int *a = (int *)0;
-  <none>
+[alias] May-aliases after instruction  int *a = (int *)0;  are  <none>
 [alias] analysing instruction: int *b = (int *)0;
 [alias:unsafe-cast] function5.c:16: Warning: unsafe cast from int to int *
-[alias] May-aliases at the end of instruction: int *b = (int *)0;
-  <none>
+[alias] May-aliases after instruction  int *b = (int *)0;  are  <none>
 [alias] analysing instruction: int *c = (int *)0;
 [alias:unsafe-cast] function5.c:16: Warning: unsafe cast from int to int *
-[alias] May-aliases at the end of instruction: int *c = (int *)0;
-  <none>
+[alias] May-aliases after instruction  int *c = (int *)0;  are  <none>
 [alias] analysing instruction: c = choice(a,b);
-[alias] May-aliases at the end of instruction: c = choice(a,b);
-  {a, b, c} are aliased
+[alias] May-aliases after instruction  c = choice(a,b);  are  {a, b, c}
 [alias] analysing instruction: __retres = 0;
-[alias] May-aliases at the end of instruction: __retres = 0;
-  {a, b, c} are aliased
-[alias] May-aliases at the end of function main:
-  {a, b, c} are aliased
+[alias] May-aliases after instruction  __retres = 0;  are  {a, b, c}
+[alias] May-aliases at the end of function main: {a, b, c}
diff --git a/src/plugins/alias/tests/basic/oracle/globctr.res.oracle b/src/plugins/alias/tests/basic/oracle/globctr.res.oracle
index 17c4dd29081..289f531e104 100644
--- a/src/plugins/alias/tests/basic/oracle/globctr.res.oracle
+++ b/src/plugins/alias/tests/basic/oracle/globctr.res.oracle
@@ -1,30 +1,21 @@
 [kernel] Parsing globctr.c (with preprocessing)
 [alias] analysing function: f
 [alias] analysing instruction: int y = 0;
-[alias] May-aliases at the end of instruction: int y = 0;
-  <none>
+[alias] May-aliases after instruction  int y = 0;  are  <none>
 [alias] analysing instruction: *x = y;
-[alias] May-aliases at the end of instruction: *x = y;
-  <none>
-[alias] May-aliases at the end of function f:
-  <none>
+[alias] May-aliases after instruction  *x = y;  are  <none>
+[alias] May-aliases at the end of function f: <none>
 [alias] analysing function: main
 [alias] analysing instruction: int *a = (int *)0;
 [alias:unsafe-cast] globctr.c:8: Warning: unsafe cast from int to int *
-[alias] May-aliases at the end of instruction: int *a = (int *)0;
-  <none>
+[alias] May-aliases after instruction  int *a = (int *)0;  are  <none>
 [alias] analysing instruction: int *b = (int *)0;
 [alias:unsafe-cast] globctr.c:8: Warning: unsafe cast from int to int *
-[alias] May-aliases at the end of instruction: int *b = (int *)0;
-  <none>
+[alias] May-aliases after instruction  int *b = (int *)0;  are  <none>
 [alias] analysing instruction: f(a);
-[alias] May-aliases at the end of instruction: f(a);
-  <none>
+[alias] May-aliases after instruction  f(a);  are  <none>
 [alias] analysing instruction: f(b);
-[alias] May-aliases at the end of instruction: f(b);
-  <none>
+[alias] May-aliases after instruction  f(b);  are  <none>
 [alias] analysing instruction: __retres = 0;
-[alias] May-aliases at the end of instruction: __retres = 0;
-  <none>
-[alias] May-aliases at the end of function main:
-  <none>
+[alias] May-aliases after instruction  __retres = 0;  are  <none>
+[alias] May-aliases at the end of function main: <none>
diff --git a/src/plugins/alias/tests/basic/oracle/loop.res.oracle b/src/plugins/alias/tests/basic/oracle/loop.res.oracle
index 1d41d498ffd..9ef827f6daf 100644
--- a/src/plugins/alias/tests/basic/oracle/loop.res.oracle
+++ b/src/plugins/alias/tests/basic/oracle/loop.res.oracle
@@ -1,27 +1,19 @@
 [kernel] Parsing loop.c (with preprocessing)
 [alias] analysing function: main
 [alias] analysing instruction: int l[1] = {0};
-[alias] May-aliases at the end of instruction: int l[1] = {0};
-  <none>
+[alias] May-aliases after instruction  int l[1] = {0};  are  <none>
 [alias] analysing instruction: int *n_0 = & l[1];
-[alias] May-aliases at the end of instruction: int *n_0 = & l[1];
-  <none>
+[alias] May-aliases after instruction  int *n_0 = & l[1];  are  <none>
 [alias] analysing instruction: n_0 = & l[1] + 0;
-[alias] May-aliases at the end of instruction: n_0 = & l[1] + 0;
-  <none>
+[alias] May-aliases after instruction  n_0 = & l[1] + 0;  are  <none>
 [alias] analysing instruction: int w = 0;
-[alias] May-aliases at the end of instruction: int w = 0;
-  <none>
+[alias] May-aliases after instruction  int w = 0;  are  <none>
 [alias] analysing instruction: l[0] = *(& l[1] + 0);
-[alias] May-aliases at the end of instruction: l[0] = *(& l[1] + 0);
-  <none>
+[alias] May-aliases after instruction  l[0] = *(& l[1] + 0);  are  <none>
 [alias] analysing instruction: int l[1] = {0};
-[alias] May-aliases at the end of instruction: int l[1] = {0};
-  <none>
+[alias] May-aliases after instruction  int l[1] = {0};  are  <none>
 [alias] analysing instruction: int *n_0 = & l[1];
-[alias] May-aliases at the end of instruction: int *n_0 = & l[1];
-  <none>
+[alias] May-aliases after instruction  int *n_0 = & l[1];  are  <none>
 [alias:no-return] loop.c:4: Warning: 
   function main does not return; analysis may be unsound
-[alias] May-aliases at the end of function main:
-  <none>
+[alias] May-aliases at the end of function main: <none>
diff --git a/src/plugins/alias/tests/basic/oracle/steensgaard.res.oracle b/src/plugins/alias/tests/basic/oracle/steensgaard.res.oracle
index 62e77694dee..7b9c15f79cb 100644
--- a/src/plugins/alias/tests/basic/oracle/steensgaard.res.oracle
+++ b/src/plugins/alias/tests/basic/oracle/steensgaard.res.oracle
@@ -1,29 +1,17 @@
 [kernel] Parsing steensgaard.c (with preprocessing)
 [alias] analysing function: main
 [alias] analysing instruction: a = & x;
-[alias] May-aliases at the end of instruction: a = & x;
-  <none>
+[alias] May-aliases after instruction  a = & x;  are  <none>
 [alias] analysing instruction: b = & y;
-[alias] May-aliases at the end of instruction: b = & y;
-  {*b, y} are aliased
+[alias] May-aliases after instruction  b = & y;  are  {*b, y}
 [alias] analysing instruction: y = & z;
-[alias] May-aliases at the end of instruction: y = & z;
-  {*b, y} are aliased
+[alias] May-aliases after instruction  y = & z;  are  {*b, y}
 [alias] analysing instruction: y = & x;
-[alias] May-aliases at the end of instruction: y = & x;
-  {*b, a, y} are aliased
+[alias] May-aliases after instruction  y = & x;  are  {*b, a, y}
 [alias] analysing instruction: c = & y;
-[alias] May-aliases at the end of instruction: c = & y;
-  {*b, *c, a, y} are aliased
-  {b, c} are aliased
+[alias] May-aliases after instruction  c = & y;  are  {*b, *c, a, y}  {b, c}
 [alias] analysing instruction: *y = 4;
-[alias] May-aliases at the end of instruction: *y = 4;
-  {*b, *c, a, y} are aliased
-  {b, c} are aliased
+[alias] May-aliases after instruction  *y = 4;  are  {*b, *c, a, y}  {b, c}
 [alias] analysing instruction: __retres = 0;
-[alias] May-aliases at the end of instruction: __retres = 0;
-  {*b, *c, a, y} are aliased
-  {b, c} are aliased
-[alias] May-aliases at the end of function main:
-  {*b, *c, a, y} are aliased
-  {b, c} are aliased
+[alias] May-aliases after instruction  __retres = 0;  are  {*b, *c, a, y}  {b, c}
+[alias] May-aliases at the end of function main: {*b, *c, a, y}  {b, c}
diff --git a/src/plugins/alias/tests/basic/oracle/switch1.res.oracle b/src/plugins/alias/tests/basic/oracle/switch1.res.oracle
index c1202c16d1d..e686d1150e5 100644
--- a/src/plugins/alias/tests/basic/oracle/switch1.res.oracle
+++ b/src/plugins/alias/tests/basic/oracle/switch1.res.oracle
@@ -2,31 +2,22 @@
 [alias] analysing function: main
 [alias] analysing instruction: int *a = (int *)0;
 [alias:unsafe-cast] switch1.c:6: Warning: unsafe cast from int to int *
-[alias] May-aliases at the end of instruction: int *a = (int *)0;
-  <none>
+[alias] May-aliases after instruction  int *a = (int *)0;  are  <none>
 [alias] analysing instruction: int *b = (int *)0;
 [alias:unsafe-cast] switch1.c:6: Warning: unsafe cast from int to int *
-[alias] May-aliases at the end of instruction: int *b = (int *)0;
-  <none>
+[alias] May-aliases after instruction  int *b = (int *)0;  are  <none>
 [alias] analysing instruction: int *c = (int *)0;
 [alias:unsafe-cast] switch1.c:6: Warning: unsafe cast from int to int *
-[alias] May-aliases at the end of instruction: int *c = (int *)0;
-  <none>
+[alias] May-aliases after instruction  int *c = (int *)0;  are  <none>
 [alias] analysing instruction: int *d = (int *)0;
 [alias:unsafe-cast] switch1.c:6: Warning: unsafe cast from int to int *
-[alias] May-aliases at the end of instruction: int *d = (int *)0;
-  <none>
+[alias] May-aliases after instruction  int *d = (int *)0;  are  <none>
 [alias] analysing instruction: int e = 0;
-[alias] May-aliases at the end of instruction: int e = 0;
-  <none>
+[alias] May-aliases after instruction  int e = 0;  are  <none>
 [alias] analysing instruction: case 1: a = d;
-[alias] May-aliases at the end of instruction: case 1: a = d;
-  {a, d} are aliased
+[alias] May-aliases after instruction  case 1: a = d;  are  {a, d}
 [alias] analysing instruction: case 2: b = d;
-[alias] May-aliases at the end of instruction: case 2: b = d;
-  {b, d} are aliased
+[alias] May-aliases after instruction  case 2: b = d;  are  {b, d}
 [alias] analysing instruction: __retres = 0;
-[alias] May-aliases at the end of instruction: __retres = 0;
-  {a, b, d} are aliased
-[alias] May-aliases at the end of function main:
-  {a, b, d} are aliased
+[alias] May-aliases after instruction  __retres = 0;  are  {a, b, d}
+[alias] May-aliases at the end of function main: {a, b, d}
diff --git a/src/plugins/alias/tests/basic/oracle/switch2.res.oracle b/src/plugins/alias/tests/basic/oracle/switch2.res.oracle
index 0a1a041476a..de2c4211a54 100644
--- a/src/plugins/alias/tests/basic/oracle/switch2.res.oracle
+++ b/src/plugins/alias/tests/basic/oracle/switch2.res.oracle
@@ -2,34 +2,24 @@
 [alias] analysing function: main
 [alias] analysing instruction: int *a = (int *)0;
 [alias:unsafe-cast] switch2.c:6: Warning: unsafe cast from int to int *
-[alias] May-aliases at the end of instruction: int *a = (int *)0;
-  <none>
+[alias] May-aliases after instruction  int *a = (int *)0;  are  <none>
 [alias] analysing instruction: int *b = (int *)0;
 [alias:unsafe-cast] switch2.c:6: Warning: unsafe cast from int to int *
-[alias] May-aliases at the end of instruction: int *b = (int *)0;
-  <none>
+[alias] May-aliases after instruction  int *b = (int *)0;  are  <none>
 [alias] analysing instruction: int *c = (int *)0;
 [alias:unsafe-cast] switch2.c:6: Warning: unsafe cast from int to int *
-[alias] May-aliases at the end of instruction: int *c = (int *)0;
-  <none>
+[alias] May-aliases after instruction  int *c = (int *)0;  are  <none>
 [alias] analysing instruction: int *d = (int *)0;
 [alias:unsafe-cast] switch2.c:6: Warning: unsafe cast from int to int *
-[alias] May-aliases at the end of instruction: int *d = (int *)0;
-  <none>
+[alias] May-aliases after instruction  int *d = (int *)0;  are  <none>
 [alias] analysing instruction: int e = 0;
-[alias] May-aliases at the end of instruction: int e = 0;
-  <none>
+[alias] May-aliases after instruction  int e = 0;  are  <none>
 [alias] analysing instruction: case 1: a = d;
-[alias] May-aliases at the end of instruction: case 1: a = d;
-  {a, d} are aliased
+[alias] May-aliases after instruction  case 1: a = d;  are  {a, d}
 [alias] analysing instruction: case 2: b = d;
-[alias] May-aliases at the end of instruction: case 2: b = d;
-  {b, d} are aliased
+[alias] May-aliases after instruction  case 2: b = d;  are  {b, d}
 [alias] analysing instruction: default: c = d;
-[alias] May-aliases at the end of instruction: default: c = d;
-  {c, d} are aliased
+[alias] May-aliases after instruction  default: c = d;  are  {c, d}
 [alias] analysing instruction: __retres = 0;
-[alias] May-aliases at the end of instruction: __retres = 0;
-  {a, b, c, d} are aliased
-[alias] May-aliases at the end of function main:
-  {a, b, c, d} are aliased
+[alias] May-aliases after instruction  __retres = 0;  are  {a, b, c, d}
+[alias] May-aliases at the end of function main: {a, b, c, d}
diff --git a/src/plugins/alias/tests/basic/oracle/while_for1.res.oracle b/src/plugins/alias/tests/basic/oracle/while_for1.res.oracle
index 7115798d025..9171437b55a 100644
--- a/src/plugins/alias/tests/basic/oracle/while_for1.res.oracle
+++ b/src/plugins/alias/tests/basic/oracle/while_for1.res.oracle
@@ -1,191 +1,128 @@
 [kernel] Parsing while_for1.c (with preprocessing)
 [alias] analysing function: _Exit
-[alias] May-aliases at the end of function _Exit:
-  <Bot>
+[alias] May-aliases at the end of function _Exit: ⊥
 [alias] analysing function: abort
-[alias] May-aliases at the end of function abort:
-  <Bot>
+[alias] May-aliases at the end of function abort: ⊥
 [alias] analysing function: abs
-[alias] May-aliases at the end of function abs:
-  <Bot>
+[alias] May-aliases at the end of function abs: ⊥
 [alias] analysing function: at_quick_exit
-[alias] May-aliases at the end of function at_quick_exit:
-  <Bot>
+[alias] May-aliases at the end of function at_quick_exit: ⊥
 [alias] analysing function: atexit
-[alias] May-aliases at the end of function atexit:
-  <Bot>
+[alias] May-aliases at the end of function atexit: ⊥
 [alias] analysing function: atof
-[alias] May-aliases at the end of function atof:
-  <Bot>
+[alias] May-aliases at the end of function atof: ⊥
 [alias] analysing function: atoi
-[alias] May-aliases at the end of function atoi:
-  <Bot>
+[alias] May-aliases at the end of function atoi: ⊥
 [alias] analysing function: atol
-[alias] May-aliases at the end of function atol:
-  <Bot>
+[alias] May-aliases at the end of function atol: ⊥
 [alias] analysing function: atoll
-[alias] May-aliases at the end of function atoll:
-  <Bot>
+[alias] May-aliases at the end of function atoll: ⊥
 [alias] analysing function: bsearch
-[alias] May-aliases at the end of function bsearch:
-  <Bot>
+[alias] May-aliases at the end of function bsearch: ⊥
 [alias] analysing function: calloc
-[alias] May-aliases at the end of function calloc:
-  <Bot>
+[alias] May-aliases at the end of function calloc: ⊥
 [alias] analysing function: div
-[alias] May-aliases at the end of function div:
-  <Bot>
+[alias] May-aliases at the end of function div: ⊥
 [alias] analysing function: drand48
-[alias] May-aliases at the end of function drand48:
-  <Bot>
+[alias] May-aliases at the end of function drand48: ⊥
 [alias] analysing function: erand48
-[alias] May-aliases at the end of function erand48:
-  <Bot>
+[alias] May-aliases at the end of function erand48: ⊥
 [alias] analysing function: exit
-[alias] May-aliases at the end of function exit:
-  <Bot>
+[alias] May-aliases at the end of function exit: ⊥
 [alias] analysing function: free
-[alias] May-aliases at the end of function free:
-  <Bot>
+[alias] May-aliases at the end of function free: ⊥
 [alias] analysing function: getenv
-[alias] May-aliases at the end of function getenv:
-  <Bot>
+[alias] May-aliases at the end of function getenv: ⊥
 [alias] analysing function: jrand48
-[alias] May-aliases at the end of function jrand48:
-  <Bot>
+[alias] May-aliases at the end of function jrand48: ⊥
 [alias] analysing function: labs
-[alias] May-aliases at the end of function labs:
-  <Bot>
+[alias] May-aliases at the end of function labs: ⊥
 [alias] analysing function: lcong48
-[alias] May-aliases at the end of function lcong48:
-  <Bot>
+[alias] May-aliases at the end of function lcong48: ⊥
 [alias] analysing function: ldiv
-[alias] May-aliases at the end of function ldiv:
-  <Bot>
+[alias] May-aliases at the end of function ldiv: ⊥
 [alias] analysing function: llabs
-[alias] May-aliases at the end of function llabs:
-  <Bot>
+[alias] May-aliases at the end of function llabs: ⊥
 [alias] analysing function: lldiv
-[alias] May-aliases at the end of function lldiv:
-  <Bot>
+[alias] May-aliases at the end of function lldiv: ⊥
 [alias] analysing function: lrand48
-[alias] May-aliases at the end of function lrand48:
-  <Bot>
+[alias] May-aliases at the end of function lrand48: ⊥
 [alias] analysing function: main
 [alias] analysing instruction: int *s = (int *)0;
 [alias:unsafe-cast] while_for1.c:8: Warning: unsafe cast from int to int *
-[alias] May-aliases at the end of instruction: int *s = (int *)0;
-  <none>
+[alias] May-aliases after instruction  int *s = (int *)0;  are  <none>
 [alias] analysing instruction: int idx = 0;
-[alias] May-aliases at the end of instruction: int idx = 0;
-  <none>
+[alias] May-aliases after instruction  int idx = 0;  are  <none>
 [alias] analysing instruction: s = (int *)malloc((size_t)idx);
-[alias] May-aliases at the end of instruction: s = (int *)malloc((size_t)idx);
-  <none>
+[alias] May-aliases after instruction  s = (int *)malloc((size_t)idx);  are  <none>
 [alias] analysing instruction: idx ++;
-[alias] May-aliases at the end of instruction: idx ++;
-  <none>
+[alias] May-aliases after instruction  idx ++;  are  <none>
 [alias] analysing instruction: s = (int *)malloc((size_t)idx);
-[alias] May-aliases at the end of instruction: s = (int *)malloc((size_t)idx);
-  <none>
+[alias] May-aliases after instruction  s = (int *)malloc((size_t)idx);  are  <none>
 [alias] analysing instruction: __retres = 0;
-[alias] May-aliases at the end of instruction: __retres = 0;
-  <none>
-[alias] May-aliases at the end of function main:
-  <none>
+[alias] May-aliases after instruction  __retres = 0;  are  <none>
+[alias] May-aliases at the end of function main: <none>
 [alias] analysing function: malloc
-[alias] May-aliases at the end of function malloc:
-  <Bot>
+[alias] May-aliases at the end of function malloc: ⊥
 [alias] analysing function: mblen
-[alias] May-aliases at the end of function mblen:
-  <Bot>
+[alias] May-aliases at the end of function mblen: ⊥
 [alias] analysing function: mbstowcs
-[alias] May-aliases at the end of function mbstowcs:
-  <Bot>
+[alias] May-aliases at the end of function mbstowcs: ⊥
 [alias] analysing function: mbtowc
-[alias] May-aliases at the end of function mbtowc:
-  <Bot>
+[alias] May-aliases at the end of function mbtowc: ⊥
 [alias] analysing function: mkstemp
-[alias] May-aliases at the end of function mkstemp:
-  <Bot>
+[alias] May-aliases at the end of function mkstemp: ⊥
 [alias] analysing function: mkstemps
-[alias] May-aliases at the end of function mkstemps:
-  <Bot>
+[alias] May-aliases at the end of function mkstemps: ⊥
 [alias] analysing function: mrand48
-[alias] May-aliases at the end of function mrand48:
-  <Bot>
+[alias] May-aliases at the end of function mrand48: ⊥
 [alias] analysing function: nrand48
-[alias] May-aliases at the end of function nrand48:
-  <Bot>
+[alias] May-aliases at the end of function nrand48: ⊥
 [alias] analysing function: posix_memalign
-[alias] May-aliases at the end of function posix_memalign:
-  <Bot>
+[alias] May-aliases at the end of function posix_memalign: ⊥
 [alias] analysing function: putenv
-[alias] May-aliases at the end of function putenv:
-  <Bot>
+[alias] May-aliases at the end of function putenv: ⊥
 [alias] analysing function: qsort
-[alias] May-aliases at the end of function qsort:
-  <Bot>
+[alias] May-aliases at the end of function qsort: ⊥
 [alias] analysing function: quick_exit
-[alias] May-aliases at the end of function quick_exit:
-  <Bot>
+[alias] May-aliases at the end of function quick_exit: ⊥
 [alias] analysing function: rand
-[alias] May-aliases at the end of function rand:
-  <Bot>
+[alias] May-aliases at the end of function rand: ⊥
 [alias] analysing function: random
-[alias] May-aliases at the end of function random:
-  <Bot>
+[alias] May-aliases at the end of function random: ⊥
 [alias] analysing function: realloc
-[alias] May-aliases at the end of function realloc:
-  <Bot>
+[alias] May-aliases at the end of function realloc: ⊥
 [alias] analysing function: reallocarray
-[alias] May-aliases at the end of function reallocarray:
-  <Bot>
+[alias] May-aliases at the end of function reallocarray: ⊥
 [alias] analysing function: seed48
-[alias] May-aliases at the end of function seed48:
-  <Bot>
+[alias] May-aliases at the end of function seed48: ⊥
 [alias] analysing function: setenv
-[alias] May-aliases at the end of function setenv:
-  <Bot>
+[alias] May-aliases at the end of function setenv: ⊥
 [alias] analysing function: srand
-[alias] May-aliases at the end of function srand:
-  <Bot>
+[alias] May-aliases at the end of function srand: ⊥
 [alias] analysing function: srand48
-[alias] May-aliases at the end of function srand48:
-  <Bot>
+[alias] May-aliases at the end of function srand48: ⊥
 [alias] analysing function: srandom
-[alias] May-aliases at the end of function srandom:
-  <Bot>
+[alias] May-aliases at the end of function srandom: ⊥
 [alias] analysing function: strtod
-[alias] May-aliases at the end of function strtod:
-  <Bot>
+[alias] May-aliases at the end of function strtod: ⊥
 [alias] analysing function: strtof
-[alias] May-aliases at the end of function strtof:
-  <Bot>
+[alias] May-aliases at the end of function strtof: ⊥
 [alias] analysing function: strtol
-[alias] May-aliases at the end of function strtol:
-  <Bot>
+[alias] May-aliases at the end of function strtol: ⊥
 [alias] analysing function: strtold
-[alias] May-aliases at the end of function strtold:
-  <Bot>
+[alias] May-aliases at the end of function strtold: ⊥
 [alias] analysing function: strtoll
-[alias] May-aliases at the end of function strtoll:
-  <Bot>
+[alias] May-aliases at the end of function strtoll: ⊥
 [alias] analysing function: strtoul
-[alias] May-aliases at the end of function strtoul:
-  <Bot>
+[alias] May-aliases at the end of function strtoul: ⊥
 [alias] analysing function: strtoull
-[alias] May-aliases at the end of function strtoull:
-  <Bot>
+[alias] May-aliases at the end of function strtoull: ⊥
 [alias] analysing function: system
-[alias] May-aliases at the end of function system:
-  <Bot>
+[alias] May-aliases at the end of function system: ⊥
 [alias] analysing function: unsetenv
-[alias] May-aliases at the end of function unsetenv:
-  <Bot>
+[alias] May-aliases at the end of function unsetenv: ⊥
 [alias] analysing function: wcstombs
-[alias] May-aliases at the end of function wcstombs:
-  <Bot>
+[alias] May-aliases at the end of function wcstombs: ⊥
 [alias] analysing function: wctomb
-[alias] May-aliases at the end of function wctomb:
-  <Bot>
+[alias] May-aliases at the end of function wctomb: ⊥
diff --git a/src/plugins/alias/tests/basic/oracle/while_for2.res.oracle b/src/plugins/alias/tests/basic/oracle/while_for2.res.oracle
index 6c08aec861c..f50bde9af67 100644
--- a/src/plugins/alias/tests/basic/oracle/while_for2.res.oracle
+++ b/src/plugins/alias/tests/basic/oracle/while_for2.res.oracle
@@ -2,21 +2,15 @@
 [alias] analysing function: main
 [alias] analysing instruction: int *a = (int *)0;
 [alias:unsafe-cast] while_for2.c:6: Warning: unsafe cast from int to int *
-[alias] May-aliases at the end of instruction: int *a = (int *)0;
-  <none>
+[alias] May-aliases after instruction  int *a = (int *)0;  are  <none>
 [alias] analysing instruction: int *b = (int *)0;
 [alias:unsafe-cast] while_for2.c:6: Warning: unsafe cast from int to int *
-[alias] May-aliases at the end of instruction: int *b = (int *)0;
-  <none>
+[alias] May-aliases after instruction  int *b = (int *)0;  are  <none>
 [alias] analysing instruction: int *c = (int *)0;
 [alias:unsafe-cast] while_for2.c:6: Warning: unsafe cast from int to int *
-[alias] May-aliases at the end of instruction: int *c = (int *)0;
-  <none>
+[alias] May-aliases after instruction  int *c = (int *)0;  are  <none>
 [alias] analysing instruction: a = b;
-[alias] May-aliases at the end of instruction: a = b;
-  {a, b} are aliased
+[alias] May-aliases after instruction  a = b;  are  {a, b}
 [alias] analysing instruction: __retres = 0;
-[alias] May-aliases at the end of instruction: __retres = 0;
-  {a, b} are aliased
-[alias] May-aliases at the end of function main:
-  {a, b} are aliased
+[alias] May-aliases after instruction  __retres = 0;  are  {a, b}
+[alias] May-aliases at the end of function main: {a, b}
diff --git a/src/plugins/alias/tests/basic/oracle/while_for3.res.oracle b/src/plugins/alias/tests/basic/oracle/while_for3.res.oracle
index b3c5b194e25..3cb15611351 100644
--- a/src/plugins/alias/tests/basic/oracle/while_for3.res.oracle
+++ b/src/plugins/alias/tests/basic/oracle/while_for3.res.oracle
@@ -2,30 +2,21 @@
 [alias] analysing function: main
 [alias] analysing instruction: int *a = (int *)0;
 [alias:unsafe-cast] while_for3.c:6: Warning: unsafe cast from int to int *
-[alias] May-aliases at the end of instruction: int *a = (int *)0;
-  <none>
+[alias] May-aliases after instruction  int *a = (int *)0;  are  <none>
 [alias] analysing instruction: int *b = (int *)0;
 [alias:unsafe-cast] while_for3.c:6: Warning: unsafe cast from int to int *
-[alias] May-aliases at the end of instruction: int *b = (int *)0;
-  <none>
+[alias] May-aliases after instruction  int *b = (int *)0;  are  <none>
 [alias] analysing instruction: int *c = (int *)0;
 [alias:unsafe-cast] while_for3.c:6: Warning: unsafe cast from int to int *
-[alias] May-aliases at the end of instruction: int *c = (int *)0;
-  <none>
+[alias] May-aliases after instruction  int *c = (int *)0;  are  <none>
 [alias] analysing instruction: int i = 0;
-[alias] May-aliases at the end of instruction: int i = 0;
-  <none>
+[alias] May-aliases after instruction  int i = 0;  are  <none>
 [alias] analysing instruction: a = b;
-[alias] May-aliases at the end of instruction: a = b;
-  {a, b} are aliased
+[alias] May-aliases after instruction  a = b;  are  {a, b}
 [alias] analysing instruction: __Cont: i ++;
-[alias] May-aliases at the end of instruction: __Cont: i ++;
-  {a, b} are aliased
+[alias] May-aliases after instruction  __Cont: i ++;  are  {a, b}
 [alias] analysing instruction: a = b;
-[alias] May-aliases at the end of instruction: a = b;
-  {a, b} are aliased
+[alias] May-aliases after instruction  a = b;  are  {a, b}
 [alias] analysing instruction: __retres = 0;
-[alias] May-aliases at the end of instruction: __retres = 0;
-  {a, b} are aliased
-[alias] May-aliases at the end of function main:
-  {a, b} are aliased
+[alias] May-aliases after instruction  __retres = 0;  are  {a, b}
+[alias] May-aliases at the end of function main: {a, b}
diff --git a/src/plugins/alias/tests/fixed_bugs/oracle/union_vmap.res.oracle b/src/plugins/alias/tests/fixed_bugs/oracle/union_vmap.res.oracle
index 57c8847db39..606169550d1 100644
--- a/src/plugins/alias/tests/fixed_bugs/oracle/union_vmap.res.oracle
+++ b/src/plugins/alias/tests/fixed_bugs/oracle/union_vmap.res.oracle
@@ -2,25 +2,20 @@
 [alias] analysing function: CPS_ParseKey
 [alias] analysing instruction: char *s2 = CPS_SplitWord((char *)"a");
 [alias] analysing function: CPS_SplitWord
-[alias] May-aliases at the end of function CPS_SplitWord:
-  <none>
+[alias] May-aliases at the end of function CPS_SplitWord: <none>
 [alias:unsafe-cast] union_vmap.c:11: Warning: 
   unsafe cast from char const * to char *
-[alias] May-aliases at the end of instruction: char *s2 = CPS_SplitWord((char *)"a");
+[alias] May-aliases after instruction  char *s2 = CPS_SplitWord((char *)"a");  are
   <none>
 [alias] analysing instruction: char *s3 = CPS_SplitWord((char *)"b");
 [alias:unsafe-cast] union_vmap.c:12: Warning: 
   unsafe cast from char const * to char *
-[alias] May-aliases at the end of instruction: char *s3 = CPS_SplitWord((char *)"b");
+[alias] May-aliases after instruction  char *s3 = CPS_SplitWord((char *)"b");  are
   <none>
 [alias] analysing instruction: *key = s3;
-[alias] May-aliases at the end of instruction: *key = s3;
-  {*key, s3} are aliased
+[alias] May-aliases after instruction  *key = s3;  are  {*key, s3}
 [alias] analysing instruction: *key = s2;
-[alias] May-aliases at the end of instruction: *key = s2;
-  {*key, s2} are aliased
-[alias] May-aliases at the end of function CPS_ParseKey:
-  {*key, s2, s3} are aliased
+[alias] May-aliases after instruction  *key = s2;  are  {*key, s2}
+[alias] May-aliases at the end of function CPS_ParseKey: {*key, s2, s3}
 [alias] analysing function: CPS_SplitWord
-[alias] May-aliases at the end of function CPS_SplitWord:
-  <none>
+[alias] May-aliases at the end of function CPS_SplitWord: <none>
diff --git a/src/plugins/alias/tests/offsets/oracle/array1.res.oracle b/src/plugins/alias/tests/offsets/oracle/array1.res.oracle
index 3f8f04ebf18..d6bdf7ba016 100644
--- a/src/plugins/alias/tests/offsets/oracle/array1.res.oracle
+++ b/src/plugins/alias/tests/offsets/oracle/array1.res.oracle
@@ -1,25 +1,17 @@
 [kernel] Parsing array1.c (with preprocessing)
 [alias] analysing function: main
 [alias] analysing instruction: tab[0] = 0;
-[alias] May-aliases at the end of instruction: tab[0] = 0;
-  <none>
+[alias] May-aliases after instruction  tab[0] = 0;  are  <none>
 [alias] analysing instruction: tab[1] = 1;
-[alias] May-aliases at the end of instruction: tab[1] = 1;
-  <none>
+[alias] May-aliases after instruction  tab[1] = 1;  are  <none>
 [alias] analysing instruction: tab[2] = tab[1] + 1;
-[alias] May-aliases at the end of instruction: tab[2] = tab[1] + 1;
-  <none>
+[alias] May-aliases after instruction  tab[2] = tab[1] + 1;  are  <none>
 [alias] analysing instruction: int *x = & tab[1];
-[alias] May-aliases at the end of instruction: int *x = & tab[1];
-  <none>
+[alias] May-aliases after instruction  int *x = & tab[1];  are  <none>
 [alias] analysing instruction: int *y = & tab[2];
-[alias] May-aliases at the end of instruction: int *y = & tab[2];
-  {x, y} are aliased
+[alias] May-aliases after instruction  int *y = & tab[2];  are  {x, y}
 [alias] analysing instruction: tab[3] = *x + *y;
-[alias] May-aliases at the end of instruction: tab[3] = *x + *y;
-  {x, y} are aliased
+[alias] May-aliases after instruction  tab[3] = *x + *y;  are  {x, y}
 [alias] analysing instruction: __retres = 0;
-[alias] May-aliases at the end of instruction: __retres = 0;
-  {x, y} are aliased
-[alias] May-aliases at the end of function main:
-  {x, y} are aliased
+[alias] May-aliases after instruction  __retres = 0;  are  {x, y}
+[alias] May-aliases at the end of function main: {x, y}
diff --git a/src/plugins/alias/tests/offsets/oracle/array2.res.oracle b/src/plugins/alias/tests/offsets/oracle/array2.res.oracle
index d06aacf760b..69f16a022f8 100644
--- a/src/plugins/alias/tests/offsets/oracle/array2.res.oracle
+++ b/src/plugins/alias/tests/offsets/oracle/array2.res.oracle
@@ -1,19 +1,13 @@
 [kernel] Parsing array2.c (with preprocessing)
 [alias] analysing function: main
 [alias] analysing instruction: mat[0][0] = 0;
-[alias] May-aliases at the end of instruction: mat[0][0] = 0;
-  <none>
+[alias] May-aliases after instruction  mat[0][0] = 0;  are  <none>
 [alias] analysing instruction: mat[0][1] = 1;
-[alias] May-aliases at the end of instruction: mat[0][1] = 1;
-  <none>
+[alias] May-aliases after instruction  mat[0][1] = 1;  are  <none>
 [alias] analysing instruction: *x = mat[1];
-[alias] May-aliases at the end of instruction: *x = mat[1];
-  <none>
+[alias] May-aliases after instruction  *x = mat[1];  are  <none>
 [alias] analysing instruction: *y = *(*(x + 0));
-[alias] May-aliases at the end of instruction: *y = *(*(x + 0));
-  <none>
+[alias] May-aliases after instruction  *y = *(*(x + 0));  are  <none>
 [alias] analysing instruction: __retres = 0;
-[alias] May-aliases at the end of instruction: __retres = 0;
-  <none>
-[alias] May-aliases at the end of function main:
-  <none>
+[alias] May-aliases after instruction  __retres = 0;  are  <none>
+[alias] May-aliases at the end of function main: <none>
diff --git a/src/plugins/alias/tests/offsets/oracle/array3.res.oracle b/src/plugins/alias/tests/offsets/oracle/array3.res.oracle
index 906a7e049b4..6b6a66a4677 100644
--- a/src/plugins/alias/tests/offsets/oracle/array3.res.oracle
+++ b/src/plugins/alias/tests/offsets/oracle/array3.res.oracle
@@ -1,189 +1,127 @@
 [kernel] Parsing array3.c (with preprocessing)
 [alias] analysing function: _Exit
-[alias] May-aliases at the end of function _Exit:
-  <Bot>
+[alias] May-aliases at the end of function _Exit: ⊥
 [alias] analysing function: abort
-[alias] May-aliases at the end of function abort:
-  <Bot>
+[alias] May-aliases at the end of function abort: ⊥
 [alias] analysing function: abs
-[alias] May-aliases at the end of function abs:
-  <Bot>
+[alias] May-aliases at the end of function abs: ⊥
 [alias] analysing function: at_quick_exit
-[alias] May-aliases at the end of function at_quick_exit:
-  <Bot>
+[alias] May-aliases at the end of function at_quick_exit: ⊥
 [alias] analysing function: atexit
-[alias] May-aliases at the end of function atexit:
-  <Bot>
+[alias] May-aliases at the end of function atexit: ⊥
 [alias] analysing function: atof
-[alias] May-aliases at the end of function atof:
-  <Bot>
+[alias] May-aliases at the end of function atof: ⊥
 [alias] analysing function: atoi
-[alias] May-aliases at the end of function atoi:
-  <Bot>
+[alias] May-aliases at the end of function atoi: ⊥
 [alias] analysing function: atol
-[alias] May-aliases at the end of function atol:
-  <Bot>
+[alias] May-aliases at the end of function atol: ⊥
 [alias] analysing function: atoll
-[alias] May-aliases at the end of function atoll:
-  <Bot>
+[alias] May-aliases at the end of function atoll: ⊥
 [alias] analysing function: bsearch
-[alias] May-aliases at the end of function bsearch:
-  <Bot>
+[alias] May-aliases at the end of function bsearch: ⊥
 [alias] analysing function: calloc
-[alias] May-aliases at the end of function calloc:
-  <Bot>
+[alias] May-aliases at the end of function calloc: ⊥
 [alias] analysing function: div
-[alias] May-aliases at the end of function div:
-  <Bot>
+[alias] May-aliases at the end of function div: ⊥
 [alias] analysing function: drand48
-[alias] May-aliases at the end of function drand48:
-  <Bot>
+[alias] May-aliases at the end of function drand48: ⊥
 [alias] analysing function: erand48
-[alias] May-aliases at the end of function erand48:
-  <Bot>
+[alias] May-aliases at the end of function erand48: ⊥
 [alias] analysing function: exit
-[alias] May-aliases at the end of function exit:
-  <Bot>
+[alias] May-aliases at the end of function exit: ⊥
 [alias] analysing function: free
-[alias] May-aliases at the end of function free:
-  <Bot>
+[alias] May-aliases at the end of function free: ⊥
 [alias] analysing function: getenv
-[alias] May-aliases at the end of function getenv:
-  <Bot>
+[alias] May-aliases at the end of function getenv: ⊥
 [alias] analysing function: jrand48
-[alias] May-aliases at the end of function jrand48:
-  <Bot>
+[alias] May-aliases at the end of function jrand48: ⊥
 [alias] analysing function: labs
-[alias] May-aliases at the end of function labs:
-  <Bot>
+[alias] May-aliases at the end of function labs: ⊥
 [alias] analysing function: lcong48
-[alias] May-aliases at the end of function lcong48:
-  <Bot>
+[alias] May-aliases at the end of function lcong48: ⊥
 [alias] analysing function: ldiv
-[alias] May-aliases at the end of function ldiv:
-  <Bot>
+[alias] May-aliases at the end of function ldiv: ⊥
 [alias] analysing function: llabs
-[alias] May-aliases at the end of function llabs:
-  <Bot>
+[alias] May-aliases at the end of function llabs: ⊥
 [alias] analysing function: lldiv
-[alias] May-aliases at the end of function lldiv:
-  <Bot>
+[alias] May-aliases at the end of function lldiv: ⊥
 [alias] analysing function: lrand48
-[alias] May-aliases at the end of function lrand48:
-  <Bot>
+[alias] May-aliases at the end of function lrand48: ⊥
 [alias] analysing function: main
 [alias] analysing instruction: int *x = malloc((unsigned long)4 * sizeof(int));
-[alias] May-aliases at the end of instruction: int *x =
-                                           malloc((unsigned long)4 * sizeof(int));
-  <none>
+[alias] May-aliases after instruction
+  int *x = malloc((unsigned long)4 * sizeof(int));  are  <none>
 [alias] analysing instruction: int *y = malloc((unsigned long)4 * sizeof(int));
-[alias] May-aliases at the end of instruction: int *y =
-                                           malloc((unsigned long)4 * sizeof(int));
-  <none>
+[alias] May-aliases after instruction
+  int *y = malloc((unsigned long)4 * sizeof(int));  are  <none>
 [alias] analysing instruction: x = mat[0];
-[alias] May-aliases at the end of instruction: x = mat[0];
-  <none>
+[alias] May-aliases after instruction  x = mat[0];  are  <none>
 [alias] analysing instruction: y = mat[1];
-[alias] May-aliases at the end of instruction: y = mat[1];
-  {x, y} are aliased
+[alias] May-aliases after instruction  y = mat[1];  are  {x, y}
 [alias] analysing instruction: __retres = 0;
-[alias] May-aliases at the end of instruction: __retres = 0;
-  {x, y} are aliased
-[alias] May-aliases at the end of function main:
-  {x, y} are aliased
+[alias] May-aliases after instruction  __retres = 0;  are  {x, y}
+[alias] May-aliases at the end of function main: {x, y}
 [alias] analysing function: malloc
-[alias] May-aliases at the end of function malloc:
-  <Bot>
+[alias] May-aliases at the end of function malloc: ⊥
 [alias] analysing function: mblen
-[alias] May-aliases at the end of function mblen:
-  <Bot>
+[alias] May-aliases at the end of function mblen: ⊥
 [alias] analysing function: mbstowcs
-[alias] May-aliases at the end of function mbstowcs:
-  <Bot>
+[alias] May-aliases at the end of function mbstowcs: ⊥
 [alias] analysing function: mbtowc
-[alias] May-aliases at the end of function mbtowc:
-  <Bot>
+[alias] May-aliases at the end of function mbtowc: ⊥
 [alias] analysing function: mkstemp
-[alias] May-aliases at the end of function mkstemp:
-  <Bot>
+[alias] May-aliases at the end of function mkstemp: ⊥
 [alias] analysing function: mkstemps
-[alias] May-aliases at the end of function mkstemps:
-  <Bot>
+[alias] May-aliases at the end of function mkstemps: ⊥
 [alias] analysing function: mrand48
-[alias] May-aliases at the end of function mrand48:
-  <Bot>
+[alias] May-aliases at the end of function mrand48: ⊥
 [alias] analysing function: nrand48
-[alias] May-aliases at the end of function nrand48:
-  <Bot>
+[alias] May-aliases at the end of function nrand48: ⊥
 [alias] analysing function: posix_memalign
-[alias] May-aliases at the end of function posix_memalign:
-  <Bot>
+[alias] May-aliases at the end of function posix_memalign: ⊥
 [alias] analysing function: putenv
-[alias] May-aliases at the end of function putenv:
-  <Bot>
+[alias] May-aliases at the end of function putenv: ⊥
 [alias] analysing function: qsort
-[alias] May-aliases at the end of function qsort:
-  <Bot>
+[alias] May-aliases at the end of function qsort: ⊥
 [alias] analysing function: quick_exit
-[alias] May-aliases at the end of function quick_exit:
-  <Bot>
+[alias] May-aliases at the end of function quick_exit: ⊥
 [alias] analysing function: rand
-[alias] May-aliases at the end of function rand:
-  <Bot>
+[alias] May-aliases at the end of function rand: ⊥
 [alias] analysing function: random
-[alias] May-aliases at the end of function random:
-  <Bot>
+[alias] May-aliases at the end of function random: ⊥
 [alias] analysing function: realloc
-[alias] May-aliases at the end of function realloc:
-  <Bot>
+[alias] May-aliases at the end of function realloc: ⊥
 [alias] analysing function: reallocarray
-[alias] May-aliases at the end of function reallocarray:
-  <Bot>
+[alias] May-aliases at the end of function reallocarray: ⊥
 [alias] analysing function: seed48
-[alias] May-aliases at the end of function seed48:
-  <Bot>
+[alias] May-aliases at the end of function seed48: ⊥
 [alias] analysing function: setenv
-[alias] May-aliases at the end of function setenv:
-  <Bot>
+[alias] May-aliases at the end of function setenv: ⊥
 [alias] analysing function: srand
-[alias] May-aliases at the end of function srand:
-  <Bot>
+[alias] May-aliases at the end of function srand: ⊥
 [alias] analysing function: srand48
-[alias] May-aliases at the end of function srand48:
-  <Bot>
+[alias] May-aliases at the end of function srand48: ⊥
 [alias] analysing function: srandom
-[alias] May-aliases at the end of function srandom:
-  <Bot>
+[alias] May-aliases at the end of function srandom: ⊥
 [alias] analysing function: strtod
-[alias] May-aliases at the end of function strtod:
-  <Bot>
+[alias] May-aliases at the end of function strtod: ⊥
 [alias] analysing function: strtof
-[alias] May-aliases at the end of function strtof:
-  <Bot>
+[alias] May-aliases at the end of function strtof: ⊥
 [alias] analysing function: strtol
-[alias] May-aliases at the end of function strtol:
-  <Bot>
+[alias] May-aliases at the end of function strtol: ⊥
 [alias] analysing function: strtold
-[alias] May-aliases at the end of function strtold:
-  <Bot>
+[alias] May-aliases at the end of function strtold: ⊥
 [alias] analysing function: strtoll
-[alias] May-aliases at the end of function strtoll:
-  <Bot>
+[alias] May-aliases at the end of function strtoll: ⊥
 [alias] analysing function: strtoul
-[alias] May-aliases at the end of function strtoul:
-  <Bot>
+[alias] May-aliases at the end of function strtoul: ⊥
 [alias] analysing function: strtoull
-[alias] May-aliases at the end of function strtoull:
-  <Bot>
+[alias] May-aliases at the end of function strtoull: ⊥
 [alias] analysing function: system
-[alias] May-aliases at the end of function system:
-  <Bot>
+[alias] May-aliases at the end of function system: ⊥
 [alias] analysing function: unsetenv
-[alias] May-aliases at the end of function unsetenv:
-  <Bot>
+[alias] May-aliases at the end of function unsetenv: ⊥
 [alias] analysing function: wcstombs
-[alias] May-aliases at the end of function wcstombs:
-  <Bot>
+[alias] May-aliases at the end of function wcstombs: ⊥
 [alias] analysing function: wctomb
-[alias] May-aliases at the end of function wctomb:
-  <Bot>
+[alias] May-aliases at the end of function wctomb: ⊥
diff --git a/src/plugins/alias/tests/offsets/oracle/collapse1.res.oracle b/src/plugins/alias/tests/offsets/oracle/collapse1.res.oracle
index 6f29399b235..a118ff4e251 100644
--- a/src/plugins/alias/tests/offsets/oracle/collapse1.res.oracle
+++ b/src/plugins/alias/tests/offsets/oracle/collapse1.res.oracle
@@ -1,31 +1,21 @@
 [kernel] Parsing collapse1.c (with preprocessing)
 [alias] analysing function: main
 [alias] analysing instruction: tab[0] = 0;
-[alias] May-aliases at the end of instruction: tab[0] = 0;
-  <none>
+[alias] May-aliases after instruction  tab[0] = 0;  are  <none>
 [alias] analysing instruction: tab[1] = 1;
-[alias] May-aliases at the end of instruction: tab[1] = 1;
-  <none>
+[alias] May-aliases after instruction  tab[1] = 1;  are  <none>
 [alias] analysing instruction: tab[2] = tab[1] + 1;
-[alias] May-aliases at the end of instruction: tab[2] = tab[1] + 1;
-  <none>
+[alias] May-aliases after instruction  tab[2] = tab[1] + 1;  are  <none>
 [alias] analysing instruction: int x = 0;
-[alias] May-aliases at the end of instruction: int x = 0;
-  <none>
+[alias] May-aliases after instruction  int x = 0;  are  <none>
 [alias] analysing instruction: int i = 0;
-[alias] May-aliases at the end of instruction: int i = 0;
-  <none>
+[alias] May-aliases after instruction  int i = 0;  are  <none>
 [alias] analysing instruction: x = tab[i];
-[alias] May-aliases at the end of instruction: x = tab[i];
-  <none>
+[alias] May-aliases after instruction  x = tab[i];  are  <none>
 [alias] analysing instruction: i ++;
-[alias] May-aliases at the end of instruction: i ++;
-  <none>
+[alias] May-aliases after instruction  i ++;  are  <none>
 [alias] analysing instruction: x = tab[i];
-[alias] May-aliases at the end of instruction: x = tab[i];
-  <none>
+[alias] May-aliases after instruction  x = tab[i];  are  <none>
 [alias] analysing instruction: __retres = 0;
-[alias] May-aliases at the end of instruction: __retres = 0;
-  <none>
-[alias] May-aliases at the end of function main:
-  <none>
+[alias] May-aliases after instruction  __retres = 0;  are  <none>
+[alias] May-aliases at the end of function main: <none>
diff --git a/src/plugins/alias/tests/offsets/oracle/collapse2.res.oracle b/src/plugins/alias/tests/offsets/oracle/collapse2.res.oracle
index 5aa489b0697..34b8bd11975 100644
--- a/src/plugins/alias/tests/offsets/oracle/collapse2.res.oracle
+++ b/src/plugins/alias/tests/offsets/oracle/collapse2.res.oracle
@@ -1,25 +1,17 @@
 [kernel] Parsing collapse2.c (with preprocessing)
 [alias] analysing function: main
 [alias] analysing instruction: mat[0][0] = 0;
-[alias] May-aliases at the end of instruction: mat[0][0] = 0;
-  <none>
+[alias] May-aliases after instruction  mat[0][0] = 0;  are  <none>
 [alias] analysing instruction: mat[0][1] = 1;
-[alias] May-aliases at the end of instruction: mat[0][1] = 1;
-  <none>
+[alias] May-aliases after instruction  mat[0][1] = 1;  are  <none>
 [alias] analysing instruction: int i = 2;
-[alias] May-aliases at the end of instruction: int i = 2;
-  <none>
+[alias] May-aliases after instruction  int i = 2;  are  <none>
 [alias] analysing instruction: mat[1][i] = i;
-[alias] May-aliases at the end of instruction: mat[1][i] = i;
-  <none>
+[alias] May-aliases after instruction  mat[1][i] = i;  are  <none>
 [alias] analysing instruction: i ++;
-[alias] May-aliases at the end of instruction: i ++;
-  <none>
+[alias] May-aliases after instruction  i ++;  are  <none>
 [alias] analysing instruction: mat[1][i] = 2;
-[alias] May-aliases at the end of instruction: mat[1][i] = 2;
-  <none>
+[alias] May-aliases after instruction  mat[1][i] = 2;  are  <none>
 [alias] analysing instruction: __retres = 0;
-[alias] May-aliases at the end of instruction: __retres = 0;
-  <none>
-[alias] May-aliases at the end of function main:
-  <none>
+[alias] May-aliases after instruction  __retres = 0;  are  <none>
+[alias] May-aliases at the end of function main: <none>
diff --git a/src/plugins/alias/tests/offsets/oracle/collapse3.res.oracle b/src/plugins/alias/tests/offsets/oracle/collapse3.res.oracle
index cc02a1b6694..4193c3f90a2 100644
--- a/src/plugins/alias/tests/offsets/oracle/collapse3.res.oracle
+++ b/src/plugins/alias/tests/offsets/oracle/collapse3.res.oracle
@@ -1,25 +1,17 @@
 [kernel] Parsing collapse3.c (with preprocessing)
 [alias] analysing function: main
 [alias] analysing instruction: mat[0][0] = 0;
-[alias] May-aliases at the end of instruction: mat[0][0] = 0;
-  <none>
+[alias] May-aliases after instruction  mat[0][0] = 0;  are  <none>
 [alias] analysing instruction: mat[0][1] = 1;
-[alias] May-aliases at the end of instruction: mat[0][1] = 1;
-  <none>
+[alias] May-aliases after instruction  mat[0][1] = 1;  are  <none>
 [alias] analysing instruction: int i = 2;
-[alias] May-aliases at the end of instruction: int i = 2;
-  <none>
+[alias] May-aliases after instruction  int i = 2;  are  <none>
 [alias] analysing instruction: mat[i][1] = i;
-[alias] May-aliases at the end of instruction: mat[i][1] = i;
-  <none>
+[alias] May-aliases after instruction  mat[i][1] = i;  are  <none>
 [alias] analysing instruction: i ++;
-[alias] May-aliases at the end of instruction: i ++;
-  <none>
+[alias] May-aliases after instruction  i ++;  are  <none>
 [alias] analysing instruction: mat[i][1] = 2;
-[alias] May-aliases at the end of instruction: mat[i][1] = 2;
-  <none>
+[alias] May-aliases after instruction  mat[i][1] = 2;  are  <none>
 [alias] analysing instruction: __retres = 0;
-[alias] May-aliases at the end of instruction: __retres = 0;
-  <none>
-[alias] May-aliases at the end of function main:
-  <none>
+[alias] May-aliases after instruction  __retres = 0;  are  <none>
+[alias] May-aliases at the end of function main: <none>
diff --git a/src/plugins/alias/tests/offsets/oracle/nested1.res.oracle b/src/plugins/alias/tests/offsets/oracle/nested1.res.oracle
index 9e0ad0d28c8..e26a96622dd 100644
--- a/src/plugins/alias/tests/offsets/oracle/nested1.res.oracle
+++ b/src/plugins/alias/tests/offsets/oracle/nested1.res.oracle
@@ -1,247 +1,168 @@
 [kernel] Parsing nested1.c (with preprocessing)
 [alias] analysing function: _Exit
-[alias] May-aliases at the end of function _Exit:
-  <Bot>
+[alias] May-aliases at the end of function _Exit: ⊥
 [alias] analysing function: abort
-[alias] May-aliases at the end of function abort:
-  <Bot>
+[alias] May-aliases at the end of function abort: ⊥
 [alias] analysing function: abs
-[alias] May-aliases at the end of function abs:
-  <Bot>
+[alias] May-aliases at the end of function abs: ⊥
 [alias] analysing function: at_quick_exit
-[alias] May-aliases at the end of function at_quick_exit:
-  <Bot>
+[alias] May-aliases at the end of function at_quick_exit: ⊥
 [alias] analysing function: atexit
-[alias] May-aliases at the end of function atexit:
-  <Bot>
+[alias] May-aliases at the end of function atexit: ⊥
 [alias] analysing function: atof
-[alias] May-aliases at the end of function atof:
-  <Bot>
+[alias] May-aliases at the end of function atof: ⊥
 [alias] analysing function: atoi
-[alias] May-aliases at the end of function atoi:
-  <Bot>
+[alias] May-aliases at the end of function atoi: ⊥
 [alias] analysing function: atol
-[alias] May-aliases at the end of function atol:
-  <Bot>
+[alias] May-aliases at the end of function atol: ⊥
 [alias] analysing function: atoll
-[alias] May-aliases at the end of function atoll:
-  <Bot>
+[alias] May-aliases at the end of function atoll: ⊥
 [alias] analysing function: bsearch
-[alias] May-aliases at the end of function bsearch:
-  <Bot>
+[alias] May-aliases at the end of function bsearch: ⊥
 [alias] analysing function: calloc
-[alias] May-aliases at the end of function calloc:
-  <Bot>
+[alias] May-aliases at the end of function calloc: ⊥
 [alias] analysing function: div
-[alias] May-aliases at the end of function div:
-  <Bot>
+[alias] May-aliases at the end of function div: ⊥
 [alias] analysing function: drand48
-[alias] May-aliases at the end of function drand48:
-  <Bot>
+[alias] May-aliases at the end of function drand48: ⊥
 [alias] analysing function: erand48
-[alias] May-aliases at the end of function erand48:
-  <Bot>
+[alias] May-aliases at the end of function erand48: ⊥
 [alias] analysing function: exit
-[alias] May-aliases at the end of function exit:
-  <Bot>
+[alias] May-aliases at the end of function exit: ⊥
 [alias] analysing function: free
-[alias] May-aliases at the end of function free:
-  <Bot>
+[alias] May-aliases at the end of function free: ⊥
 [alias] analysing function: getenv
-[alias] May-aliases at the end of function getenv:
-  <Bot>
+[alias] May-aliases at the end of function getenv: ⊥
 [alias] analysing function: jrand48
-[alias] May-aliases at the end of function jrand48:
-  <Bot>
+[alias] May-aliases at the end of function jrand48: ⊥
 [alias] analysing function: labs
-[alias] May-aliases at the end of function labs:
-  <Bot>
+[alias] May-aliases at the end of function labs: ⊥
 [alias] analysing function: lcong48
-[alias] May-aliases at the end of function lcong48:
-  <Bot>
+[alias] May-aliases at the end of function lcong48: ⊥
 [alias] analysing function: ldiv
-[alias] May-aliases at the end of function ldiv:
-  <Bot>
+[alias] May-aliases at the end of function ldiv: ⊥
 [alias] analysing function: llabs
-[alias] May-aliases at the end of function llabs:
-  <Bot>
+[alias] May-aliases at the end of function llabs: ⊥
 [alias] analysing function: lldiv
-[alias] May-aliases at the end of function lldiv:
-  <Bot>
+[alias] May-aliases at the end of function lldiv: ⊥
 [alias] analysing function: lrand48
-[alias] May-aliases at the end of function lrand48:
-  <Bot>
+[alias] May-aliases at the end of function lrand48: ⊥
 [alias] analysing function: main
 [alias] analysing instruction: st_1_t x1 = {.a = 0, .b = 1};
-[alias] May-aliases at the end of instruction: st_1_t x1 = {.a = 0, .b = 1};
-  <none>
+[alias] May-aliases after instruction  st_1_t x1 = {.a = 0, .b = 1};  are  <none>
 [alias] analysing instruction: st_1_t x2 = {.a = 1, .b = 2};
-[alias] May-aliases at the end of instruction: st_1_t x2 = {.a = 1, .b = 2};
-  <none>
+[alias] May-aliases after instruction  st_1_t x2 = {.a = 1, .b = 2};  are  <none>
 [alias] analysing instruction: tab_y[0] = & x1;
-[alias] May-aliases at the end of instruction: tab_y[0] = & x1;
-  <none>
+[alias] May-aliases after instruction  tab_y[0] = & x1;  are  <none>
 [alias] analysing instruction: tab_y[1] = & x2;
-[alias] May-aliases at the end of instruction: tab_y[1] = & x2;
-  <none>
+[alias] May-aliases after instruction  tab_y[1] = & x2;  are  <none>
 [alias] analysing instruction: st_2_t *z1 = malloc(sizeof(st_2_t));
-[alias] May-aliases at the end of instruction: st_2_t *z1 = malloc(sizeof(st_2_t));
+[alias] May-aliases after instruction  st_2_t *z1 = malloc(sizeof(st_2_t));  are
   <none>
 [alias] analysing instruction: st_2_t *z2 = malloc(sizeof(st_2_t));
-[alias] May-aliases at the end of instruction: st_2_t *z2 = malloc(sizeof(st_2_t));
+[alias] May-aliases after instruction  st_2_t *z2 = malloc(sizeof(st_2_t));  are
   <none>
 [alias] analysing instruction: st_3_t *t = malloc(sizeof(st_3_t));
-[alias] May-aliases at the end of instruction: st_3_t *t = malloc(sizeof(st_3_t));
+[alias] May-aliases after instruction  st_3_t *t = malloc(sizeof(st_3_t));  are
   <none>
 [alias] analysing instruction: int *a = malloc(sizeof(int));
-[alias] May-aliases at the end of instruction: int *a = malloc(sizeof(int));
-  <none>
+[alias] May-aliases after instruction  int *a = malloc(sizeof(int));  are  <none>
 [alias] analysing instruction: int *b = malloc(sizeof(int));
-[alias] May-aliases at the end of instruction: int *b = malloc(sizeof(int));
-  <none>
+[alias] May-aliases after instruction  int *b = malloc(sizeof(int));  are  <none>
 [alias] analysing instruction: *a = 0;
-[alias] May-aliases at the end of instruction: *a = 0;
-  <none>
+[alias] May-aliases after instruction  *a = 0;  are  <none>
 [alias] analysing instruction: *b = 5;
-[alias] May-aliases at the end of instruction: *b = 5;
-  <none>
+[alias] May-aliases after instruction  *b = 5;  are  <none>
 [alias] analysing instruction: z1->s = (struct struct_1_t *)tab_y[0];
 [alias:unsafe-cast] nested1.c:47: Warning: 
   unsafe cast from st_1_t * to struct struct_1_t *
-[alias] May-aliases at the end of instruction: z1->s = (struct struct_1_t *)tab_y[0];
-  {z1->s, tab_y[0]} are aliased
+[alias] May-aliases after instruction  z1->s = (struct struct_1_t *)tab_y[0];  are
+  {z1->s, tab_y[0]}
 [alias] analysing instruction: z2->s = (struct struct_1_t *)tab_y[1];
 [alias:unsafe-cast] nested1.c:48: Warning: 
   unsafe cast from st_1_t * to struct struct_1_t *
-[alias] May-aliases at the end of instruction: z2->s = (struct struct_1_t *)tab_y[1];
-  {z1->s, z2->s, tab_y[0]} are aliased
+[alias] May-aliases after instruction  z2->s = (struct struct_1_t *)tab_y[1];  are
+  {z1->s, z2->s, tab_y[0]}
 [alias] analysing instruction: z1->c = a;
-[alias] May-aliases at the end of instruction: z1->c = a;
-  {z1->s, z2->s, tab_y[0]} are aliased
-  {z1->c, a} are aliased
+[alias] May-aliases after instruction  z1->c = a;  are
+  {z1->s, z2->s, tab_y[0]}  {z1->c, a}
 [alias] analysing instruction: z2->c = b;
-[alias] May-aliases at the end of instruction: z2->c = b;
-  {z1->s, z2->s, tab_y[0]} are aliased
-  {z1->c, a} are aliased
-  {z2->c, b} are aliased
+[alias] May-aliases after instruction  z2->c = b;  are
+  {z1->s, z2->s, tab_y[0]}  {z1->c, a}  {z2->c, b}
 [alias] analysing instruction: t->t = (struct struct_2_t *)z1;
 [alias:unsafe-cast] nested1.c:51: Warning: 
   unsafe cast from st_2_t * to struct struct_2_t *
-[alias] May-aliases at the end of instruction: t->t = (struct struct_2_t *)z1;
-  {z1->s, z2->s, tab_y[0]} are aliased
-  {t->t, z1} are aliased
-  {z1->c, a} are aliased
-  {z2->c, b} are aliased
+[alias] May-aliases after instruction  t->t = (struct struct_2_t *)z1;  are
+  {z1->s, z2->s, tab_y[0]}  {t->t, z1}  {z1->c, a}  {z2->c, b}
 [alias] analysing instruction: t->d = a;
-[alias] May-aliases at the end of instruction: t->d = a;
-  {z1->s, z2->s, tab_y[0]} are aliased
-  {t->t, z1} are aliased
-  {z1->c, t->d, a} are aliased
-  {z2->c, b} are aliased
+[alias] May-aliases after instruction  t->d = a;  are
+  {z1->s, z2->s, tab_y[0]}  {t->t, z1}  {z1->c, t->d, a}  {z2->c, b}
 [alias] analysing instruction: __retres = 0;
-[alias] May-aliases at the end of instruction: __retres = 0;
-  {z1->s, z2->s, tab_y[0]} are aliased
-  {t->t, z1} are aliased
-  {z1->c, t->d, a} are aliased
-  {z2->c, b} are aliased
+[alias] May-aliases after instruction  __retres = 0;  are
+  {z1->s, z2->s, tab_y[0]}  {t->t, z1}  {z1->c, t->d, a}  {z2->c, b}
 [alias] May-aliases at the end of function main:
-  {z1->s, z2->s, tab_y[0]} are aliased
-  {t->t, z1} are aliased
-  {z1->c, t->d, a} are aliased
-  {z2->c, b} are aliased
+  {z1->s, z2->s, tab_y[0]}  {t->t, z1}  {z1->c, t->d, a}  {z2->c, b}
 [alias] analysing function: malloc
-[alias] May-aliases at the end of function malloc:
-  <Bot>
+[alias] May-aliases at the end of function malloc: ⊥
 [alias] analysing function: mblen
-[alias] May-aliases at the end of function mblen:
-  <Bot>
+[alias] May-aliases at the end of function mblen: ⊥
 [alias] analysing function: mbstowcs
-[alias] May-aliases at the end of function mbstowcs:
-  <Bot>
+[alias] May-aliases at the end of function mbstowcs: ⊥
 [alias] analysing function: mbtowc
-[alias] May-aliases at the end of function mbtowc:
-  <Bot>
+[alias] May-aliases at the end of function mbtowc: ⊥
 [alias] analysing function: mkstemp
-[alias] May-aliases at the end of function mkstemp:
-  <Bot>
+[alias] May-aliases at the end of function mkstemp: ⊥
 [alias] analysing function: mkstemps
-[alias] May-aliases at the end of function mkstemps:
-  <Bot>
+[alias] May-aliases at the end of function mkstemps: ⊥
 [alias] analysing function: mrand48
-[alias] May-aliases at the end of function mrand48:
-  <Bot>
+[alias] May-aliases at the end of function mrand48: ⊥
 [alias] analysing function: nrand48
-[alias] May-aliases at the end of function nrand48:
-  <Bot>
+[alias] May-aliases at the end of function nrand48: ⊥
 [alias] analysing function: posix_memalign
-[alias] May-aliases at the end of function posix_memalign:
-  <Bot>
+[alias] May-aliases at the end of function posix_memalign: ⊥
 [alias] analysing function: putenv
-[alias] May-aliases at the end of function putenv:
-  <Bot>
+[alias] May-aliases at the end of function putenv: ⊥
 [alias] analysing function: qsort
-[alias] May-aliases at the end of function qsort:
-  <Bot>
+[alias] May-aliases at the end of function qsort: ⊥
 [alias] analysing function: quick_exit
-[alias] May-aliases at the end of function quick_exit:
-  <Bot>
+[alias] May-aliases at the end of function quick_exit: ⊥
 [alias] analysing function: rand
-[alias] May-aliases at the end of function rand:
-  <Bot>
+[alias] May-aliases at the end of function rand: ⊥
 [alias] analysing function: random
-[alias] May-aliases at the end of function random:
-  <Bot>
+[alias] May-aliases at the end of function random: ⊥
 [alias] analysing function: realloc
-[alias] May-aliases at the end of function realloc:
-  <Bot>
+[alias] May-aliases at the end of function realloc: ⊥
 [alias] analysing function: reallocarray
-[alias] May-aliases at the end of function reallocarray:
-  <Bot>
+[alias] May-aliases at the end of function reallocarray: ⊥
 [alias] analysing function: seed48
-[alias] May-aliases at the end of function seed48:
-  <Bot>
+[alias] May-aliases at the end of function seed48: ⊥
 [alias] analysing function: setenv
-[alias] May-aliases at the end of function setenv:
-  <Bot>
+[alias] May-aliases at the end of function setenv: ⊥
 [alias] analysing function: srand
-[alias] May-aliases at the end of function srand:
-  <Bot>
+[alias] May-aliases at the end of function srand: ⊥
 [alias] analysing function: srand48
-[alias] May-aliases at the end of function srand48:
-  <Bot>
+[alias] May-aliases at the end of function srand48: ⊥
 [alias] analysing function: srandom
-[alias] May-aliases at the end of function srandom:
-  <Bot>
+[alias] May-aliases at the end of function srandom: ⊥
 [alias] analysing function: strtod
-[alias] May-aliases at the end of function strtod:
-  <Bot>
+[alias] May-aliases at the end of function strtod: ⊥
 [alias] analysing function: strtof
-[alias] May-aliases at the end of function strtof:
-  <Bot>
+[alias] May-aliases at the end of function strtof: ⊥
 [alias] analysing function: strtol
-[alias] May-aliases at the end of function strtol:
-  <Bot>
+[alias] May-aliases at the end of function strtol: ⊥
 [alias] analysing function: strtold
-[alias] May-aliases at the end of function strtold:
-  <Bot>
+[alias] May-aliases at the end of function strtold: ⊥
 [alias] analysing function: strtoll
-[alias] May-aliases at the end of function strtoll:
-  <Bot>
+[alias] May-aliases at the end of function strtoll: ⊥
 [alias] analysing function: strtoul
-[alias] May-aliases at the end of function strtoul:
-  <Bot>
+[alias] May-aliases at the end of function strtoul: ⊥
 [alias] analysing function: strtoull
-[alias] May-aliases at the end of function strtoull:
-  <Bot>
+[alias] May-aliases at the end of function strtoull: ⊥
 [alias] analysing function: system
-[alias] May-aliases at the end of function system:
-  <Bot>
+[alias] May-aliases at the end of function system: ⊥
 [alias] analysing function: unsetenv
-[alias] May-aliases at the end of function unsetenv:
-  <Bot>
+[alias] May-aliases at the end of function unsetenv: ⊥
 [alias] analysing function: wcstombs
-[alias] May-aliases at the end of function wcstombs:
-  <Bot>
+[alias] May-aliases at the end of function wcstombs: ⊥
 [alias] analysing function: wctomb
-[alias] May-aliases at the end of function wctomb:
-  <Bot>
+[alias] May-aliases at the end of function wctomb: ⊥
diff --git a/src/plugins/alias/tests/offsets/oracle/nested2.res.oracle b/src/plugins/alias/tests/offsets/oracle/nested2.res.oracle
index 2ca416be7fc..7167c4aebae 100644
--- a/src/plugins/alias/tests/offsets/oracle/nested2.res.oracle
+++ b/src/plugins/alias/tests/offsets/oracle/nested2.res.oracle
@@ -1,218 +1,151 @@
 [kernel] Parsing nested2.c (with preprocessing)
 [alias] analysing function: _Exit
-[alias] May-aliases at the end of function _Exit:
-  <Bot>
+[alias] May-aliases at the end of function _Exit: ⊥
 [alias] analysing function: abort
-[alias] May-aliases at the end of function abort:
-  <Bot>
+[alias] May-aliases at the end of function abort: ⊥
 [alias] analysing function: abs
-[alias] May-aliases at the end of function abs:
-  <Bot>
+[alias] May-aliases at the end of function abs: ⊥
 [alias] analysing function: at_quick_exit
-[alias] May-aliases at the end of function at_quick_exit:
-  <Bot>
+[alias] May-aliases at the end of function at_quick_exit: ⊥
 [alias] analysing function: atexit
-[alias] May-aliases at the end of function atexit:
-  <Bot>
+[alias] May-aliases at the end of function atexit: ⊥
 [alias] analysing function: atof
-[alias] May-aliases at the end of function atof:
-  <Bot>
+[alias] May-aliases at the end of function atof: ⊥
 [alias] analysing function: atoi
-[alias] May-aliases at the end of function atoi:
-  <Bot>
+[alias] May-aliases at the end of function atoi: ⊥
 [alias] analysing function: atol
-[alias] May-aliases at the end of function atol:
-  <Bot>
+[alias] May-aliases at the end of function atol: ⊥
 [alias] analysing function: atoll
-[alias] May-aliases at the end of function atoll:
-  <Bot>
+[alias] May-aliases at the end of function atoll: ⊥
 [alias] analysing function: bsearch
-[alias] May-aliases at the end of function bsearch:
-  <Bot>
+[alias] May-aliases at the end of function bsearch: ⊥
 [alias] analysing function: calloc
-[alias] May-aliases at the end of function calloc:
-  <Bot>
+[alias] May-aliases at the end of function calloc: ⊥
 [alias] analysing function: div
-[alias] May-aliases at the end of function div:
-  <Bot>
+[alias] May-aliases at the end of function div: ⊥
 [alias] analysing function: drand48
-[alias] May-aliases at the end of function drand48:
-  <Bot>
+[alias] May-aliases at the end of function drand48: ⊥
 [alias] analysing function: erand48
-[alias] May-aliases at the end of function erand48:
-  <Bot>
+[alias] May-aliases at the end of function erand48: ⊥
 [alias] analysing function: exit
-[alias] May-aliases at the end of function exit:
-  <Bot>
+[alias] May-aliases at the end of function exit: ⊥
 [alias] analysing function: free
-[alias] May-aliases at the end of function free:
-  <Bot>
+[alias] May-aliases at the end of function free: ⊥
 [alias] analysing function: getenv
-[alias] May-aliases at the end of function getenv:
-  <Bot>
+[alias] May-aliases at the end of function getenv: ⊥
 [alias] analysing function: jrand48
-[alias] May-aliases at the end of function jrand48:
-  <Bot>
+[alias] May-aliases at the end of function jrand48: ⊥
 [alias] analysing function: labs
-[alias] May-aliases at the end of function labs:
-  <Bot>
+[alias] May-aliases at the end of function labs: ⊥
 [alias] analysing function: lcong48
-[alias] May-aliases at the end of function lcong48:
-  <Bot>
+[alias] May-aliases at the end of function lcong48: ⊥
 [alias] analysing function: ldiv
-[alias] May-aliases at the end of function ldiv:
-  <Bot>
+[alias] May-aliases at the end of function ldiv: ⊥
 [alias] analysing function: llabs
-[alias] May-aliases at the end of function llabs:
-  <Bot>
+[alias] May-aliases at the end of function llabs: ⊥
 [alias] analysing function: lldiv
-[alias] May-aliases at the end of function lldiv:
-  <Bot>
+[alias] May-aliases at the end of function lldiv: ⊥
 [alias] analysing function: lrand48
-[alias] May-aliases at the end of function lrand48:
-  <Bot>
+[alias] May-aliases at the end of function lrand48: ⊥
 [alias] analysing function: main
 [alias] analysing instruction: st_1_t x1 = {.a = 0, .b = 1};
-[alias] May-aliases at the end of instruction: st_1_t x1 = {.a = 0, .b = 1};
-  <none>
+[alias] May-aliases after instruction  st_1_t x1 = {.a = 0, .b = 1};  are  <none>
 [alias] analysing instruction: st_1_t x2 = {.a = 2, .b = 3};
-[alias] May-aliases at the end of instruction: st_1_t x2 = {.a = 2, .b = 3};
-  <none>
+[alias] May-aliases after instruction  st_1_t x2 = {.a = 2, .b = 3};  are  <none>
 [alias] analysing instruction: st_2_t *z1 = malloc(sizeof(st_2_t));
-[alias] May-aliases at the end of instruction: st_2_t *z1 = malloc(sizeof(st_2_t));
+[alias] May-aliases after instruction  st_2_t *z1 = malloc(sizeof(st_2_t));  are
   <none>
 [alias] analysing instruction: st_3_t *t = malloc(sizeof(st_3_t));
-[alias] May-aliases at the end of instruction: st_3_t *t = malloc(sizeof(st_3_t));
+[alias] May-aliases after instruction  st_3_t *t = malloc(sizeof(st_3_t));  are
   <none>
 [alias] analysing instruction: int *a = malloc(sizeof(int));
-[alias] May-aliases at the end of instruction: int *a = malloc(sizeof(int));
-  <none>
+[alias] May-aliases after instruction  int *a = malloc(sizeof(int));  are  <none>
 [alias] analysing instruction: *a = 0;
-[alias] May-aliases at the end of instruction: *a = 0;
-  <none>
+[alias] May-aliases after instruction  *a = 0;  are  <none>
 [alias] analysing instruction: z1->s[0] = (struct struct_1_t *)(& x1);
 [alias:unsafe-cast] nested2.c:42: Warning: 
   unsafe cast from st_1_t * to struct struct_1_t *
-[alias] May-aliases at the end of instruction: z1->s[0] = (struct struct_1_t *)(& x1);
+[alias] May-aliases after instruction  z1->s[0] = (struct struct_1_t *)(& x1);  are
   <none>
 [alias] analysing instruction: z1->s[1] = (struct struct_1_t *)(& x2);
 [alias:unsafe-cast] nested2.c:43: Warning: 
   unsafe cast from st_1_t * to struct struct_1_t *
-[alias] May-aliases at the end of instruction: z1->s[1] = (struct struct_1_t *)(& x2);
+[alias] May-aliases after instruction  z1->s[1] = (struct struct_1_t *)(& x2);  are
   <none>
 [alias] analysing instruction: z1->c = a;
-[alias] May-aliases at the end of instruction: z1->c = a;
-  {z1->c, a} are aliased
+[alias] May-aliases after instruction  z1->c = a;  are  {z1->c, a}
 [alias] analysing instruction: t->t = (struct struct_2_t *)z1;
 [alias:unsafe-cast] nested2.c:45: Warning: 
   unsafe cast from st_2_t * to struct struct_2_t *
-[alias] May-aliases at the end of instruction: t->t = (struct struct_2_t *)z1;
-  {t->t, z1} are aliased
-  {z1->c, a} are aliased
+[alias] May-aliases after instruction  t->t = (struct struct_2_t *)z1;  are
+  {t->t, z1}  {z1->c, a}
 [alias] analysing instruction: t->d = a;
-[alias] May-aliases at the end of instruction: t->d = a;
-  {t->t, z1} are aliased
-  {z1->c, t->d, a} are aliased
+[alias] May-aliases after instruction  t->d = a;  are  {t->t, z1}  {z1->c, t->d, a}
 [alias] analysing instruction: __retres = 0;
-[alias] May-aliases at the end of instruction: __retres = 0;
-  {t->t, z1} are aliased
-  {z1->c, t->d, a} are aliased
-[alias] May-aliases at the end of function main:
-  {t->t, z1} are aliased
-  {z1->c, t->d, a} are aliased
+[alias] May-aliases after instruction  __retres = 0;  are
+  {t->t, z1}  {z1->c, t->d, a}
+[alias] May-aliases at the end of function main: {t->t, z1}  {z1->c, t->d, a}
 [alias] analysing function: malloc
-[alias] May-aliases at the end of function malloc:
-  <Bot>
+[alias] May-aliases at the end of function malloc: ⊥
 [alias] analysing function: mblen
-[alias] May-aliases at the end of function mblen:
-  <Bot>
+[alias] May-aliases at the end of function mblen: ⊥
 [alias] analysing function: mbstowcs
-[alias] May-aliases at the end of function mbstowcs:
-  <Bot>
+[alias] May-aliases at the end of function mbstowcs: ⊥
 [alias] analysing function: mbtowc
-[alias] May-aliases at the end of function mbtowc:
-  <Bot>
+[alias] May-aliases at the end of function mbtowc: ⊥
 [alias] analysing function: mkstemp
-[alias] May-aliases at the end of function mkstemp:
-  <Bot>
+[alias] May-aliases at the end of function mkstemp: ⊥
 [alias] analysing function: mkstemps
-[alias] May-aliases at the end of function mkstemps:
-  <Bot>
+[alias] May-aliases at the end of function mkstemps: ⊥
 [alias] analysing function: mrand48
-[alias] May-aliases at the end of function mrand48:
-  <Bot>
+[alias] May-aliases at the end of function mrand48: ⊥
 [alias] analysing function: nrand48
-[alias] May-aliases at the end of function nrand48:
-  <Bot>
+[alias] May-aliases at the end of function nrand48: ⊥
 [alias] analysing function: posix_memalign
-[alias] May-aliases at the end of function posix_memalign:
-  <Bot>
+[alias] May-aliases at the end of function posix_memalign: ⊥
 [alias] analysing function: putenv
-[alias] May-aliases at the end of function putenv:
-  <Bot>
+[alias] May-aliases at the end of function putenv: ⊥
 [alias] analysing function: qsort
-[alias] May-aliases at the end of function qsort:
-  <Bot>
+[alias] May-aliases at the end of function qsort: ⊥
 [alias] analysing function: quick_exit
-[alias] May-aliases at the end of function quick_exit:
-  <Bot>
+[alias] May-aliases at the end of function quick_exit: ⊥
 [alias] analysing function: rand
-[alias] May-aliases at the end of function rand:
-  <Bot>
+[alias] May-aliases at the end of function rand: ⊥
 [alias] analysing function: random
-[alias] May-aliases at the end of function random:
-  <Bot>
+[alias] May-aliases at the end of function random: ⊥
 [alias] analysing function: realloc
-[alias] May-aliases at the end of function realloc:
-  <Bot>
+[alias] May-aliases at the end of function realloc: ⊥
 [alias] analysing function: reallocarray
-[alias] May-aliases at the end of function reallocarray:
-  <Bot>
+[alias] May-aliases at the end of function reallocarray: ⊥
 [alias] analysing function: seed48
-[alias] May-aliases at the end of function seed48:
-  <Bot>
+[alias] May-aliases at the end of function seed48: ⊥
 [alias] analysing function: setenv
-[alias] May-aliases at the end of function setenv:
-  <Bot>
+[alias] May-aliases at the end of function setenv: ⊥
 [alias] analysing function: srand
-[alias] May-aliases at the end of function srand:
-  <Bot>
+[alias] May-aliases at the end of function srand: ⊥
 [alias] analysing function: srand48
-[alias] May-aliases at the end of function srand48:
-  <Bot>
+[alias] May-aliases at the end of function srand48: ⊥
 [alias] analysing function: srandom
-[alias] May-aliases at the end of function srandom:
-  <Bot>
+[alias] May-aliases at the end of function srandom: ⊥
 [alias] analysing function: strtod
-[alias] May-aliases at the end of function strtod:
-  <Bot>
+[alias] May-aliases at the end of function strtod: ⊥
 [alias] analysing function: strtof
-[alias] May-aliases at the end of function strtof:
-  <Bot>
+[alias] May-aliases at the end of function strtof: ⊥
 [alias] analysing function: strtol
-[alias] May-aliases at the end of function strtol:
-  <Bot>
+[alias] May-aliases at the end of function strtol: ⊥
 [alias] analysing function: strtold
-[alias] May-aliases at the end of function strtold:
-  <Bot>
+[alias] May-aliases at the end of function strtold: ⊥
 [alias] analysing function: strtoll
-[alias] May-aliases at the end of function strtoll:
-  <Bot>
+[alias] May-aliases at the end of function strtoll: ⊥
 [alias] analysing function: strtoul
-[alias] May-aliases at the end of function strtoul:
-  <Bot>
+[alias] May-aliases at the end of function strtoul: ⊥
 [alias] analysing function: strtoull
-[alias] May-aliases at the end of function strtoull:
-  <Bot>
+[alias] May-aliases at the end of function strtoull: ⊥
 [alias] analysing function: system
-[alias] May-aliases at the end of function system:
-  <Bot>
+[alias] May-aliases at the end of function system: ⊥
 [alias] analysing function: unsetenv
-[alias] May-aliases at the end of function unsetenv:
-  <Bot>
+[alias] May-aliases at the end of function unsetenv: ⊥
 [alias] analysing function: wcstombs
-[alias] May-aliases at the end of function wcstombs:
-  <Bot>
+[alias] May-aliases at the end of function wcstombs: ⊥
 [alias] analysing function: wctomb
-[alias] May-aliases at the end of function wctomb:
-  <Bot>
+[alias] May-aliases at the end of function wctomb: ⊥
diff --git a/src/plugins/alias/tests/offsets/oracle/structure1.res.oracle b/src/plugins/alias/tests/offsets/oracle/structure1.res.oracle
index ca2b271f23e..6fab8c1f99d 100644
--- a/src/plugins/alias/tests/offsets/oracle/structure1.res.oracle
+++ b/src/plugins/alias/tests/offsets/oracle/structure1.res.oracle
@@ -1,27 +1,19 @@
 [kernel] Parsing structure1.c (with preprocessing)
 [alias] analysing function: main
 [alias] analysing instruction: st_1_t x = {.a = 0, .b = 1};
-[alias] May-aliases at the end of instruction: st_1_t x = {.a = 0, .b = 1};
-  <none>
+[alias] May-aliases after instruction  st_1_t x = {.a = 0, .b = 1};  are  <none>
 [alias] analysing instruction: st_2_t y = {.a = 3, .c = 4};
-[alias] May-aliases at the end of instruction: st_2_t y = {.a = 3, .c = 4};
-  <none>
+[alias] May-aliases after instruction  st_2_t y = {.a = 3, .c = 4};  are  <none>
 [alias] analysing instruction: st_1_t *p_x = & x;
-[alias] May-aliases at the end of instruction: st_1_t *p_x = & x;
-  <none>
+[alias] May-aliases after instruction  st_1_t *p_x = & x;  are  <none>
 [alias] analysing instruction: st_2_t *p_y = & y;
-[alias] May-aliases at the end of instruction: st_2_t *p_y = & y;
-  <none>
+[alias] May-aliases after instruction  st_2_t *p_y = & y;  are  <none>
 [alias] analysing instruction: p_x->a = 3;
-[alias] May-aliases at the end of instruction: p_x->a = 3;
-  <none>
+[alias] May-aliases after instruction  p_x->a = 3;  are  <none>
 [alias] analysing instruction: p_x = (st_1_t *)p_y;
 [alias:unsafe-cast] structure1.c:28: Warning: 
   unsafe cast from st_2_t * to st_1_t *
-[alias] May-aliases at the end of instruction: p_x = (st_1_t *)p_y;
-  {p_x, p_y} are aliased
+[alias] May-aliases after instruction  p_x = (st_1_t *)p_y;  are  {p_x, p_y}
 [alias] analysing instruction: __retres = 0;
-[alias] May-aliases at the end of instruction: __retres = 0;
-  {p_x, p_y} are aliased
-[alias] May-aliases at the end of function main:
-  {p_x, p_y} are aliased
+[alias] May-aliases after instruction  __retres = 0;  are  {p_x, p_y}
+[alias] May-aliases at the end of function main: {p_x, p_y}
diff --git a/src/plugins/alias/tests/offsets/oracle/structure2.res.oracle b/src/plugins/alias/tests/offsets/oracle/structure2.res.oracle
index be92c249a6a..2b2f7ecd4e5 100644
--- a/src/plugins/alias/tests/offsets/oracle/structure2.res.oracle
+++ b/src/plugins/alias/tests/offsets/oracle/structure2.res.oracle
@@ -1,25 +1,19 @@
 [kernel] Parsing structure2.c (with preprocessing)
 [alias] analysing function: main
 [alias] analysing instruction: st_1_t x1 = {.a = 0, .b = 1};
-[alias] May-aliases at the end of instruction: st_1_t x1 = {.a = 0, .b = 1};
-  <none>
+[alias] May-aliases after instruction  st_1_t x1 = {.a = 0, .b = 1};  are  <none>
 [alias] analysing instruction: st_1_t x2 = {.a = 1, .b = 2};
-[alias] May-aliases at the end of instruction: st_1_t x2 = {.a = 1, .b = 2};
-  <none>
+[alias] May-aliases after instruction  st_1_t x2 = {.a = 1, .b = 2};  are  <none>
 [alias] analysing instruction: st_2_t y = {.s = (struct struct_1_t *)(& x1), .c = 4};
 [alias:unsafe-cast] structure2.c:21: Warning: 
   unsafe cast from st_1_t * to struct struct_1_t *
-[alias] May-aliases at the end of instruction: st_2_t y =
-                                           {.s = (struct struct_1_t *)(& x1),
-                                            .c = 4};
-  <none>
+[alias] May-aliases after instruction
+  st_2_t y = {.s = (struct struct_1_t *)(& x1), .c = 4};  are  <none>
 [alias] analysing instruction: y.s = (struct struct_1_t *)(& x2);
 [alias:unsafe-cast] structure2.c:23: Warning: 
   unsafe cast from st_1_t * to struct struct_1_t *
-[alias] May-aliases at the end of instruction: y.s = (struct struct_1_t *)(& x2);
+[alias] May-aliases after instruction  y.s = (struct struct_1_t *)(& x2);  are
   <none>
 [alias] analysing instruction: __retres = 0;
-[alias] May-aliases at the end of instruction: __retres = 0;
-  <none>
-[alias] May-aliases at the end of function main:
-  <none>
+[alias] May-aliases after instruction  __retres = 0;  are  <none>
+[alias] May-aliases at the end of function main: <none>
diff --git a/src/plugins/alias/tests/offsets/oracle/structure3.res.oracle b/src/plugins/alias/tests/offsets/oracle/structure3.res.oracle
index cf1fbc3b1b7..7ec86d402cb 100644
--- a/src/plugins/alias/tests/offsets/oracle/structure3.res.oracle
+++ b/src/plugins/alias/tests/offsets/oracle/structure3.res.oracle
@@ -1,44 +1,33 @@
 [kernel] Parsing structure3.c (with preprocessing)
 [alias] analysing function: main
 [alias] analysing instruction: st_1_t x1 = {.a = 0, .b = 1};
-[alias] May-aliases at the end of instruction: st_1_t x1 = {.a = 0, .b = 1};
-  <none>
+[alias] May-aliases after instruction  st_1_t x1 = {.a = 0, .b = 1};  are  <none>
 [alias] analysing instruction: st_1_t x2 = {.a = 1, .b = 2};
-[alias] May-aliases at the end of instruction: st_1_t x2 = {.a = 1, .b = 2};
-  <none>
-[alias] analysing instruction: st_2_t y1 =
-                           {.s = (struct struct_1_t *)(& x1), .c = 3};
+[alias] May-aliases after instruction  st_1_t x2 = {.a = 1, .b = 2};  are  <none>
+[alias] analysing instruction:
+  st_2_t y1 = {.s = (struct struct_1_t *)(& x1), .c = 3};
 [alias:unsafe-cast] structure3.c:31: Warning: 
   unsafe cast from st_1_t * to struct struct_1_t *
-[alias] May-aliases at the end of instruction: st_2_t y1 =
-                                           {.s = (struct struct_1_t *)(& x1),
-                                            .c = 3};
-  <none>
-[alias] analysing instruction: st_2_t y2 =
-                           {.s = (struct struct_1_t *)(& x2), .c = 4};
+[alias] May-aliases after instruction
+  st_2_t y1 = {.s = (struct struct_1_t *)(& x1), .c = 3};  are  <none>
+[alias] analysing instruction:
+  st_2_t y2 = {.s = (struct struct_1_t *)(& x2), .c = 4};
 [alias:unsafe-cast] structure3.c:32: Warning: 
   unsafe cast from st_1_t * to struct struct_1_t *
-[alias] May-aliases at the end of instruction: st_2_t y2 =
-                                           {.s = (struct struct_1_t *)(& x2),
-                                            .c = 4};
-  <none>
+[alias] May-aliases after instruction
+  st_2_t y2 = {.s = (struct struct_1_t *)(& x2), .c = 4};  are  <none>
 [alias] analysing instruction: st_3_t z = {.t = (struct struct_2_t *)(& y1), .d = 5};
 [alias:unsafe-cast] structure3.c:33: Warning: 
   unsafe cast from st_2_t * to struct struct_2_t *
-[alias] May-aliases at the end of instruction: st_3_t z =
-                                           {.t = (struct struct_2_t *)(& y1),
-                                            .d = 5};
-  <none>
+[alias] May-aliases after instruction
+  st_3_t z = {.t = (struct struct_2_t *)(& y1), .d = 5};  are  <none>
 [alias] analysing instruction: z.t = (struct struct_2_t *)(& y2);
 [alias:unsafe-cast] structure3.c:35: Warning: 
   unsafe cast from st_2_t * to struct struct_2_t *
-[alias] May-aliases at the end of instruction: z.t = (struct struct_2_t *)(& y2);
+[alias] May-aliases after instruction  z.t = (struct struct_2_t *)(& y2);  are
   <none>
 [alias] analysing instruction: y1.c = z.d;
-[alias] May-aliases at the end of instruction: y1.c = z.d;
-  <none>
+[alias] May-aliases after instruction  y1.c = z.d;  are  <none>
 [alias] analysing instruction: __retres = 0;
-[alias] May-aliases at the end of instruction: __retres = 0;
-  <none>
-[alias] May-aliases at the end of function main:
-  <none>
+[alias] May-aliases after instruction  __retres = 0;  are  <none>
+[alias] May-aliases at the end of function main: <none>
diff --git a/src/plugins/alias/tests/offsets/oracle/structure4.res.oracle b/src/plugins/alias/tests/offsets/oracle/structure4.res.oracle
index bf3fc7084f7..17d462a32e0 100644
--- a/src/plugins/alias/tests/offsets/oracle/structure4.res.oracle
+++ b/src/plugins/alias/tests/offsets/oracle/structure4.res.oracle
@@ -1,198 +1,136 @@
 [kernel] Parsing structure4.c (with preprocessing)
 [alias] analysing function: _Exit
-[alias] May-aliases at the end of function _Exit:
-  <Bot>
+[alias] May-aliases at the end of function _Exit: ⊥
 [alias] analysing function: abort
-[alias] May-aliases at the end of function abort:
-  <Bot>
+[alias] May-aliases at the end of function abort: ⊥
 [alias] analysing function: abs
-[alias] May-aliases at the end of function abs:
-  <Bot>
+[alias] May-aliases at the end of function abs: ⊥
 [alias] analysing function: at_quick_exit
-[alias] May-aliases at the end of function at_quick_exit:
-  <Bot>
+[alias] May-aliases at the end of function at_quick_exit: ⊥
 [alias] analysing function: atexit
-[alias] May-aliases at the end of function atexit:
-  <Bot>
+[alias] May-aliases at the end of function atexit: ⊥
 [alias] analysing function: atof
-[alias] May-aliases at the end of function atof:
-  <Bot>
+[alias] May-aliases at the end of function atof: ⊥
 [alias] analysing function: atoi
-[alias] May-aliases at the end of function atoi:
-  <Bot>
+[alias] May-aliases at the end of function atoi: ⊥
 [alias] analysing function: atol
-[alias] May-aliases at the end of function atol:
-  <Bot>
+[alias] May-aliases at the end of function atol: ⊥
 [alias] analysing function: atoll
-[alias] May-aliases at the end of function atoll:
-  <Bot>
+[alias] May-aliases at the end of function atoll: ⊥
 [alias] analysing function: bsearch
-[alias] May-aliases at the end of function bsearch:
-  <Bot>
+[alias] May-aliases at the end of function bsearch: ⊥
 [alias] analysing function: calloc
-[alias] May-aliases at the end of function calloc:
-  <Bot>
+[alias] May-aliases at the end of function calloc: ⊥
 [alias] analysing function: div
-[alias] May-aliases at the end of function div:
-  <Bot>
+[alias] May-aliases at the end of function div: ⊥
 [alias] analysing function: drand48
-[alias] May-aliases at the end of function drand48:
-  <Bot>
+[alias] May-aliases at the end of function drand48: ⊥
 [alias] analysing function: erand48
-[alias] May-aliases at the end of function erand48:
-  <Bot>
+[alias] May-aliases at the end of function erand48: ⊥
 [alias] analysing function: exit
-[alias] May-aliases at the end of function exit:
-  <Bot>
+[alias] May-aliases at the end of function exit: ⊥
 [alias] analysing function: free
-[alias] May-aliases at the end of function free:
-  <Bot>
+[alias] May-aliases at the end of function free: ⊥
 [alias] analysing function: getenv
-[alias] May-aliases at the end of function getenv:
-  <Bot>
+[alias] May-aliases at the end of function getenv: ⊥
 [alias] analysing function: jrand48
-[alias] May-aliases at the end of function jrand48:
-  <Bot>
+[alias] May-aliases at the end of function jrand48: ⊥
 [alias] analysing function: labs
-[alias] May-aliases at the end of function labs:
-  <Bot>
+[alias] May-aliases at the end of function labs: ⊥
 [alias] analysing function: lcong48
-[alias] May-aliases at the end of function lcong48:
-  <Bot>
+[alias] May-aliases at the end of function lcong48: ⊥
 [alias] analysing function: ldiv
-[alias] May-aliases at the end of function ldiv:
-  <Bot>
+[alias] May-aliases at the end of function ldiv: ⊥
 [alias] analysing function: llabs
-[alias] May-aliases at the end of function llabs:
-  <Bot>
+[alias] May-aliases at the end of function llabs: ⊥
 [alias] analysing function: lldiv
-[alias] May-aliases at the end of function lldiv:
-  <Bot>
+[alias] May-aliases at the end of function lldiv: ⊥
 [alias] analysing function: lrand48
-[alias] May-aliases at the end of function lrand48:
-  <Bot>
+[alias] May-aliases at the end of function lrand48: ⊥
 [alias] analysing function: main
 [alias] analysing instruction: st_1_t x1 = {.a = 0, .b = 1};
-[alias] May-aliases at the end of instruction: st_1_t x1 = {.a = 0, .b = 1};
-  <none>
+[alias] May-aliases after instruction  st_1_t x1 = {.a = 0, .b = 1};  are  <none>
 [alias] analysing instruction: st_1_t x2 = {.a = 1, .b = 2};
-[alias] May-aliases at the end of instruction: st_1_t x2 = {.a = 1, .b = 2};
-  <none>
+[alias] May-aliases after instruction  st_1_t x2 = {.a = 1, .b = 2};  are  <none>
 [alias] analysing instruction: st_1_t *y1 = malloc(sizeof(st_1_t));
-[alias] May-aliases at the end of instruction: st_1_t *y1 = malloc(sizeof(st_1_t));
+[alias] May-aliases after instruction  st_1_t *y1 = malloc(sizeof(st_1_t));  are
   <none>
 [alias] analysing instruction: st_2_t *z = malloc(sizeof(st_2_t));
-[alias] May-aliases at the end of instruction: st_2_t *z = malloc(sizeof(st_2_t));
+[alias] May-aliases after instruction  st_2_t *z = malloc(sizeof(st_2_t));  are
   <none>
 [alias] analysing instruction: y1 = & x1;
-[alias] May-aliases at the end of instruction: y1 = & x1;
-  <none>
+[alias] May-aliases after instruction  y1 = & x1;  are  <none>
 [alias] analysing instruction: z->s = (struct struct_1_t *)y1;
 [alias:unsafe-cast] structure4.c:37: Warning: 
   unsafe cast from st_1_t * to struct struct_1_t *
-[alias] May-aliases at the end of instruction: z->s = (struct struct_1_t *)y1;
-  {z->s, y1} are aliased
+[alias] May-aliases after instruction  z->s = (struct struct_1_t *)y1;  are
+  {z->s, y1}
 [alias] analysing instruction: z->c = 6;
-[alias] May-aliases at the end of instruction: z->c = 6;
-  {z->s, y1} are aliased
+[alias] May-aliases after instruction  z->c = 6;  are  {z->s, y1}
 [alias] analysing instruction: __retres = 0;
-[alias] May-aliases at the end of instruction: __retres = 0;
-  {z->s, y1} are aliased
-[alias] May-aliases at the end of function main:
-  {z->s, y1} are aliased
+[alias] May-aliases after instruction  __retres = 0;  are  {z->s, y1}
+[alias] May-aliases at the end of function main: {z->s, y1}
 [alias] analysing function: malloc
-[alias] May-aliases at the end of function malloc:
-  <Bot>
+[alias] May-aliases at the end of function malloc: ⊥
 [alias] analysing function: mblen
-[alias] May-aliases at the end of function mblen:
-  <Bot>
+[alias] May-aliases at the end of function mblen: ⊥
 [alias] analysing function: mbstowcs
-[alias] May-aliases at the end of function mbstowcs:
-  <Bot>
+[alias] May-aliases at the end of function mbstowcs: ⊥
 [alias] analysing function: mbtowc
-[alias] May-aliases at the end of function mbtowc:
-  <Bot>
+[alias] May-aliases at the end of function mbtowc: ⊥
 [alias] analysing function: mkstemp
-[alias] May-aliases at the end of function mkstemp:
-  <Bot>
+[alias] May-aliases at the end of function mkstemp: ⊥
 [alias] analysing function: mkstemps
-[alias] May-aliases at the end of function mkstemps:
-  <Bot>
+[alias] May-aliases at the end of function mkstemps: ⊥
 [alias] analysing function: mrand48
-[alias] May-aliases at the end of function mrand48:
-  <Bot>
+[alias] May-aliases at the end of function mrand48: ⊥
 [alias] analysing function: nrand48
-[alias] May-aliases at the end of function nrand48:
-  <Bot>
+[alias] May-aliases at the end of function nrand48: ⊥
 [alias] analysing function: posix_memalign
-[alias] May-aliases at the end of function posix_memalign:
-  <Bot>
+[alias] May-aliases at the end of function posix_memalign: ⊥
 [alias] analysing function: putenv
-[alias] May-aliases at the end of function putenv:
-  <Bot>
+[alias] May-aliases at the end of function putenv: ⊥
 [alias] analysing function: qsort
-[alias] May-aliases at the end of function qsort:
-  <Bot>
+[alias] May-aliases at the end of function qsort: ⊥
 [alias] analysing function: quick_exit
-[alias] May-aliases at the end of function quick_exit:
-  <Bot>
+[alias] May-aliases at the end of function quick_exit: ⊥
 [alias] analysing function: rand
-[alias] May-aliases at the end of function rand:
-  <Bot>
+[alias] May-aliases at the end of function rand: ⊥
 [alias] analysing function: random
-[alias] May-aliases at the end of function random:
-  <Bot>
+[alias] May-aliases at the end of function random: ⊥
 [alias] analysing function: realloc
-[alias] May-aliases at the end of function realloc:
-  <Bot>
+[alias] May-aliases at the end of function realloc: ⊥
 [alias] analysing function: reallocarray
-[alias] May-aliases at the end of function reallocarray:
-  <Bot>
+[alias] May-aliases at the end of function reallocarray: ⊥
 [alias] analysing function: seed48
-[alias] May-aliases at the end of function seed48:
-  <Bot>
+[alias] May-aliases at the end of function seed48: ⊥
 [alias] analysing function: setenv
-[alias] May-aliases at the end of function setenv:
-  <Bot>
+[alias] May-aliases at the end of function setenv: ⊥
 [alias] analysing function: srand
-[alias] May-aliases at the end of function srand:
-  <Bot>
+[alias] May-aliases at the end of function srand: ⊥
 [alias] analysing function: srand48
-[alias] May-aliases at the end of function srand48:
-  <Bot>
+[alias] May-aliases at the end of function srand48: ⊥
 [alias] analysing function: srandom
-[alias] May-aliases at the end of function srandom:
-  <Bot>
+[alias] May-aliases at the end of function srandom: ⊥
 [alias] analysing function: strtod
-[alias] May-aliases at the end of function strtod:
-  <Bot>
+[alias] May-aliases at the end of function strtod: ⊥
 [alias] analysing function: strtof
-[alias] May-aliases at the end of function strtof:
-  <Bot>
+[alias] May-aliases at the end of function strtof: ⊥
 [alias] analysing function: strtol
-[alias] May-aliases at the end of function strtol:
-  <Bot>
+[alias] May-aliases at the end of function strtol: ⊥
 [alias] analysing function: strtold
-[alias] May-aliases at the end of function strtold:
-  <Bot>
+[alias] May-aliases at the end of function strtold: ⊥
 [alias] analysing function: strtoll
-[alias] May-aliases at the end of function strtoll:
-  <Bot>
+[alias] May-aliases at the end of function strtoll: ⊥
 [alias] analysing function: strtoul
-[alias] May-aliases at the end of function strtoul:
-  <Bot>
+[alias] May-aliases at the end of function strtoul: ⊥
 [alias] analysing function: strtoull
-[alias] May-aliases at the end of function strtoull:
-  <Bot>
+[alias] May-aliases at the end of function strtoull: ⊥
 [alias] analysing function: system
-[alias] May-aliases at the end of function system:
-  <Bot>
+[alias] May-aliases at the end of function system: ⊥
 [alias] analysing function: unsetenv
-[alias] May-aliases at the end of function unsetenv:
-  <Bot>
+[alias] May-aliases at the end of function unsetenv: ⊥
 [alias] analysing function: wcstombs
-[alias] May-aliases at the end of function wcstombs:
-  <Bot>
+[alias] May-aliases at the end of function wcstombs: ⊥
 [alias] analysing function: wctomb
-[alias] May-aliases at the end of function wctomb:
-  <Bot>
+[alias] May-aliases at the end of function wctomb: ⊥
diff --git a/src/plugins/alias/tests/offsets/oracle/structure5.res.oracle b/src/plugins/alias/tests/offsets/oracle/structure5.res.oracle
index 135933b7245..6ab3b847890 100644
--- a/src/plugins/alias/tests/offsets/oracle/structure5.res.oracle
+++ b/src/plugins/alias/tests/offsets/oracle/structure5.res.oracle
@@ -1,224 +1,153 @@
 [kernel] Parsing structure5.c (with preprocessing)
 [alias] analysing function: _Exit
-[alias] May-aliases at the end of function _Exit:
-  <Bot>
+[alias] May-aliases at the end of function _Exit: ⊥
 [alias] analysing function: abort
-[alias] May-aliases at the end of function abort:
-  <Bot>
+[alias] May-aliases at the end of function abort: ⊥
 [alias] analysing function: abs
-[alias] May-aliases at the end of function abs:
-  <Bot>
+[alias] May-aliases at the end of function abs: ⊥
 [alias] analysing function: at_quick_exit
-[alias] May-aliases at the end of function at_quick_exit:
-  <Bot>
+[alias] May-aliases at the end of function at_quick_exit: ⊥
 [alias] analysing function: atexit
-[alias] May-aliases at the end of function atexit:
-  <Bot>
+[alias] May-aliases at the end of function atexit: ⊥
 [alias] analysing function: atof
-[alias] May-aliases at the end of function atof:
-  <Bot>
+[alias] May-aliases at the end of function atof: ⊥
 [alias] analysing function: atoi
-[alias] May-aliases at the end of function atoi:
-  <Bot>
+[alias] May-aliases at the end of function atoi: ⊥
 [alias] analysing function: atol
-[alias] May-aliases at the end of function atol:
-  <Bot>
+[alias] May-aliases at the end of function atol: ⊥
 [alias] analysing function: atoll
-[alias] May-aliases at the end of function atoll:
-  <Bot>
+[alias] May-aliases at the end of function atoll: ⊥
 [alias] analysing function: bsearch
-[alias] May-aliases at the end of function bsearch:
-  <Bot>
+[alias] May-aliases at the end of function bsearch: ⊥
 [alias] analysing function: calloc
-[alias] May-aliases at the end of function calloc:
-  <Bot>
+[alias] May-aliases at the end of function calloc: ⊥
 [alias] analysing function: div
-[alias] May-aliases at the end of function div:
-  <Bot>
+[alias] May-aliases at the end of function div: ⊥
 [alias] analysing function: drand48
-[alias] May-aliases at the end of function drand48:
-  <Bot>
+[alias] May-aliases at the end of function drand48: ⊥
 [alias] analysing function: erand48
-[alias] May-aliases at the end of function erand48:
-  <Bot>
+[alias] May-aliases at the end of function erand48: ⊥
 [alias] analysing function: exit
-[alias] May-aliases at the end of function exit:
-  <Bot>
+[alias] May-aliases at the end of function exit: ⊥
 [alias] analysing function: free
-[alias] May-aliases at the end of function free:
-  <Bot>
+[alias] May-aliases at the end of function free: ⊥
 [alias] analysing function: getenv
-[alias] May-aliases at the end of function getenv:
-  <Bot>
+[alias] May-aliases at the end of function getenv: ⊥
 [alias] analysing function: jrand48
-[alias] May-aliases at the end of function jrand48:
-  <Bot>
+[alias] May-aliases at the end of function jrand48: ⊥
 [alias] analysing function: labs
-[alias] May-aliases at the end of function labs:
-  <Bot>
+[alias] May-aliases at the end of function labs: ⊥
 [alias] analysing function: lcong48
-[alias] May-aliases at the end of function lcong48:
-  <Bot>
+[alias] May-aliases at the end of function lcong48: ⊥
 [alias] analysing function: ldiv
-[alias] May-aliases at the end of function ldiv:
-  <Bot>
+[alias] May-aliases at the end of function ldiv: ⊥
 [alias] analysing function: llabs
-[alias] May-aliases at the end of function llabs:
-  <Bot>
+[alias] May-aliases at the end of function llabs: ⊥
 [alias] analysing function: lldiv
-[alias] May-aliases at the end of function lldiv:
-  <Bot>
+[alias] May-aliases at the end of function lldiv: ⊥
 [alias] analysing function: lrand48
-[alias] May-aliases at the end of function lrand48:
-  <Bot>
+[alias] May-aliases at the end of function lrand48: ⊥
 [alias] analysing function: main
 [alias] analysing instruction: st_1_t x1 = {.a = 0, .b = 1};
-[alias] May-aliases at the end of instruction: st_1_t x1 = {.a = 0, .b = 1};
-  <none>
+[alias] May-aliases after instruction  st_1_t x1 = {.a = 0, .b = 1};  are  <none>
 [alias] analysing instruction: st_1_t x2 = {.a = 1, .b = 2};
-[alias] May-aliases at the end of instruction: st_1_t x2 = {.a = 1, .b = 2};
-  <none>
+[alias] May-aliases after instruction  st_1_t x2 = {.a = 1, .b = 2};  are  <none>
 [alias] analysing instruction: st_1_t *y1 = malloc(sizeof(st_1_t));
-[alias] May-aliases at the end of instruction: st_1_t *y1 = malloc(sizeof(st_1_t));
+[alias] May-aliases after instruction  st_1_t *y1 = malloc(sizeof(st_1_t));  are
   <none>
 [alias] analysing instruction: st_2_t *z = malloc(sizeof(st_2_t));
-[alias] May-aliases at the end of instruction: st_2_t *z = malloc(sizeof(st_2_t));
+[alias] May-aliases after instruction  st_2_t *z = malloc(sizeof(st_2_t));  are
   <none>
 [alias] analysing instruction: st_3_t *t = malloc(sizeof(st_3_t));
-[alias] May-aliases at the end of instruction: st_3_t *t = malloc(sizeof(st_3_t));
+[alias] May-aliases after instruction  st_3_t *t = malloc(sizeof(st_3_t));  are
   <none>
 [alias] analysing instruction: int *a = malloc(sizeof(int));
-[alias] May-aliases at the end of instruction: int *a = malloc(sizeof(int));
-  <none>
+[alias] May-aliases after instruction  int *a = malloc(sizeof(int));  are  <none>
 [alias] analysing instruction: *a = 0;
-[alias] May-aliases at the end of instruction: *a = 0;
-  <none>
+[alias] May-aliases after instruction  *a = 0;  are  <none>
 [alias] analysing instruction: y1 = & x1;
-[alias] May-aliases at the end of instruction: y1 = & x1;
-  <none>
+[alias] May-aliases after instruction  y1 = & x1;  are  <none>
 [alias] analysing instruction: z->s = (struct struct_1_t *)y1;
 [alias:unsafe-cast] structure5.c:41: Warning: 
   unsafe cast from st_1_t * to struct struct_1_t *
-[alias] May-aliases at the end of instruction: z->s = (struct struct_1_t *)y1;
-  {z->s, y1} are aliased
+[alias] May-aliases after instruction  z->s = (struct struct_1_t *)y1;  are
+  {z->s, y1}
 [alias] analysing instruction: z->c = a;
-[alias] May-aliases at the end of instruction: z->c = a;
-  {z->s, y1} are aliased
-  {z->c, a} are aliased
+[alias] May-aliases after instruction  z->c = a;  are  {z->s, y1}  {z->c, a}
 [alias] analysing instruction: t->t = (struct struct_2_t *)z;
 [alias:unsafe-cast] structure5.c:43: Warning: 
   unsafe cast from st_2_t * to struct struct_2_t *
-[alias] May-aliases at the end of instruction: t->t = (struct struct_2_t *)z;
-  {z->s, y1} are aliased
-  {t->t, z} are aliased
-  {z->c, a} are aliased
+[alias] May-aliases after instruction  t->t = (struct struct_2_t *)z;  are
+  {z->s, y1}  {t->t, z}  {z->c, a}
 [alias] analysing instruction: t->d = a;
-[alias] May-aliases at the end of instruction: t->d = a;
-  {z->s, y1} are aliased
-  {t->t, z} are aliased
-  {z->c, t->d, a} are aliased
+[alias] May-aliases after instruction  t->d = a;  are
+  {z->s, y1}  {t->t, z}  {z->c, t->d, a}
 [alias] analysing instruction: __retres = 0;
-[alias] May-aliases at the end of instruction: __retres = 0;
-  {z->s, y1} are aliased
-  {t->t, z} are aliased
-  {z->c, t->d, a} are aliased
+[alias] May-aliases after instruction  __retres = 0;  are
+  {z->s, y1}  {t->t, z}  {z->c, t->d, a}
 [alias] May-aliases at the end of function main:
-  {z->s, y1} are aliased
-  {t->t, z} are aliased
-  {z->c, t->d, a} are aliased
+  {z->s, y1}  {t->t, z}  {z->c, t->d, a}
 [alias] analysing function: malloc
-[alias] May-aliases at the end of function malloc:
-  <Bot>
+[alias] May-aliases at the end of function malloc: ⊥
 [alias] analysing function: mblen
-[alias] May-aliases at the end of function mblen:
-  <Bot>
+[alias] May-aliases at the end of function mblen: ⊥
 [alias] analysing function: mbstowcs
-[alias] May-aliases at the end of function mbstowcs:
-  <Bot>
+[alias] May-aliases at the end of function mbstowcs: ⊥
 [alias] analysing function: mbtowc
-[alias] May-aliases at the end of function mbtowc:
-  <Bot>
+[alias] May-aliases at the end of function mbtowc: ⊥
 [alias] analysing function: mkstemp
-[alias] May-aliases at the end of function mkstemp:
-  <Bot>
+[alias] May-aliases at the end of function mkstemp: ⊥
 [alias] analysing function: mkstemps
-[alias] May-aliases at the end of function mkstemps:
-  <Bot>
+[alias] May-aliases at the end of function mkstemps: ⊥
 [alias] analysing function: mrand48
-[alias] May-aliases at the end of function mrand48:
-  <Bot>
+[alias] May-aliases at the end of function mrand48: ⊥
 [alias] analysing function: nrand48
-[alias] May-aliases at the end of function nrand48:
-  <Bot>
+[alias] May-aliases at the end of function nrand48: ⊥
 [alias] analysing function: posix_memalign
-[alias] May-aliases at the end of function posix_memalign:
-  <Bot>
+[alias] May-aliases at the end of function posix_memalign: ⊥
 [alias] analysing function: putenv
-[alias] May-aliases at the end of function putenv:
-  <Bot>
+[alias] May-aliases at the end of function putenv: ⊥
 [alias] analysing function: qsort
-[alias] May-aliases at the end of function qsort:
-  <Bot>
+[alias] May-aliases at the end of function qsort: ⊥
 [alias] analysing function: quick_exit
-[alias] May-aliases at the end of function quick_exit:
-  <Bot>
+[alias] May-aliases at the end of function quick_exit: ⊥
 [alias] analysing function: rand
-[alias] May-aliases at the end of function rand:
-  <Bot>
+[alias] May-aliases at the end of function rand: ⊥
 [alias] analysing function: random
-[alias] May-aliases at the end of function random:
-  <Bot>
+[alias] May-aliases at the end of function random: ⊥
 [alias] analysing function: realloc
-[alias] May-aliases at the end of function realloc:
-  <Bot>
+[alias] May-aliases at the end of function realloc: ⊥
 [alias] analysing function: reallocarray
-[alias] May-aliases at the end of function reallocarray:
-  <Bot>
+[alias] May-aliases at the end of function reallocarray: ⊥
 [alias] analysing function: seed48
-[alias] May-aliases at the end of function seed48:
-  <Bot>
+[alias] May-aliases at the end of function seed48: ⊥
 [alias] analysing function: setenv
-[alias] May-aliases at the end of function setenv:
-  <Bot>
+[alias] May-aliases at the end of function setenv: ⊥
 [alias] analysing function: srand
-[alias] May-aliases at the end of function srand:
-  <Bot>
+[alias] May-aliases at the end of function srand: ⊥
 [alias] analysing function: srand48
-[alias] May-aliases at the end of function srand48:
-  <Bot>
+[alias] May-aliases at the end of function srand48: ⊥
 [alias] analysing function: srandom
-[alias] May-aliases at the end of function srandom:
-  <Bot>
+[alias] May-aliases at the end of function srandom: ⊥
 [alias] analysing function: strtod
-[alias] May-aliases at the end of function strtod:
-  <Bot>
+[alias] May-aliases at the end of function strtod: ⊥
 [alias] analysing function: strtof
-[alias] May-aliases at the end of function strtof:
-  <Bot>
+[alias] May-aliases at the end of function strtof: ⊥
 [alias] analysing function: strtol
-[alias] May-aliases at the end of function strtol:
-  <Bot>
+[alias] May-aliases at the end of function strtol: ⊥
 [alias] analysing function: strtold
-[alias] May-aliases at the end of function strtold:
-  <Bot>
+[alias] May-aliases at the end of function strtold: ⊥
 [alias] analysing function: strtoll
-[alias] May-aliases at the end of function strtoll:
-  <Bot>
+[alias] May-aliases at the end of function strtoll: ⊥
 [alias] analysing function: strtoul
-[alias] May-aliases at the end of function strtoul:
-  <Bot>
+[alias] May-aliases at the end of function strtoul: ⊥
 [alias] analysing function: strtoull
-[alias] May-aliases at the end of function strtoull:
-  <Bot>
+[alias] May-aliases at the end of function strtoull: ⊥
 [alias] analysing function: system
-[alias] May-aliases at the end of function system:
-  <Bot>
+[alias] May-aliases at the end of function system: ⊥
 [alias] analysing function: unsetenv
-[alias] May-aliases at the end of function unsetenv:
-  <Bot>
+[alias] May-aliases at the end of function unsetenv: ⊥
 [alias] analysing function: wcstombs
-[alias] May-aliases at the end of function wcstombs:
-  <Bot>
+[alias] May-aliases at the end of function wcstombs: ⊥
 [alias] analysing function: wctomb
-[alias] May-aliases at the end of function wctomb:
-  <Bot>
+[alias] May-aliases at the end of function wctomb: ⊥
diff --git a/src/plugins/alias/tests/real_world/oracle/example1.res.oracle b/src/plugins/alias/tests/real_world/oracle/example1.res.oracle
index 5ad479692b0..cf4d456e4fa 100644
--- a/src/plugins/alias/tests/real_world/oracle/example1.res.oracle
+++ b/src/plugins/alias/tests/real_world/oracle/example1.res.oracle
@@ -1,565 +1,395 @@
 [kernel] Parsing example1.c (with preprocessing)
 [alias] analysing function: _Exit
-[alias] May-aliases at the end of function _Exit:
-  <Bot>
+[alias] May-aliases at the end of function _Exit: ⊥
 [alias] analysing function: __fc_fpclassify
-[alias] May-aliases at the end of function __fc_fpclassify:
-  <Bot>
+[alias] May-aliases at the end of function __fc_fpclassify: ⊥
 [alias] analysing function: __fc_fpclassifyf
-[alias] May-aliases at the end of function __fc_fpclassifyf:
-  <Bot>
+[alias] May-aliases at the end of function __fc_fpclassifyf: ⊥
 [alias] analysing function: __fc_infinity
-[alias] May-aliases at the end of function __fc_infinity:
-  <Bot>
+[alias] May-aliases at the end of function __fc_infinity: ⊥
 [alias] analysing function: __fc_nan
-[alias] May-aliases at the end of function __fc_nan:
-  <Bot>
+[alias] May-aliases at the end of function __fc_nan: ⊥
 [alias] analysing function: __finite
-[alias] May-aliases at the end of function __finite:
-  <Bot>
+[alias] May-aliases at the end of function __finite: ⊥
 [alias] analysing function: __finitef
-[alias] May-aliases at the end of function __finitef:
-  <Bot>
+[alias] May-aliases at the end of function __finitef: ⊥
 [alias] analysing function: abort
-[alias] May-aliases at the end of function abort:
-  <Bot>
+[alias] May-aliases at the end of function abort: ⊥
 [alias] analysing function: abs
-[alias] May-aliases at the end of function abs:
-  <Bot>
+[alias] May-aliases at the end of function abs: ⊥
 [alias] analysing function: acos
-[alias] May-aliases at the end of function acos:
-  <Bot>
+[alias] May-aliases at the end of function acos: ⊥
 [alias] analysing function: acosf
-[alias] May-aliases at the end of function acosf:
-  <Bot>
+[alias] May-aliases at the end of function acosf: ⊥
 [alias] analysing function: acosh
-[alias] May-aliases at the end of function acosh:
-  <Bot>
+[alias] May-aliases at the end of function acosh: ⊥
 [alias] analysing function: acoshf
-[alias] May-aliases at the end of function acoshf:
-  <Bot>
+[alias] May-aliases at the end of function acoshf: ⊥
 [alias] analysing function: acoshl
-[alias] May-aliases at the end of function acoshl:
-  <Bot>
+[alias] May-aliases at the end of function acoshl: ⊥
 [alias] analysing function: acosl
-[alias] May-aliases at the end of function acosl:
-  <Bot>
+[alias] May-aliases at the end of function acosl: ⊥
 [alias] analysing function: asin
-[alias] May-aliases at the end of function asin:
-  <Bot>
+[alias] May-aliases at the end of function asin: ⊥
 [alias] analysing function: asinf
-[alias] May-aliases at the end of function asinf:
-  <Bot>
+[alias] May-aliases at the end of function asinf: ⊥
 [alias] analysing function: asinl
-[alias] May-aliases at the end of function asinl:
-  <Bot>
+[alias] May-aliases at the end of function asinl: ⊥
 [alias] analysing function: at_quick_exit
-[alias] May-aliases at the end of function at_quick_exit:
-  <Bot>
+[alias] May-aliases at the end of function at_quick_exit: ⊥
 [alias] analysing function: atan
-[alias] May-aliases at the end of function atan:
-  <Bot>
+[alias] May-aliases at the end of function atan: ⊥
 [alias] analysing function: atan2
-[alias] May-aliases at the end of function atan2:
-  <Bot>
+[alias] May-aliases at the end of function atan2: ⊥
 [alias] analysing function: atan2f
-[alias] May-aliases at the end of function atan2f:
-  <Bot>
+[alias] May-aliases at the end of function atan2f: ⊥
 [alias] analysing function: atan2l
-[alias] May-aliases at the end of function atan2l:
-  <Bot>
+[alias] May-aliases at the end of function atan2l: ⊥
 [alias] analysing function: atanf
-[alias] May-aliases at the end of function atanf:
-  <Bot>
+[alias] May-aliases at the end of function atanf: ⊥
 [alias] analysing function: atanl
-[alias] May-aliases at the end of function atanl:
-  <Bot>
+[alias] May-aliases at the end of function atanl: ⊥
 [alias] analysing function: atexit
-[alias] May-aliases at the end of function atexit:
-  <Bot>
+[alias] May-aliases at the end of function atexit: ⊥
 [alias] analysing function: atof
-[alias] May-aliases at the end of function atof:
-  <Bot>
+[alias] May-aliases at the end of function atof: ⊥
 [alias] analysing function: atoi
-[alias] May-aliases at the end of function atoi:
-  <Bot>
+[alias] May-aliases at the end of function atoi: ⊥
 [alias] analysing function: atol
-[alias] May-aliases at the end of function atol:
-  <Bot>
+[alias] May-aliases at the end of function atol: ⊥
 [alias] analysing function: atoll
-[alias] May-aliases at the end of function atoll:
-  <Bot>
+[alias] May-aliases at the end of function atoll: ⊥
 [alias] analysing function: bsearch
-[alias] May-aliases at the end of function bsearch:
-  <Bot>
+[alias] May-aliases at the end of function bsearch: ⊥
 [alias] analysing function: calloc
-[alias] May-aliases at the end of function calloc:
-  <Bot>
+[alias] May-aliases at the end of function calloc: ⊥
 [alias] analysing function: ceil
-[alias] May-aliases at the end of function ceil:
-  <Bot>
+[alias] May-aliases at the end of function ceil: ⊥
 [alias] analysing function: ceilf
-[alias] May-aliases at the end of function ceilf:
-  <Bot>
+[alias] May-aliases at the end of function ceilf: ⊥
 [alias] analysing function: ceill
-[alias] May-aliases at the end of function ceill:
-  <Bot>
+[alias] May-aliases at the end of function ceill: ⊥
 [alias] analysing function: cos
-[alias] May-aliases at the end of function cos:
-  <Bot>
+[alias] May-aliases at the end of function cos: ⊥
 [alias] analysing function: cosf
-[alias] May-aliases at the end of function cosf:
-  <Bot>
+[alias] May-aliases at the end of function cosf: ⊥
 [alias] analysing function: cosl
-[alias] May-aliases at the end of function cosl:
-  <Bot>
+[alias] May-aliases at the end of function cosl: ⊥
 [alias] analysing function: div
-[alias] May-aliases at the end of function div:
-  <Bot>
+[alias] May-aliases at the end of function div: ⊥
 [alias] analysing function: drand48
-[alias] May-aliases at the end of function drand48:
-  <Bot>
+[alias] May-aliases at the end of function drand48: ⊥
 [alias] analysing function: erand48
-[alias] May-aliases at the end of function erand48:
-  <Bot>
+[alias] May-aliases at the end of function erand48: ⊥
 [alias] analysing function: exit
-[alias] May-aliases at the end of function exit:
-  <Bot>
+[alias] May-aliases at the end of function exit: ⊥
 [alias] analysing function: exp
-[alias] May-aliases at the end of function exp:
-  <Bot>
+[alias] May-aliases at the end of function exp: ⊥
 [alias] analysing function: expf
-[alias] May-aliases at the end of function expf:
-  <Bot>
+[alias] May-aliases at the end of function expf: ⊥
 [alias] analysing function: f1
 [alias] analysing instruction: ty *tmp = x;
-[alias] May-aliases at the end of instruction: ty *tmp = x;
-  {x, tmp} are aliased
-[alias] analysing instruction: idata = (double *)malloc((unsigned long)10 * sizeof(double));
-[alias] May-aliases at the end of instruction: idata = (double *)malloc((unsigned long)10 * sizeof(double));
-  {x, tmp} are aliased
+[alias] May-aliases after instruction  ty *tmp = x;  are  {x, tmp}
+[alias] analysing instruction:
+  idata = (double *)malloc((unsigned long)10 * sizeof(double));
+[alias] May-aliases after instruction
+  idata = (double *)malloc((unsigned long)10 * sizeof(double));  are  {x, tmp}
 [alias] analysing instruction: idata = tmp->t2[*(tmp->n2)];
-[alias] May-aliases at the end of instruction: idata = tmp->t2[*(tmp->n2)];
-  {x, tmp} are aliased
+[alias] May-aliases after instruction  idata = tmp->t2[*(tmp->n2)];  are  {x, tmp}
 [alias] analysing instruction: odata = tmp->t1[*(tmp->n1)];
-[alias] May-aliases at the end of instruction: odata = tmp->t1[*(tmp->n1)];
-  {x, tmp} are aliased
+[alias] May-aliases after instruction  odata = tmp->t1[*(tmp->n1)];  are  {x, tmp}
 [alias] analysing instruction: idx = 0;
-[alias] May-aliases at the end of instruction: idx = 0;
-  {x, tmp} are aliased
+[alias] May-aliases after instruction  idx = 0;  are  {x, tmp}
 [alias] analysing instruction: tmp_1 = sin(*(idata + idx));
 [alias] analysing function: sin
-[alias] May-aliases at the end of function sin:
-  <Bot>
+[alias] May-aliases at the end of function sin: ⊥
 [alias:undefined:fn] example1.c:45: Warning: function sin has no definition
-[alias] May-aliases at the end of instruction: tmp_1 = sin(*(idata + idx));
-  {x, tmp} are aliased
+[alias] May-aliases after instruction  tmp_1 = sin(*(idata + idx));  are  {x, tmp}
 [alias] analysing instruction: *(odata + idx) = 0.5 * tmp_1;
-[alias] May-aliases at the end of instruction: *(odata + idx) = 0.5 * tmp_1;
-  {x, tmp} are aliased
+[alias] May-aliases after instruction  *(odata + idx) = 0.5 * tmp_1;  are  {x, tmp}
 [alias] analysing instruction: idx ++;
-[alias] May-aliases at the end of instruction: idx ++;
-  {x, tmp} are aliased
+[alias] May-aliases after instruction  idx ++;  are  {x, tmp}
 [alias] analysing instruction: swap(tmp->n1);
 [alias] analysing function: swap
 [alias] analysing instruction: *n = 0;
-[alias] May-aliases at the end of instruction: *n = 0;
-  <none>
+[alias] May-aliases after instruction  *n = 0;  are  <none>
 [alias] analysing instruction: (*n) ++;
-[alias] May-aliases at the end of instruction: (*n) ++;
-  <none>
-[alias] May-aliases at the end of function swap:
-  <none>
-[alias] May-aliases at the end of instruction: swap(tmp->n1);
-  {x, tmp} are aliased
+[alias] May-aliases after instruction  (*n) ++;  are  <none>
+[alias] May-aliases at the end of function swap: <none>
+[alias] May-aliases after instruction  swap(tmp->n1);  are  {x, tmp}
 [alias] analysing instruction: idata = tmp->t2[*(tmp->n2)];
-[alias] May-aliases at the end of instruction: idata = tmp->t2[*(tmp->n2)];
-  {x, tmp} are aliased
+[alias] May-aliases after instruction  idata = tmp->t2[*(tmp->n2)];  are  {x, tmp}
 [alias] analysing instruction: odata = tmp->t1[*(tmp->n1)];
-[alias] May-aliases at the end of instruction: odata = tmp->t1[*(tmp->n1)];
-  {x, tmp} are aliased
+[alias] May-aliases after instruction  odata = tmp->t1[*(tmp->n1)];  are  {x, tmp}
 [alias:no-return] example1.c:29: Warning: 
   function f1 does not return; analysis may be unsound
-[alias] May-aliases at the end of function f1:
-  <none>
+[alias] May-aliases at the end of function f1: <none>
 [alias] analysing function: f2
 [alias] analysing instruction: ty *tmp = x;
-[alias] May-aliases at the end of instruction: ty *tmp = x;
-  {x, tmp} are aliased
-[alias] analysing instruction: idata = (double *)malloc((unsigned long)10 * sizeof(double));
-[alias] May-aliases at the end of instruction: idata = (double *)malloc((unsigned long)10 * sizeof(double));
-  {x, tmp} are aliased
+[alias] May-aliases after instruction  ty *tmp = x;  are  {x, tmp}
+[alias] analysing instruction:
+  idata = (double *)malloc((unsigned long)10 * sizeof(double));
+[alias] May-aliases after instruction
+  idata = (double *)malloc((unsigned long)10 * sizeof(double));  are  {x, tmp}
 [alias] analysing instruction: idata = tmp->t1[*(tmp->n1)];
-[alias] May-aliases at the end of instruction: idata = tmp->t1[*(tmp->n1)];
-  {x, tmp} are aliased
+[alias] May-aliases after instruction  idata = tmp->t1[*(tmp->n1)];  are  {x, tmp}
 [alias] analysing instruction: odata = tmp->t2[*(tmp->n2)];
-[alias] May-aliases at the end of instruction: odata = tmp->t2[*(tmp->n2)];
-  {x, tmp} are aliased
+[alias] May-aliases after instruction  odata = tmp->t2[*(tmp->n2)];  are  {x, tmp}
 [alias] analysing instruction: idx = 0;
-[alias] May-aliases at the end of instruction: idx = 0;
-  {x, tmp} are aliased
-[alias] analysing instruction: *(odata + idx) = (double)3 * *(idata + idx) + (double)1;
-[alias] May-aliases at the end of instruction: *(odata + idx) = (double)3 * *(
-                                                          idata + idx) + (double)1;
-  {x, tmp} are aliased
+[alias] May-aliases after instruction  idx = 0;  are  {x, tmp}
+[alias] analysing instruction:
+  *(odata + idx) = (double)3 * *(idata + idx) + (double)1;
+[alias] May-aliases after instruction
+  *(odata + idx) = (double)3 * *(idata + idx) + (double)1;  are  {x, tmp}
 [alias] analysing instruction: idx ++;
-[alias] May-aliases at the end of instruction: idx ++;
-  {x, tmp} are aliased
+[alias] May-aliases after instruction  idx ++;  are  {x, tmp}
 [alias] analysing instruction: swap(tmp->n2);
-[alias] May-aliases at the end of instruction: swap(tmp->n2);
-  {x, tmp} are aliased
+[alias] May-aliases after instruction  swap(tmp->n2);  are  {x, tmp}
 [alias] analysing instruction: idata = tmp->t1[*(tmp->n1)];
-[alias] May-aliases at the end of instruction: idata = tmp->t1[*(tmp->n1)];
-  {x, tmp} are aliased
+[alias] May-aliases after instruction  idata = tmp->t1[*(tmp->n1)];  are  {x, tmp}
 [alias] analysing instruction: odata = tmp->t2[*(tmp->n2)];
-[alias] May-aliases at the end of instruction: odata = tmp->t2[*(tmp->n2)];
-  {x, tmp} are aliased
+[alias] May-aliases after instruction  odata = tmp->t2[*(tmp->n2)];  are  {x, tmp}
 [alias:no-return] example1.c:53: Warning: 
   function f2 does not return; analysis may be unsound
-[alias] May-aliases at the end of function f2:
-  <none>
+[alias] May-aliases at the end of function f2: <none>
 [alias] analysing function: fabs
-[alias] May-aliases at the end of function fabs:
-  <Bot>
+[alias] May-aliases at the end of function fabs: ⊥
 [alias] analysing function: fabsf
-[alias] May-aliases at the end of function fabsf:
-  <Bot>
+[alias] May-aliases at the end of function fabsf: ⊥
 [alias] analysing function: fabsl
-[alias] May-aliases at the end of function fabsl:
-  <Bot>
+[alias] May-aliases at the end of function fabsl: ⊥
 [alias] analysing function: floor
-[alias] May-aliases at the end of function floor:
-  <Bot>
+[alias] May-aliases at the end of function floor: ⊥
 [alias] analysing function: floorf
-[alias] May-aliases at the end of function floorf:
-  <Bot>
+[alias] May-aliases at the end of function floorf: ⊥
 [alias] analysing function: floorl
-[alias] May-aliases at the end of function floorl:
-  <Bot>
+[alias] May-aliases at the end of function floorl: ⊥
 [alias] analysing function: fmod
-[alias] May-aliases at the end of function fmod:
-  <Bot>
+[alias] May-aliases at the end of function fmod: ⊥
 [alias] analysing function: fmodf
-[alias] May-aliases at the end of function fmodf:
-  <Bot>
+[alias] May-aliases at the end of function fmodf: ⊥
 [alias] analysing function: free
-[alias] May-aliases at the end of function free:
-  <Bot>
+[alias] May-aliases at the end of function free: ⊥
 [alias] analysing function: frexp
-[alias] May-aliases at the end of function frexp:
-  <Bot>
+[alias] May-aliases at the end of function frexp: ⊥
 [alias] analysing function: frexpf
-[alias] May-aliases at the end of function frexpf:
-  <Bot>
+[alias] May-aliases at the end of function frexpf: ⊥
 [alias] analysing function: frexpl
-[alias] May-aliases at the end of function frexpl:
-  <Bot>
+[alias] May-aliases at the end of function frexpl: ⊥
 [alias] analysing function: getenv
-[alias] May-aliases at the end of function getenv:
-  <Bot>
+[alias] May-aliases at the end of function getenv: ⊥
 [alias] analysing function: jrand48
-[alias] May-aliases at the end of function jrand48:
-  <Bot>
+[alias] May-aliases at the end of function jrand48: ⊥
 [alias] analysing function: labs
-[alias] May-aliases at the end of function labs:
-  <Bot>
+[alias] May-aliases at the end of function labs: ⊥
 [alias] analysing function: lcong48
-[alias] May-aliases at the end of function lcong48:
-  <Bot>
+[alias] May-aliases at the end of function lcong48: ⊥
 [alias] analysing function: ldexp
-[alias] May-aliases at the end of function ldexp:
-  <Bot>
+[alias] May-aliases at the end of function ldexp: ⊥
 [alias] analysing function: ldexpf
-[alias] May-aliases at the end of function ldexpf:
-  <Bot>
+[alias] May-aliases at the end of function ldexpf: ⊥
 [alias] analysing function: ldiv
-[alias] May-aliases at the end of function ldiv:
-  <Bot>
+[alias] May-aliases at the end of function ldiv: ⊥
 [alias] analysing function: llabs
-[alias] May-aliases at the end of function llabs:
-  <Bot>
+[alias] May-aliases at the end of function llabs: ⊥
 [alias] analysing function: lldiv
-[alias] May-aliases at the end of function lldiv:
-  <Bot>
+[alias] May-aliases at the end of function lldiv: ⊥
 [alias] analysing function: log
-[alias] May-aliases at the end of function log:
-  <Bot>
+[alias] May-aliases at the end of function log: ⊥
 [alias] analysing function: log10
-[alias] May-aliases at the end of function log10:
-  <Bot>
+[alias] May-aliases at the end of function log10: ⊥
 [alias] analysing function: log10f
-[alias] May-aliases at the end of function log10f:
-  <Bot>
+[alias] May-aliases at the end of function log10f: ⊥
 [alias] analysing function: log10l
-[alias] May-aliases at the end of function log10l:
-  <Bot>
+[alias] May-aliases at the end of function log10l: ⊥
 [alias] analysing function: log2
-[alias] May-aliases at the end of function log2:
-  <Bot>
+[alias] May-aliases at the end of function log2: ⊥
 [alias] analysing function: log2f
-[alias] May-aliases at the end of function log2f:
-  <Bot>
+[alias] May-aliases at the end of function log2f: ⊥
 [alias] analysing function: log2l
-[alias] May-aliases at the end of function log2l:
-  <Bot>
+[alias] May-aliases at the end of function log2l: ⊥
 [alias] analysing function: logf
-[alias] May-aliases at the end of function logf:
-  <Bot>
+[alias] May-aliases at the end of function logf: ⊥
 [alias] analysing function: logl
-[alias] May-aliases at the end of function logl:
-  <Bot>
+[alias] May-aliases at the end of function logl: ⊥
 [alias] analysing function: lrand48
-[alias] May-aliases at the end of function lrand48:
-  <Bot>
+[alias] May-aliases at the end of function lrand48: ⊥
 [alias] analysing function: main
 [alias] analysing instruction: a = (ty *)malloc(sizeof(ty));
-[alias] May-aliases at the end of instruction: a = (ty *)malloc(sizeof(ty));
-  <none>
+[alias] May-aliases after instruction  a = (ty *)malloc(sizeof(ty));  are  <none>
 [alias] analysing instruction: b = (ty *)malloc(sizeof(ty));
-[alias] May-aliases at the end of instruction: b = (ty *)malloc(sizeof(ty));
-  <none>
+[alias] May-aliases after instruction  b = (ty *)malloc(sizeof(ty));  are  <none>
 [alias] analysing instruction: i = 0;
-[alias] May-aliases at the end of instruction: i = 0;
+[alias] May-aliases after instruction  i = 0;  are  <none>
+[alias] analysing instruction:
+  a->t1[i] = (double *)malloc((unsigned long)10 * sizeof(double));
+[alias] May-aliases after instruction
+  a->t1[i] = (double *)malloc((unsigned long)10 * sizeof(double));  are  
   <none>
-[alias] analysing instruction: a->t1[i] = (double *)malloc((unsigned long)10 * sizeof(double));
-[alias] May-aliases at the end of instruction: a->t1[i] = (double *)malloc((unsigned long)10 * sizeof(double));
-  <none>
-[alias] analysing instruction: a->t2[i] = (double *)malloc((unsigned long)10 * sizeof(double));
-[alias] May-aliases at the end of instruction: a->t2[i] = (double *)malloc((unsigned long)10 * sizeof(double));
+[alias] analysing instruction:
+  a->t2[i] = (double *)malloc((unsigned long)10 * sizeof(double));
+[alias] May-aliases after instruction
+  a->t2[i] = (double *)malloc((unsigned long)10 * sizeof(double));  are  
   <none>
 [alias] analysing instruction: i ++;
-[alias] May-aliases at the end of instruction: i ++;
-  <none>
-[alias] analysing instruction: a->t1[i] = (double *)malloc((unsigned long)10 * sizeof(double));
-[alias] May-aliases at the end of instruction: a->t1[i] = (double *)malloc((unsigned long)10 * sizeof(double));
+[alias] May-aliases after instruction  i ++;  are  <none>
+[alias] analysing instruction:
+  a->t1[i] = (double *)malloc((unsigned long)10 * sizeof(double));
+[alias] May-aliases after instruction
+  a->t1[i] = (double *)malloc((unsigned long)10 * sizeof(double));  are  
   <none>
-[alias] analysing instruction: a->t2[i] = (double *)malloc((unsigned long)10 * sizeof(double));
-[alias] May-aliases at the end of instruction: a->t2[i] = (double *)malloc((unsigned long)10 * sizeof(double));
+[alias] analysing instruction:
+  a->t2[i] = (double *)malloc((unsigned long)10 * sizeof(double));
+[alias] May-aliases after instruction
+  a->t2[i] = (double *)malloc((unsigned long)10 * sizeof(double));  are  
   <none>
 [alias] analysing instruction: a->n1 = (int *)malloc(sizeof(int));
-[alias] May-aliases at the end of instruction: a->n1 = (int *)malloc(sizeof(int));
+[alias] May-aliases after instruction  a->n1 = (int *)malloc(sizeof(int));  are
   <none>
 [alias] analysing instruction: a->n2 = (int *)malloc(sizeof(int));
-[alias] May-aliases at the end of instruction: a->n2 = (int *)malloc(sizeof(int));
+[alias] May-aliases after instruction  a->n2 = (int *)malloc(sizeof(int));  are
   <none>
 [alias] analysing instruction: *(a->n1) = 1;
-[alias] May-aliases at the end of instruction: *(a->n1) = 1;
-  <none>
+[alias] May-aliases after instruction  *(a->n1) = 1;  are  <none>
 [alias] analysing instruction: *(a->n2) = 1;
-[alias] May-aliases at the end of instruction: *(a->n2) = 1;
-  <none>
+[alias] May-aliases after instruction  *(a->n2) = 1;  are  <none>
 [alias] analysing instruction: i = 0;
-[alias] May-aliases at the end of instruction: i = 0;
-  <none>
+[alias] May-aliases after instruction  i = 0;  are  <none>
 [alias] analysing instruction: b->t1[i] = a->t1[i];
-[alias] May-aliases at the end of instruction: b->t1[i] = a->t1[i];
-  {a->t1[0], b->t1[0]} are aliased
+[alias] May-aliases after instruction  b->t1[i] = a->t1[i];  are
+  {a->t1[0], b->t1[0]}
 [alias] analysing instruction: b->t2[i] = a->t2[i];
-[alias] May-aliases at the end of instruction: b->t2[i] = a->t2[i];
-  {a->t1[0], b->t1[0]} are aliased
-  {a->t2[0], b->t2[0]} are aliased
+[alias] May-aliases after instruction  b->t2[i] = a->t2[i];  are
+  {a->t1[0], b->t1[0]}  {a->t2[0], b->t2[0]}
 [alias] analysing instruction: i ++;
-[alias] May-aliases at the end of instruction: i ++;
-  {a->t1[0], b->t1[0]} are aliased
-  {a->t2[0], b->t2[0]} are aliased
+[alias] May-aliases after instruction  i ++;  are
+  {a->t1[0], b->t1[0]}  {a->t2[0], b->t2[0]}
 [alias] analysing instruction: b->t1[i] = a->t1[i];
-[alias] May-aliases at the end of instruction: b->t1[i] = a->t1[i];
-  {a->t1[0], b->t1[0]} are aliased
-  {a->t2[0], b->t2[0]} are aliased
+[alias] May-aliases after instruction  b->t1[i] = a->t1[i];  are
+  {a->t1[0], b->t1[0]}  {a->t2[0], b->t2[0]}
 [alias] analysing instruction: b->t2[i] = a->t2[i];
-[alias] May-aliases at the end of instruction: b->t2[i] = a->t2[i];
-  {a->t1[0], b->t1[0]} are aliased
-  {a->t2[0], b->t2[0]} are aliased
+[alias] May-aliases after instruction  b->t2[i] = a->t2[i];  are
+  {a->t1[0], b->t1[0]}  {a->t2[0], b->t2[0]}
 [alias] analysing instruction: b->n1 = a->n1;
-[alias] May-aliases at the end of instruction: b->n1 = a->n1;
-  {a->t1[0], b->t1[0]} are aliased
-  {a->t2[0], b->t2[0]} are aliased
-  {a->n1, b->n1} are aliased
+[alias] May-aliases after instruction  b->n1 = a->n1;  are
+  {a->t1[0], b->t1[0]}  {a->t2[0], b->t2[0]}  {a->n1, b->n1}
 [alias] analysing instruction: b->n2 = a->n2;
-[alias] May-aliases at the end of instruction: b->n2 = a->n2;
-  {a->t1[0], b->t1[0]} are aliased
-  {a->t2[0], b->t2[0]} are aliased
-  {a->n1, b->n1} are aliased
-  {a->n2, b->n2} are aliased
+[alias] May-aliases after instruction  b->n2 = a->n2;  are
+  {a->t1[0], b->t1[0]}  {a->t2[0], b->t2[0]}  {a->n1, b->n1}  {a->n2, b->n2}
 [alias] analysing instruction: f1(a);
-[alias] May-aliases at the end of instruction: f1(a);
-  {a->t1[0], b->t1[0]} are aliased
-  {a->t2[0], b->t2[0]} are aliased
-  {a->n1, b->n1} are aliased
-  {a->n2, b->n2} are aliased
+[alias] May-aliases after instruction  f1(a);  are
+  {a->t1[0], b->t1[0]}  {a->t2[0], b->t2[0]}  {a->n1, b->n1}  {a->n2, b->n2}
 [alias] analysing instruction: f2(b);
-[alias] May-aliases at the end of instruction: f2(b);
-  {a->t1[0], b->t1[0]} are aliased
-  {a->t2[0], b->t2[0]} are aliased
-  {a->n1, b->n1} are aliased
-  {a->n2, b->n2} are aliased
+[alias] May-aliases after instruction  f2(b);  are
+  {a->t1[0], b->t1[0]}  {a->t2[0], b->t2[0]}  {a->n1, b->n1}  {a->n2, b->n2}
 [alias] analysing instruction: __retres = 0;
-[alias] May-aliases at the end of instruction: __retres = 0;
-  {a->t1[0], b->t1[0]} are aliased
-  {a->t2[0], b->t2[0]} are aliased
-  {a->n1, b->n1} are aliased
-  {a->n2, b->n2} are aliased
+[alias] May-aliases after instruction  __retres = 0;  are
+  {a->t1[0], b->t1[0]}  {a->t2[0], b->t2[0]}  {a->n1, b->n1}  {a->n2, b->n2}
 [alias] May-aliases at the end of function main:
-  {a->t1[0], b->t1[0]} are aliased
-  {a->t2[0], b->t2[0]} are aliased
-  {a->n1, b->n1} are aliased
-  {a->n2, b->n2} are aliased
+  {a->t1[0], b->t1[0]}  {a->t2[0], b->t2[0]}  {a->n1, b->n1}  {a->n2, b->n2}
 [alias] analysing function: malloc
-[alias] May-aliases at the end of function malloc:
-  <Bot>
+[alias] May-aliases at the end of function malloc: ⊥
 [alias] analysing function: mblen
-[alias] May-aliases at the end of function mblen:
-  <Bot>
+[alias] May-aliases at the end of function mblen: ⊥
 [alias] analysing function: mbstowcs
-[alias] May-aliases at the end of function mbstowcs:
-  <Bot>
+[alias] May-aliases at the end of function mbstowcs: ⊥
 [alias] analysing function: mbtowc
-[alias] May-aliases at the end of function mbtowc:
-  <Bot>
+[alias] May-aliases at the end of function mbtowc: ⊥
 [alias] analysing function: mkstemp
-[alias] May-aliases at the end of function mkstemp:
-  <Bot>
+[alias] May-aliases at the end of function mkstemp: ⊥
 [alias] analysing function: mkstemps
-[alias] May-aliases at the end of function mkstemps:
-  <Bot>
+[alias] May-aliases at the end of function mkstemps: ⊥
 [alias] analysing function: mrand48
-[alias] May-aliases at the end of function mrand48:
-  <Bot>
+[alias] May-aliases at the end of function mrand48: ⊥
 [alias] analysing function: nan
-[alias] May-aliases at the end of function nan:
-  <Bot>
+[alias] May-aliases at the end of function nan: ⊥
 [alias] analysing function: nanf
-[alias] May-aliases at the end of function nanf:
-  <Bot>
+[alias] May-aliases at the end of function nanf: ⊥
 [alias] analysing function: nanl
-[alias] May-aliases at the end of function nanl:
-  <Bot>
+[alias] May-aliases at the end of function nanl: ⊥
 [alias] analysing function: nrand48
-[alias] May-aliases at the end of function nrand48:
-  <Bot>
+[alias] May-aliases at the end of function nrand48: ⊥
 [alias] analysing function: posix_memalign
-[alias] May-aliases at the end of function posix_memalign:
-  <Bot>
+[alias] May-aliases at the end of function posix_memalign: ⊥
 [alias] analysing function: pow
-[alias] May-aliases at the end of function pow:
-  <Bot>
+[alias] May-aliases at the end of function pow: ⊥
 [alias] analysing function: powf
-[alias] May-aliases at the end of function powf:
-  <Bot>
+[alias] May-aliases at the end of function powf: ⊥
 [alias] analysing function: putenv
-[alias] May-aliases at the end of function putenv:
-  <Bot>
+[alias] May-aliases at the end of function putenv: ⊥
 [alias] analysing function: qsort
-[alias] May-aliases at the end of function qsort:
-  <Bot>
+[alias] May-aliases at the end of function qsort: ⊥
 [alias] analysing function: quick_exit
-[alias] May-aliases at the end of function quick_exit:
-  <Bot>
+[alias] May-aliases at the end of function quick_exit: ⊥
 [alias] analysing function: rand
-[alias] May-aliases at the end of function rand:
-  <Bot>
+[alias] May-aliases at the end of function rand: ⊥
 [alias] analysing function: random
-[alias] May-aliases at the end of function random:
-  <Bot>
+[alias] May-aliases at the end of function random: ⊥
 [alias] analysing function: realloc
-[alias] May-aliases at the end of function realloc:
-  <Bot>
+[alias] May-aliases at the end of function realloc: ⊥
 [alias] analysing function: reallocarray
-[alias] May-aliases at the end of function reallocarray:
-  <Bot>
+[alias] May-aliases at the end of function reallocarray: ⊥
 [alias] analysing function: round
-[alias] May-aliases at the end of function round:
-  <Bot>
+[alias] May-aliases at the end of function round: ⊥
 [alias] analysing function: roundf
-[alias] May-aliases at the end of function roundf:
-  <Bot>
+[alias] May-aliases at the end of function roundf: ⊥
 [alias] analysing function: roundl
-[alias] May-aliases at the end of function roundl:
-  <Bot>
+[alias] May-aliases at the end of function roundl: ⊥
 [alias] analysing function: seed48
-[alias] May-aliases at the end of function seed48:
-  <Bot>
+[alias] May-aliases at the end of function seed48: ⊥
 [alias] analysing function: setenv
-[alias] May-aliases at the end of function setenv:
-  <Bot>
+[alias] May-aliases at the end of function setenv: ⊥
 [alias] analysing function: sin
-[alias] May-aliases at the end of function sin:
-  <Bot>
+[alias] May-aliases at the end of function sin: ⊥
 [alias] analysing function: sinf
-[alias] May-aliases at the end of function sinf:
-  <Bot>
+[alias] May-aliases at the end of function sinf: ⊥
 [alias] analysing function: sinl
-[alias] May-aliases at the end of function sinl:
-  <Bot>
+[alias] May-aliases at the end of function sinl: ⊥
 [alias] analysing function: sqrt
-[alias] May-aliases at the end of function sqrt:
-  <Bot>
+[alias] May-aliases at the end of function sqrt: ⊥
 [alias] analysing function: sqrtf
-[alias] May-aliases at the end of function sqrtf:
-  <Bot>
+[alias] May-aliases at the end of function sqrtf: ⊥
 [alias] analysing function: sqrtl
-[alias] May-aliases at the end of function sqrtl:
-  <Bot>
+[alias] May-aliases at the end of function sqrtl: ⊥
 [alias] analysing function: srand
-[alias] May-aliases at the end of function srand:
-  <Bot>
+[alias] May-aliases at the end of function srand: ⊥
 [alias] analysing function: srand48
-[alias] May-aliases at the end of function srand48:
-  <Bot>
+[alias] May-aliases at the end of function srand48: ⊥
 [alias] analysing function: srandom
-[alias] May-aliases at the end of function srandom:
-  <Bot>
+[alias] May-aliases at the end of function srandom: ⊥
 [alias] analysing function: strtod
-[alias] May-aliases at the end of function strtod:
-  <Bot>
+[alias] May-aliases at the end of function strtod: ⊥
 [alias] analysing function: strtof
-[alias] May-aliases at the end of function strtof:
-  <Bot>
+[alias] May-aliases at the end of function strtof: ⊥
 [alias] analysing function: strtol
-[alias] May-aliases at the end of function strtol:
-  <Bot>
+[alias] May-aliases at the end of function strtol: ⊥
 [alias] analysing function: strtold
-[alias] May-aliases at the end of function strtold:
-  <Bot>
+[alias] May-aliases at the end of function strtold: ⊥
 [alias] analysing function: strtoll
-[alias] May-aliases at the end of function strtoll:
-  <Bot>
+[alias] May-aliases at the end of function strtoll: ⊥
 [alias] analysing function: strtoul
-[alias] May-aliases at the end of function strtoul:
-  <Bot>
+[alias] May-aliases at the end of function strtoul: ⊥
 [alias] analysing function: strtoull
-[alias] May-aliases at the end of function strtoull:
-  <Bot>
+[alias] May-aliases at the end of function strtoull: ⊥
 [alias] analysing function: swap
-[alias] May-aliases at the end of function swap:
-  <none>
+[alias] May-aliases at the end of function swap: <none>
 [alias] analysing function: system
-[alias] May-aliases at the end of function system:
-  <Bot>
+[alias] May-aliases at the end of function system: ⊥
 [alias] analysing function: tan
-[alias] May-aliases at the end of function tan:
-  <Bot>
+[alias] May-aliases at the end of function tan: ⊥
 [alias] analysing function: tanf
-[alias] May-aliases at the end of function tanf:
-  <Bot>
+[alias] May-aliases at the end of function tanf: ⊥
 [alias] analysing function: tanl
-[alias] May-aliases at the end of function tanl:
-  <Bot>
+[alias] May-aliases at the end of function tanl: ⊥
 [alias] analysing function: trunc
-[alias] May-aliases at the end of function trunc:
-  <Bot>
+[alias] May-aliases at the end of function trunc: ⊥
 [alias] analysing function: truncf
-[alias] May-aliases at the end of function truncf:
-  <Bot>
+[alias] May-aliases at the end of function truncf: ⊥
 [alias] analysing function: truncl
-[alias] May-aliases at the end of function truncl:
-  <Bot>
+[alias] May-aliases at the end of function truncl: ⊥
 [alias] analysing function: unsetenv
-[alias] May-aliases at the end of function unsetenv:
-  <Bot>
+[alias] May-aliases at the end of function unsetenv: ⊥
 [alias] analysing function: wcstombs
-[alias] May-aliases at the end of function wcstombs:
-  <Bot>
+[alias] May-aliases at the end of function wcstombs: ⊥
 [alias] analysing function: wctomb
-[alias] May-aliases at the end of function wctomb:
-  <Bot>
+[alias] May-aliases at the end of function wctomb: ⊥
diff --git a/src/plugins/alias/tests/real_world/oracle/example2.res.oracle b/src/plugins/alias/tests/real_world/oracle/example2.res.oracle
index a0a1d67eef9..e3fe810395c 100644
--- a/src/plugins/alias/tests/real_world/oracle/example2.res.oracle
+++ b/src/plugins/alias/tests/real_world/oracle/example2.res.oracle
@@ -1,581 +1,405 @@
 [kernel] Parsing example2.c (with preprocessing)
 [alias] analysing function: _Exit
-[alias] May-aliases at the end of function _Exit:
-  <Bot>
+[alias] May-aliases at the end of function _Exit: ⊥
 [alias] analysing function: __fc_fpclassify
-[alias] May-aliases at the end of function __fc_fpclassify:
-  <Bot>
+[alias] May-aliases at the end of function __fc_fpclassify: ⊥
 [alias] analysing function: __fc_fpclassifyf
-[alias] May-aliases at the end of function __fc_fpclassifyf:
-  <Bot>
+[alias] May-aliases at the end of function __fc_fpclassifyf: ⊥
 [alias] analysing function: __fc_infinity
-[alias] May-aliases at the end of function __fc_infinity:
-  <Bot>
+[alias] May-aliases at the end of function __fc_infinity: ⊥
 [alias] analysing function: __fc_nan
-[alias] May-aliases at the end of function __fc_nan:
-  <Bot>
+[alias] May-aliases at the end of function __fc_nan: ⊥
 [alias] analysing function: __finite
-[alias] May-aliases at the end of function __finite:
-  <Bot>
+[alias] May-aliases at the end of function __finite: ⊥
 [alias] analysing function: __finitef
-[alias] May-aliases at the end of function __finitef:
-  <Bot>
+[alias] May-aliases at the end of function __finitef: ⊥
 [alias] analysing function: abort
-[alias] May-aliases at the end of function abort:
-  <Bot>
+[alias] May-aliases at the end of function abort: ⊥
 [alias] analysing function: abs
-[alias] May-aliases at the end of function abs:
-  <Bot>
+[alias] May-aliases at the end of function abs: ⊥
 [alias] analysing function: acos
-[alias] May-aliases at the end of function acos:
-  <Bot>
+[alias] May-aliases at the end of function acos: ⊥
 [alias] analysing function: acosf
-[alias] May-aliases at the end of function acosf:
-  <Bot>
+[alias] May-aliases at the end of function acosf: ⊥
 [alias] analysing function: acosh
-[alias] May-aliases at the end of function acosh:
-  <Bot>
+[alias] May-aliases at the end of function acosh: ⊥
 [alias] analysing function: acoshf
-[alias] May-aliases at the end of function acoshf:
-  <Bot>
+[alias] May-aliases at the end of function acoshf: ⊥
 [alias] analysing function: acoshl
-[alias] May-aliases at the end of function acoshl:
-  <Bot>
+[alias] May-aliases at the end of function acoshl: ⊥
 [alias] analysing function: acosl
-[alias] May-aliases at the end of function acosl:
-  <Bot>
+[alias] May-aliases at the end of function acosl: ⊥
 [alias] analysing function: asin
-[alias] May-aliases at the end of function asin:
-  <Bot>
+[alias] May-aliases at the end of function asin: ⊥
 [alias] analysing function: asinf
-[alias] May-aliases at the end of function asinf:
-  <Bot>
+[alias] May-aliases at the end of function asinf: ⊥
 [alias] analysing function: asinl
-[alias] May-aliases at the end of function asinl:
-  <Bot>
+[alias] May-aliases at the end of function asinl: ⊥
 [alias] analysing function: at_quick_exit
-[alias] May-aliases at the end of function at_quick_exit:
-  <Bot>
+[alias] May-aliases at the end of function at_quick_exit: ⊥
 [alias] analysing function: atan
-[alias] May-aliases at the end of function atan:
-  <Bot>
+[alias] May-aliases at the end of function atan: ⊥
 [alias] analysing function: atan2
-[alias] May-aliases at the end of function atan2:
-  <Bot>
+[alias] May-aliases at the end of function atan2: ⊥
 [alias] analysing function: atan2f
-[alias] May-aliases at the end of function atan2f:
-  <Bot>
+[alias] May-aliases at the end of function atan2f: ⊥
 [alias] analysing function: atan2l
-[alias] May-aliases at the end of function atan2l:
-  <Bot>
+[alias] May-aliases at the end of function atan2l: ⊥
 [alias] analysing function: atanf
-[alias] May-aliases at the end of function atanf:
-  <Bot>
+[alias] May-aliases at the end of function atanf: ⊥
 [alias] analysing function: atanl
-[alias] May-aliases at the end of function atanl:
-  <Bot>
+[alias] May-aliases at the end of function atanl: ⊥
 [alias] analysing function: atexit
-[alias] May-aliases at the end of function atexit:
-  <Bot>
+[alias] May-aliases at the end of function atexit: ⊥
 [alias] analysing function: atof
-[alias] May-aliases at the end of function atof:
-  <Bot>
+[alias] May-aliases at the end of function atof: ⊥
 [alias] analysing function: atoi
-[alias] May-aliases at the end of function atoi:
-  <Bot>
+[alias] May-aliases at the end of function atoi: ⊥
 [alias] analysing function: atol
-[alias] May-aliases at the end of function atol:
-  <Bot>
+[alias] May-aliases at the end of function atol: ⊥
 [alias] analysing function: atoll
-[alias] May-aliases at the end of function atoll:
-  <Bot>
+[alias] May-aliases at the end of function atoll: ⊥
 [alias] analysing function: bsearch
-[alias] May-aliases at the end of function bsearch:
-  <Bot>
+[alias] May-aliases at the end of function bsearch: ⊥
 [alias] analysing function: calloc
-[alias] May-aliases at the end of function calloc:
-  <Bot>
+[alias] May-aliases at the end of function calloc: ⊥
 [alias] analysing function: ceil
-[alias] May-aliases at the end of function ceil:
-  <Bot>
+[alias] May-aliases at the end of function ceil: ⊥
 [alias] analysing function: ceilf
-[alias] May-aliases at the end of function ceilf:
-  <Bot>
+[alias] May-aliases at the end of function ceilf: ⊥
 [alias] analysing function: ceill
-[alias] May-aliases at the end of function ceill:
-  <Bot>
+[alias] May-aliases at the end of function ceill: ⊥
 [alias] analysing function: cos
-[alias] May-aliases at the end of function cos:
-  <Bot>
+[alias] May-aliases at the end of function cos: ⊥
 [alias] analysing function: cosf
-[alias] May-aliases at the end of function cosf:
-  <Bot>
+[alias] May-aliases at the end of function cosf: ⊥
 [alias] analysing function: cosl
-[alias] May-aliases at the end of function cosl:
-  <Bot>
+[alias] May-aliases at the end of function cosl: ⊥
 [alias] analysing function: div
-[alias] May-aliases at the end of function div:
-  <Bot>
+[alias] May-aliases at the end of function div: ⊥
 [alias] analysing function: drand48
-[alias] May-aliases at the end of function drand48:
-  <Bot>
+[alias] May-aliases at the end of function drand48: ⊥
 [alias] analysing function: erand48
-[alias] May-aliases at the end of function erand48:
-  <Bot>
+[alias] May-aliases at the end of function erand48: ⊥
 [alias] analysing function: exit
-[alias] May-aliases at the end of function exit:
-  <Bot>
+[alias] May-aliases at the end of function exit: ⊥
 [alias] analysing function: exp
-[alias] May-aliases at the end of function exp:
-  <Bot>
+[alias] May-aliases at the end of function exp: ⊥
 [alias] analysing function: expf
-[alias] May-aliases at the end of function expf:
-  <Bot>
+[alias] May-aliases at the end of function expf: ⊥
 [alias] analysing function: f1
 [alias] analysing instruction: ty *tmp = x;
-[alias] May-aliases at the end of instruction: ty *tmp = x;
-  {x, tmp} are aliased
-[alias] analysing instruction: idata = (double *)malloc((unsigned long)10 * sizeof(double));
-[alias] May-aliases at the end of instruction: idata = (double *)malloc((unsigned long)10 * sizeof(double));
-  {x, tmp} are aliased
+[alias] May-aliases after instruction  ty *tmp = x;  are  {x, tmp}
+[alias] analysing instruction:
+  idata = (double *)malloc((unsigned long)10 * sizeof(double));
+[alias] May-aliases after instruction
+  idata = (double *)malloc((unsigned long)10 * sizeof(double));  are  {x, tmp}
 [alias] analysing instruction: int i = 0;
-[alias] May-aliases at the end of instruction: int i = 0;
-  {x, tmp} are aliased
+[alias] May-aliases after instruction  int i = 0;  are  {x, tmp}
 [alias] analysing instruction: idata = tmp->t2[*(tmp->n2)];
-[alias] May-aliases at the end of instruction: idata = tmp->t2[*(tmp->n2)];
-  {x, tmp} are aliased
+[alias] May-aliases after instruction  idata = tmp->t2[*(tmp->n2)];  are  {x, tmp}
 [alias] analysing instruction: odata = tmp->t1[*(tmp->n1)];
-[alias] May-aliases at the end of instruction: odata = tmp->t1[*(tmp->n1)];
-  {x, tmp} are aliased
+[alias] May-aliases after instruction  odata = tmp->t1[*(tmp->n1)];  are  {x, tmp}
 [alias] analysing instruction: idx = 0;
-[alias] May-aliases at the end of instruction: idx = 0;
-  {x, tmp} are aliased
+[alias] May-aliases after instruction  idx = 0;  are  {x, tmp}
 [alias] analysing instruction: tmp_1 = sin(*(idata + idx));
 [alias] analysing function: sin
-[alias] May-aliases at the end of function sin:
-  <Bot>
+[alias] May-aliases at the end of function sin: ⊥
 [alias:undefined:fn] example2.c:45: Warning: function sin has no definition
-[alias] May-aliases at the end of instruction: tmp_1 = sin(*(idata + idx));
-  {x, tmp} are aliased
+[alias] May-aliases after instruction  tmp_1 = sin(*(idata + idx));  are  {x, tmp}
 [alias] analysing instruction: *(odata + idx) = 0.5 * tmp_1;
-[alias] May-aliases at the end of instruction: *(odata + idx) = 0.5 * tmp_1;
-  {x, tmp} are aliased
+[alias] May-aliases after instruction  *(odata + idx) = 0.5 * tmp_1;  are  {x, tmp}
 [alias] analysing instruction: idx ++;
-[alias] May-aliases at the end of instruction: idx ++;
-  {x, tmp} are aliased
+[alias] May-aliases after instruction  idx ++;  are  {x, tmp}
 [alias] analysing instruction: swap(tmp->n1);
 [alias] analysing function: swap
 [alias] analysing instruction: *n = 0;
-[alias] May-aliases at the end of instruction: *n = 0;
-  <none>
+[alias] May-aliases after instruction  *n = 0;  are  <none>
 [alias] analysing instruction: (*n) ++;
-[alias] May-aliases at the end of instruction: (*n) ++;
-  <none>
-[alias] May-aliases at the end of function swap:
-  <none>
-[alias] May-aliases at the end of instruction: swap(tmp->n1);
-  {x, tmp} are aliased
+[alias] May-aliases after instruction  (*n) ++;  are  <none>
+[alias] May-aliases at the end of function swap: <none>
+[alias] May-aliases after instruction  swap(tmp->n1);  are  {x, tmp}
 [alias] analysing instruction: i ++;
-[alias] May-aliases at the end of instruction: i ++;
-  {x, tmp} are aliased
+[alias] May-aliases after instruction  i ++;  are  {x, tmp}
 [alias] analysing instruction: idata = tmp->t2[*(tmp->n2)];
-[alias] May-aliases at the end of instruction: idata = tmp->t2[*(tmp->n2)];
-  {x, tmp} are aliased
+[alias] May-aliases after instruction  idata = tmp->t2[*(tmp->n2)];  are  {x, tmp}
 [alias] analysing instruction: odata = tmp->t1[*(tmp->n1)];
-[alias] May-aliases at the end of instruction: odata = tmp->t1[*(tmp->n1)];
-  {x, tmp} are aliased
+[alias] May-aliases after instruction  odata = tmp->t1[*(tmp->n1)];  are  {x, tmp}
 [alias] analysing instruction: __retres = (void *)0;
 [alias:unsafe-cast] example2.c:49: Warning: unsafe cast from int to void *
-[alias] May-aliases at the end of instruction: __retres = (void *)0;
-  {x, tmp} are aliased
-[alias] May-aliases at the end of function f1:
-  {x, tmp} are aliased
+[alias] May-aliases after instruction  __retres = (void *)0;  are  {x, tmp}
+[alias] May-aliases at the end of function f1: {x, tmp}
 [alias] analysing function: f2
 [alias] analysing instruction: ty *tmp = x;
-[alias] May-aliases at the end of instruction: ty *tmp = x;
-  {x, tmp} are aliased
-[alias] analysing instruction: idata = (double *)malloc((unsigned long)10 * sizeof(double));
-[alias] May-aliases at the end of instruction: idata = (double *)malloc((unsigned long)10 * sizeof(double));
-  {x, tmp} are aliased
+[alias] May-aliases after instruction  ty *tmp = x;  are  {x, tmp}
+[alias] analysing instruction:
+  idata = (double *)malloc((unsigned long)10 * sizeof(double));
+[alias] May-aliases after instruction
+  idata = (double *)malloc((unsigned long)10 * sizeof(double));  are  {x, tmp}
 [alias] analysing instruction: int i = 0;
-[alias] May-aliases at the end of instruction: int i = 0;
-  {x, tmp} are aliased
+[alias] May-aliases after instruction  int i = 0;  are  {x, tmp}
 [alias] analysing instruction: idata = tmp->t1[*(tmp->n1)];
-[alias] May-aliases at the end of instruction: idata = tmp->t1[*(tmp->n1)];
-  {x, tmp} are aliased
+[alias] May-aliases after instruction  idata = tmp->t1[*(tmp->n1)];  are  {x, tmp}
 [alias] analysing instruction: odata = tmp->t2[*(tmp->n2)];
-[alias] May-aliases at the end of instruction: odata = tmp->t2[*(tmp->n2)];
-  {x, tmp} are aliased
+[alias] May-aliases after instruction  odata = tmp->t2[*(tmp->n2)];  are  {x, tmp}
 [alias] analysing instruction: idx = 0;
-[alias] May-aliases at the end of instruction: idx = 0;
-  {x, tmp} are aliased
-[alias] analysing instruction: *(odata + idx) = (double)3 * *(idata + idx) + (double)1;
-[alias] May-aliases at the end of instruction: *(odata + idx) = (double)3 * *(
-                                                          idata + idx) + (double)1;
-  {x, tmp} are aliased
+[alias] May-aliases after instruction  idx = 0;  are  {x, tmp}
+[alias] analysing instruction:
+  *(odata + idx) = (double)3 * *(idata + idx) + (double)1;
+[alias] May-aliases after instruction
+  *(odata + idx) = (double)3 * *(idata + idx) + (double)1;  are  {x, tmp}
 [alias] analysing instruction: idx ++;
-[alias] May-aliases at the end of instruction: idx ++;
-  {x, tmp} are aliased
+[alias] May-aliases after instruction  idx ++;  are  {x, tmp}
 [alias] analysing instruction: swap(tmp->n2);
-[alias] May-aliases at the end of instruction: swap(tmp->n2);
-  {x, tmp} are aliased
+[alias] May-aliases after instruction  swap(tmp->n2);  are  {x, tmp}
 [alias] analysing instruction: i ++;
-[alias] May-aliases at the end of instruction: i ++;
-  {x, tmp} are aliased
+[alias] May-aliases after instruction  i ++;  are  {x, tmp}
 [alias] analysing instruction: idata = tmp->t1[*(tmp->n1)];
-[alias] May-aliases at the end of instruction: idata = tmp->t1[*(tmp->n1)];
-  {x, tmp} are aliased
+[alias] May-aliases after instruction  idata = tmp->t1[*(tmp->n1)];  are  {x, tmp}
 [alias] analysing instruction: odata = tmp->t2[*(tmp->n2)];
-[alias] May-aliases at the end of instruction: odata = tmp->t2[*(tmp->n2)];
-  {x, tmp} are aliased
+[alias] May-aliases after instruction  odata = tmp->t2[*(tmp->n2)];  are  {x, tmp}
 [alias] analysing instruction: __retres = (void *)0;
 [alias:unsafe-cast] example2.c:74: Warning: unsafe cast from int to void *
-[alias] May-aliases at the end of instruction: __retres = (void *)0;
-  {x, tmp} are aliased
-[alias] May-aliases at the end of function f2:
-  {x, tmp} are aliased
+[alias] May-aliases after instruction  __retres = (void *)0;  are  {x, tmp}
+[alias] May-aliases at the end of function f2: {x, tmp}
 [alias] analysing function: fabs
-[alias] May-aliases at the end of function fabs:
-  <Bot>
+[alias] May-aliases at the end of function fabs: ⊥
 [alias] analysing function: fabsf
-[alias] May-aliases at the end of function fabsf:
-  <Bot>
+[alias] May-aliases at the end of function fabsf: ⊥
 [alias] analysing function: fabsl
-[alias] May-aliases at the end of function fabsl:
-  <Bot>
+[alias] May-aliases at the end of function fabsl: ⊥
 [alias] analysing function: floor
-[alias] May-aliases at the end of function floor:
-  <Bot>
+[alias] May-aliases at the end of function floor: ⊥
 [alias] analysing function: floorf
-[alias] May-aliases at the end of function floorf:
-  <Bot>
+[alias] May-aliases at the end of function floorf: ⊥
 [alias] analysing function: floorl
-[alias] May-aliases at the end of function floorl:
-  <Bot>
+[alias] May-aliases at the end of function floorl: ⊥
 [alias] analysing function: fmod
-[alias] May-aliases at the end of function fmod:
-  <Bot>
+[alias] May-aliases at the end of function fmod: ⊥
 [alias] analysing function: fmodf
-[alias] May-aliases at the end of function fmodf:
-  <Bot>
+[alias] May-aliases at the end of function fmodf: ⊥
 [alias] analysing function: free
-[alias] May-aliases at the end of function free:
-  <Bot>
+[alias] May-aliases at the end of function free: ⊥
 [alias] analysing function: frexp
-[alias] May-aliases at the end of function frexp:
-  <Bot>
+[alias] May-aliases at the end of function frexp: ⊥
 [alias] analysing function: frexpf
-[alias] May-aliases at the end of function frexpf:
-  <Bot>
+[alias] May-aliases at the end of function frexpf: ⊥
 [alias] analysing function: frexpl
-[alias] May-aliases at the end of function frexpl:
-  <Bot>
+[alias] May-aliases at the end of function frexpl: ⊥
 [alias] analysing function: getenv
-[alias] May-aliases at the end of function getenv:
-  <Bot>
+[alias] May-aliases at the end of function getenv: ⊥
 [alias] analysing function: jrand48
-[alias] May-aliases at the end of function jrand48:
-  <Bot>
+[alias] May-aliases at the end of function jrand48: ⊥
 [alias] analysing function: labs
-[alias] May-aliases at the end of function labs:
-  <Bot>
+[alias] May-aliases at the end of function labs: ⊥
 [alias] analysing function: lcong48
-[alias] May-aliases at the end of function lcong48:
-  <Bot>
+[alias] May-aliases at the end of function lcong48: ⊥
 [alias] analysing function: ldexp
-[alias] May-aliases at the end of function ldexp:
-  <Bot>
+[alias] May-aliases at the end of function ldexp: ⊥
 [alias] analysing function: ldexpf
-[alias] May-aliases at the end of function ldexpf:
-  <Bot>
+[alias] May-aliases at the end of function ldexpf: ⊥
 [alias] analysing function: ldiv
-[alias] May-aliases at the end of function ldiv:
-  <Bot>
+[alias] May-aliases at the end of function ldiv: ⊥
 [alias] analysing function: llabs
-[alias] May-aliases at the end of function llabs:
-  <Bot>
+[alias] May-aliases at the end of function llabs: ⊥
 [alias] analysing function: lldiv
-[alias] May-aliases at the end of function lldiv:
-  <Bot>
+[alias] May-aliases at the end of function lldiv: ⊥
 [alias] analysing function: log
-[alias] May-aliases at the end of function log:
-  <Bot>
+[alias] May-aliases at the end of function log: ⊥
 [alias] analysing function: log10
-[alias] May-aliases at the end of function log10:
-  <Bot>
+[alias] May-aliases at the end of function log10: ⊥
 [alias] analysing function: log10f
-[alias] May-aliases at the end of function log10f:
-  <Bot>
+[alias] May-aliases at the end of function log10f: ⊥
 [alias] analysing function: log10l
-[alias] May-aliases at the end of function log10l:
-  <Bot>
+[alias] May-aliases at the end of function log10l: ⊥
 [alias] analysing function: log2
-[alias] May-aliases at the end of function log2:
-  <Bot>
+[alias] May-aliases at the end of function log2: ⊥
 [alias] analysing function: log2f
-[alias] May-aliases at the end of function log2f:
-  <Bot>
+[alias] May-aliases at the end of function log2f: ⊥
 [alias] analysing function: log2l
-[alias] May-aliases at the end of function log2l:
-  <Bot>
+[alias] May-aliases at the end of function log2l: ⊥
 [alias] analysing function: logf
-[alias] May-aliases at the end of function logf:
-  <Bot>
+[alias] May-aliases at the end of function logf: ⊥
 [alias] analysing function: logl
-[alias] May-aliases at the end of function logl:
-  <Bot>
+[alias] May-aliases at the end of function logl: ⊥
 [alias] analysing function: lrand48
-[alias] May-aliases at the end of function lrand48:
-  <Bot>
+[alias] May-aliases at the end of function lrand48: ⊥
 [alias] analysing function: main
 [alias] analysing instruction: a = (ty *)malloc(sizeof(ty));
-[alias] May-aliases at the end of instruction: a = (ty *)malloc(sizeof(ty));
-  <none>
+[alias] May-aliases after instruction  a = (ty *)malloc(sizeof(ty));  are  <none>
 [alias] analysing instruction: b = (ty *)malloc(sizeof(ty));
-[alias] May-aliases at the end of instruction: b = (ty *)malloc(sizeof(ty));
-  <none>
+[alias] May-aliases after instruction  b = (ty *)malloc(sizeof(ty));  are  <none>
 [alias] analysing instruction: i = 0;
-[alias] May-aliases at the end of instruction: i = 0;
-  <none>
-[alias] analysing instruction: a->t1[i] = (double *)malloc((unsigned long)10 * sizeof(double));
-[alias] May-aliases at the end of instruction: a->t1[i] = (double *)malloc((unsigned long)10 * sizeof(double));
+[alias] May-aliases after instruction  i = 0;  are  <none>
+[alias] analysing instruction:
+  a->t1[i] = (double *)malloc((unsigned long)10 * sizeof(double));
+[alias] May-aliases after instruction
+  a->t1[i] = (double *)malloc((unsigned long)10 * sizeof(double));  are  
   <none>
-[alias] analysing instruction: a->t2[i] = (double *)malloc((unsigned long)10 * sizeof(double));
-[alias] May-aliases at the end of instruction: a->t2[i] = (double *)malloc((unsigned long)10 * sizeof(double));
+[alias] analysing instruction:
+  a->t2[i] = (double *)malloc((unsigned long)10 * sizeof(double));
+[alias] May-aliases after instruction
+  a->t2[i] = (double *)malloc((unsigned long)10 * sizeof(double));  are  
   <none>
 [alias] analysing instruction: i ++;
-[alias] May-aliases at the end of instruction: i ++;
+[alias] May-aliases after instruction  i ++;  are  <none>
+[alias] analysing instruction:
+  a->t1[i] = (double *)malloc((unsigned long)10 * sizeof(double));
+[alias] May-aliases after instruction
+  a->t1[i] = (double *)malloc((unsigned long)10 * sizeof(double));  are  
   <none>
-[alias] analysing instruction: a->t1[i] = (double *)malloc((unsigned long)10 * sizeof(double));
-[alias] May-aliases at the end of instruction: a->t1[i] = (double *)malloc((unsigned long)10 * sizeof(double));
-  <none>
-[alias] analysing instruction: a->t2[i] = (double *)malloc((unsigned long)10 * sizeof(double));
-[alias] May-aliases at the end of instruction: a->t2[i] = (double *)malloc((unsigned long)10 * sizeof(double));
+[alias] analysing instruction:
+  a->t2[i] = (double *)malloc((unsigned long)10 * sizeof(double));
+[alias] May-aliases after instruction
+  a->t2[i] = (double *)malloc((unsigned long)10 * sizeof(double));  are  
   <none>
 [alias] analysing instruction: a->n1 = (int *)malloc(sizeof(int));
-[alias] May-aliases at the end of instruction: a->n1 = (int *)malloc(sizeof(int));
+[alias] May-aliases after instruction  a->n1 = (int *)malloc(sizeof(int));  are
   <none>
 [alias] analysing instruction: a->n2 = (int *)malloc(sizeof(int));
-[alias] May-aliases at the end of instruction: a->n2 = (int *)malloc(sizeof(int));
+[alias] May-aliases after instruction  a->n2 = (int *)malloc(sizeof(int));  are
   <none>
 [alias] analysing instruction: *(a->n1) = 1;
-[alias] May-aliases at the end of instruction: *(a->n1) = 1;
-  <none>
+[alias] May-aliases after instruction  *(a->n1) = 1;  are  <none>
 [alias] analysing instruction: *(a->n2) = 1;
-[alias] May-aliases at the end of instruction: *(a->n2) = 1;
-  <none>
+[alias] May-aliases after instruction  *(a->n2) = 1;  are  <none>
 [alias] analysing instruction: i = 0;
-[alias] May-aliases at the end of instruction: i = 0;
-  <none>
+[alias] May-aliases after instruction  i = 0;  are  <none>
 [alias] analysing instruction: b->t1[i] = a->t1[i];
-[alias] May-aliases at the end of instruction: b->t1[i] = a->t1[i];
-  {a->t1[0], b->t1[0]} are aliased
+[alias] May-aliases after instruction  b->t1[i] = a->t1[i];  are
+  {a->t1[0], b->t1[0]}
 [alias] analysing instruction: b->t2[i] = a->t2[i];
-[alias] May-aliases at the end of instruction: b->t2[i] = a->t2[i];
-  {a->t1[0], b->t1[0]} are aliased
-  {a->t2[0], b->t2[0]} are aliased
+[alias] May-aliases after instruction  b->t2[i] = a->t2[i];  are
+  {a->t1[0], b->t1[0]}  {a->t2[0], b->t2[0]}
 [alias] analysing instruction: i ++;
-[alias] May-aliases at the end of instruction: i ++;
-  {a->t1[0], b->t1[0]} are aliased
-  {a->t2[0], b->t2[0]} are aliased
+[alias] May-aliases after instruction  i ++;  are
+  {a->t1[0], b->t1[0]}  {a->t2[0], b->t2[0]}
 [alias] analysing instruction: b->t1[i] = a->t1[i];
-[alias] May-aliases at the end of instruction: b->t1[i] = a->t1[i];
-  {a->t1[0], b->t1[0]} are aliased
-  {a->t2[0], b->t2[0]} are aliased
+[alias] May-aliases after instruction  b->t1[i] = a->t1[i];  are
+  {a->t1[0], b->t1[0]}  {a->t2[0], b->t2[0]}
 [alias] analysing instruction: b->t2[i] = a->t2[i];
-[alias] May-aliases at the end of instruction: b->t2[i] = a->t2[i];
-  {a->t1[0], b->t1[0]} are aliased
-  {a->t2[0], b->t2[0]} are aliased
+[alias] May-aliases after instruction  b->t2[i] = a->t2[i];  are
+  {a->t1[0], b->t1[0]}  {a->t2[0], b->t2[0]}
 [alias] analysing instruction: b->n1 = a->n1;
-[alias] May-aliases at the end of instruction: b->n1 = a->n1;
-  {a->t1[0], b->t1[0]} are aliased
-  {a->t2[0], b->t2[0]} are aliased
-  {a->n1, b->n1} are aliased
+[alias] May-aliases after instruction  b->n1 = a->n1;  are
+  {a->t1[0], b->t1[0]}  {a->t2[0], b->t2[0]}  {a->n1, b->n1}
 [alias] analysing instruction: b->n2 = a->n2;
-[alias] May-aliases at the end of instruction: b->n2 = a->n2;
-  {a->t1[0], b->t1[0]} are aliased
-  {a->t2[0], b->t2[0]} are aliased
-  {a->n1, b->n1} are aliased
-  {a->n2, b->n2} are aliased
+[alias] May-aliases after instruction  b->n2 = a->n2;  are
+  {a->t1[0], b->t1[0]}  {a->t2[0], b->t2[0]}  {a->n1, b->n1}  {a->n2, b->n2}
 [alias] analysing instruction: f1(a);
-[alias] May-aliases at the end of instruction: f1(a);
-  {a->t1[0], b->t1[0]} are aliased
-  {a->t2[0], b->t2[0]} are aliased
-  {a->n1, b->n1} are aliased
-  {a->n2, b->n2} are aliased
+[alias] May-aliases after instruction  f1(a);  are
+  {a->t1[0], b->t1[0]}  {a->t2[0], b->t2[0]}  {a->n1, b->n1}  {a->n2, b->n2}
 [alias] analysing instruction: f2(b);
-[alias] May-aliases at the end of instruction: f2(b);
-  {a->t1[0], b->t1[0]} are aliased
-  {a->t2[0], b->t2[0]} are aliased
-  {a->n1, b->n1} are aliased
-  {a->n2, b->n2} are aliased
+[alias] May-aliases after instruction  f2(b);  are
+  {a->t1[0], b->t1[0]}  {a->t2[0], b->t2[0]}  {a->n1, b->n1}  {a->n2, b->n2}
 [alias] analysing instruction: __retres = 0;
-[alias] May-aliases at the end of instruction: __retres = 0;
-  {a->t1[0], b->t1[0]} are aliased
-  {a->t2[0], b->t2[0]} are aliased
-  {a->n1, b->n1} are aliased
-  {a->n2, b->n2} are aliased
+[alias] May-aliases after instruction  __retres = 0;  are
+  {a->t1[0], b->t1[0]}  {a->t2[0], b->t2[0]}  {a->n1, b->n1}  {a->n2, b->n2}
 [alias] May-aliases at the end of function main:
-  {a->t1[0], b->t1[0]} are aliased
-  {a->t2[0], b->t2[0]} are aliased
-  {a->n1, b->n1} are aliased
-  {a->n2, b->n2} are aliased
+  {a->t1[0], b->t1[0]}  {a->t2[0], b->t2[0]}  {a->n1, b->n1}  {a->n2, b->n2}
 [alias] analysing function: malloc
-[alias] May-aliases at the end of function malloc:
-  <Bot>
+[alias] May-aliases at the end of function malloc: ⊥
 [alias] analysing function: mblen
-[alias] May-aliases at the end of function mblen:
-  <Bot>
+[alias] May-aliases at the end of function mblen: ⊥
 [alias] analysing function: mbstowcs
-[alias] May-aliases at the end of function mbstowcs:
-  <Bot>
+[alias] May-aliases at the end of function mbstowcs: ⊥
 [alias] analysing function: mbtowc
-[alias] May-aliases at the end of function mbtowc:
-  <Bot>
+[alias] May-aliases at the end of function mbtowc: ⊥
 [alias] analysing function: mkstemp
-[alias] May-aliases at the end of function mkstemp:
-  <Bot>
+[alias] May-aliases at the end of function mkstemp: ⊥
 [alias] analysing function: mkstemps
-[alias] May-aliases at the end of function mkstemps:
-  <Bot>
+[alias] May-aliases at the end of function mkstemps: ⊥
 [alias] analysing function: mrand48
-[alias] May-aliases at the end of function mrand48:
-  <Bot>
+[alias] May-aliases at the end of function mrand48: ⊥
 [alias] analysing function: nan
-[alias] May-aliases at the end of function nan:
-  <Bot>
+[alias] May-aliases at the end of function nan: ⊥
 [alias] analysing function: nanf
-[alias] May-aliases at the end of function nanf:
-  <Bot>
+[alias] May-aliases at the end of function nanf: ⊥
 [alias] analysing function: nanl
-[alias] May-aliases at the end of function nanl:
-  <Bot>
+[alias] May-aliases at the end of function nanl: ⊥
 [alias] analysing function: nrand48
-[alias] May-aliases at the end of function nrand48:
-  <Bot>
+[alias] May-aliases at the end of function nrand48: ⊥
 [alias] analysing function: posix_memalign
-[alias] May-aliases at the end of function posix_memalign:
-  <Bot>
+[alias] May-aliases at the end of function posix_memalign: ⊥
 [alias] analysing function: pow
-[alias] May-aliases at the end of function pow:
-  <Bot>
+[alias] May-aliases at the end of function pow: ⊥
 [alias] analysing function: powf
-[alias] May-aliases at the end of function powf:
-  <Bot>
+[alias] May-aliases at the end of function powf: ⊥
 [alias] analysing function: putenv
-[alias] May-aliases at the end of function putenv:
-  <Bot>
+[alias] May-aliases at the end of function putenv: ⊥
 [alias] analysing function: qsort
-[alias] May-aliases at the end of function qsort:
-  <Bot>
+[alias] May-aliases at the end of function qsort: ⊥
 [alias] analysing function: quick_exit
-[alias] May-aliases at the end of function quick_exit:
-  <Bot>
+[alias] May-aliases at the end of function quick_exit: ⊥
 [alias] analysing function: rand
-[alias] May-aliases at the end of function rand:
-  <Bot>
+[alias] May-aliases at the end of function rand: ⊥
 [alias] analysing function: random
-[alias] May-aliases at the end of function random:
-  <Bot>
+[alias] May-aliases at the end of function random: ⊥
 [alias] analysing function: realloc
-[alias] May-aliases at the end of function realloc:
-  <Bot>
+[alias] May-aliases at the end of function realloc: ⊥
 [alias] analysing function: reallocarray
-[alias] May-aliases at the end of function reallocarray:
-  <Bot>
+[alias] May-aliases at the end of function reallocarray: ⊥
 [alias] analysing function: round
-[alias] May-aliases at the end of function round:
-  <Bot>
+[alias] May-aliases at the end of function round: ⊥
 [alias] analysing function: roundf
-[alias] May-aliases at the end of function roundf:
-  <Bot>
+[alias] May-aliases at the end of function roundf: ⊥
 [alias] analysing function: roundl
-[alias] May-aliases at the end of function roundl:
-  <Bot>
+[alias] May-aliases at the end of function roundl: ⊥
 [alias] analysing function: seed48
-[alias] May-aliases at the end of function seed48:
-  <Bot>
+[alias] May-aliases at the end of function seed48: ⊥
 [alias] analysing function: setenv
-[alias] May-aliases at the end of function setenv:
-  <Bot>
+[alias] May-aliases at the end of function setenv: ⊥
 [alias] analysing function: sin
-[alias] May-aliases at the end of function sin:
-  <Bot>
+[alias] May-aliases at the end of function sin: ⊥
 [alias] analysing function: sinf
-[alias] May-aliases at the end of function sinf:
-  <Bot>
+[alias] May-aliases at the end of function sinf: ⊥
 [alias] analysing function: sinl
-[alias] May-aliases at the end of function sinl:
-  <Bot>
+[alias] May-aliases at the end of function sinl: ⊥
 [alias] analysing function: sqrt
-[alias] May-aliases at the end of function sqrt:
-  <Bot>
+[alias] May-aliases at the end of function sqrt: ⊥
 [alias] analysing function: sqrtf
-[alias] May-aliases at the end of function sqrtf:
-  <Bot>
+[alias] May-aliases at the end of function sqrtf: ⊥
 [alias] analysing function: sqrtl
-[alias] May-aliases at the end of function sqrtl:
-  <Bot>
+[alias] May-aliases at the end of function sqrtl: ⊥
 [alias] analysing function: srand
-[alias] May-aliases at the end of function srand:
-  <Bot>
+[alias] May-aliases at the end of function srand: ⊥
 [alias] analysing function: srand48
-[alias] May-aliases at the end of function srand48:
-  <Bot>
+[alias] May-aliases at the end of function srand48: ⊥
 [alias] analysing function: srandom
-[alias] May-aliases at the end of function srandom:
-  <Bot>
+[alias] May-aliases at the end of function srandom: ⊥
 [alias] analysing function: strtod
-[alias] May-aliases at the end of function strtod:
-  <Bot>
+[alias] May-aliases at the end of function strtod: ⊥
 [alias] analysing function: strtof
-[alias] May-aliases at the end of function strtof:
-  <Bot>
+[alias] May-aliases at the end of function strtof: ⊥
 [alias] analysing function: strtol
-[alias] May-aliases at the end of function strtol:
-  <Bot>
+[alias] May-aliases at the end of function strtol: ⊥
 [alias] analysing function: strtold
-[alias] May-aliases at the end of function strtold:
-  <Bot>
+[alias] May-aliases at the end of function strtold: ⊥
 [alias] analysing function: strtoll
-[alias] May-aliases at the end of function strtoll:
-  <Bot>
+[alias] May-aliases at the end of function strtoll: ⊥
 [alias] analysing function: strtoul
-[alias] May-aliases at the end of function strtoul:
-  <Bot>
+[alias] May-aliases at the end of function strtoul: ⊥
 [alias] analysing function: strtoull
-[alias] May-aliases at the end of function strtoull:
-  <Bot>
+[alias] May-aliases at the end of function strtoull: ⊥
 [alias] analysing function: swap
-[alias] May-aliases at the end of function swap:
-  <none>
+[alias] May-aliases at the end of function swap: <none>
 [alias] analysing function: system
-[alias] May-aliases at the end of function system:
-  <Bot>
+[alias] May-aliases at the end of function system: ⊥
 [alias] analysing function: tan
-[alias] May-aliases at the end of function tan:
-  <Bot>
+[alias] May-aliases at the end of function tan: ⊥
 [alias] analysing function: tanf
-[alias] May-aliases at the end of function tanf:
-  <Bot>
+[alias] May-aliases at the end of function tanf: ⊥
 [alias] analysing function: tanl
-[alias] May-aliases at the end of function tanl:
-  <Bot>
+[alias] May-aliases at the end of function tanl: ⊥
 [alias] analysing function: trunc
-[alias] May-aliases at the end of function trunc:
-  <Bot>
+[alias] May-aliases at the end of function trunc: ⊥
 [alias] analysing function: truncf
-[alias] May-aliases at the end of function truncf:
-  <Bot>
+[alias] May-aliases at the end of function truncf: ⊥
 [alias] analysing function: truncl
-[alias] May-aliases at the end of function truncl:
-  <Bot>
+[alias] May-aliases at the end of function truncl: ⊥
 [alias] analysing function: unsetenv
-[alias] May-aliases at the end of function unsetenv:
-  <Bot>
+[alias] May-aliases at the end of function unsetenv: ⊥
 [alias] analysing function: wcstombs
-[alias] May-aliases at the end of function wcstombs:
-  <Bot>
+[alias] May-aliases at the end of function wcstombs: ⊥
 [alias] analysing function: wctomb
-[alias] May-aliases at the end of function wctomb:
-  <Bot>
+[alias] May-aliases at the end of function wctomb: ⊥
-- 
GitLab