From 7b5f37eb103303e9799d78a8e38bc003af6c4d1f Mon Sep 17 00:00:00 2001
From: Maxime Jacquemin <maxime2.jacquemin@gmail.com>
Date: Fri, 26 Mar 2021 11:17:41 +0100
Subject: [PATCH] [Eva] api: Bug fix

The previous way of building eval_lval and eval_exp only evaluated the
functor Make once, which is not what we want. This should be fixed.
---
 src/plugins/value/utils/results.ml | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/plugins/value/utils/results.ml b/src/plugins/value/utils/results.ml
index a9ea9e29922..56ecf3433e4 100644
--- a/src/plugins/value/utils/results.ml
+++ b/src/plugins/value/utils/results.ml
@@ -348,7 +348,7 @@ end
 type evaluation = (module Evaluation)
 type lvaluation
 
-let eval_lval, eval_exp =
+let build_eval_lval_and_exp () =
   let module M = Make () in
   let open Response in
   let build = function
@@ -371,9 +371,13 @@ let eval_lval, eval_exp =
   let eval_exp exp req = build @@ M.eval_exp exp req in
   eval_lval, eval_exp
 
+let eval_lval lval req = (fst @@ build_eval_lval_and_exp ()) lval req
+
 let eval_var vi req =
   eval_lval (Cil.var vi) req
 
+let eval_exp exp req = (snd @@ build_eval_lval_and_exp ()) exp req
+
 let eval_address _lval _req =
   raise Not_implemented
 
-- 
GitLab