From f33d6a06cf4db382eff6c4fee388a2aca5c6a8e5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?David=20B=C3=BChler?= <david.buhler@cea.fr>
Date: Wed, 2 Aug 2023 14:18:43 +0200
Subject: [PATCH] [Eva] Precomputes the consolidated states of all domains, and
 not only cvalue.

According to the -eva-join-results parameter.
---
 src/plugins/eva/domains/domain_store.ml     | 8 +++++++-
 src/plugins/eva/engine/compute_functions.ml | 4 ----
 2 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/src/plugins/eva/domains/domain_store.ml b/src/plugins/eva/domains/domain_store.ml
index 9d8f48ecd40..bdd154a2625 100644
--- a/src/plugins/eva/domains/domain_store.ml
+++ b/src/plugins/eva/domains/domain_store.ml
@@ -283,6 +283,12 @@ module Make (Domain: InputDomain) = struct
     if Storage.get ()
     then update_callstack_table ~after:true stmt callstack state
 
-  let mark_as_computed () = Table_By_Callstack.mark_as_computed ()
+  let mark_as_computed () =
+    (* Precompute consolidated states if required. *)
+    if Storage.get () && Parameters.JoinResults.get () then
+      Table_By_Callstack.iter
+        (fun s _ -> ignore (get_stmt_state ~after:false s));
+    Table_By_Callstack.mark_as_computed ()
+
   let is_computed () = Storage.get () && Table_By_Callstack.is_computed ()
 end
diff --git a/src/plugins/eva/engine/compute_functions.ml b/src/plugins/eva/engine/compute_functions.ml
index e075d65bc08..d46426ab057 100644
--- a/src/plugins/eva/engine/compute_functions.ml
+++ b/src/plugins/eva/engine/compute_functions.ml
@@ -109,10 +109,6 @@ let pre_analysis () =
 
 let post_analysis_cleanup ~aborted =
   Eva_utils.clear_call_stack ();
-  (* Precompute consolidated states if required *)
-  if Parameters.JoinResults.get () then
-    Db.Value.Table_By_Callstack.iter
-      (fun s _ -> ignore (Db.Value.get_stmt_state s));
   if not aborted then
     (* Keep memexec results for users that want to resume the analysis *)
     Mem_exec.cleanup_results ()
-- 
GitLab