From 64264c615e08bea7beaf662c632e63b272d26e76 Mon Sep 17 00:00:00 2001 From: Valentin Perrelle <valentin.perrelle@cea.fr> Date: Mon, 7 Feb 2022 16:57:30 +0100 Subject: [PATCH] [Reduc] Use the new Eva API --- src/plugins/reduc/hyp.ml | 3 +-- src/plugins/reduc/value2acsl.ml | 14 ++++++-------- src/plugins/reduc/value2acsl.mli | 4 ++-- 3 files changed, 9 insertions(+), 12 deletions(-) diff --git a/src/plugins/reduc/hyp.ml b/src/plugins/reduc/hyp.ml index fc4fabf2763..882e9a63c23 100644 --- a/src/plugins/reduc/hyp.ml +++ b/src/plugins/reduc/hyp.ml @@ -36,12 +36,11 @@ class hypotheses_visitor (env: Collect.env) = object(self) method! vstmt_aux stmt = let kf = Option.get (self#current_kf) in - let state = Db.Value.get_stmt_state stmt in if Collect.should_annotate_stmt env stmt then begin let vars = Collect.get_relevant_vars_stmt env kf stmt in List.iter (fun e -> - let p_opt = pred_opt_from_expr_state state e in + let p_opt = pred_opt_from_expr_state stmt e in Option.iter (Misc.assert_and_validate ~kf stmt) p_opt) vars end; diff --git a/src/plugins/reduc/value2acsl.ml b/src/plugins/reduc/value2acsl.ml index c91d1ba6992..e5201a791cc 100644 --- a/src/plugins/reduc/value2acsl.ml +++ b/src/plugins/reduc/value2acsl.ml @@ -165,15 +165,13 @@ let value_to_predicate_opt ?(loc=Location.unknown) t v = with | Not_based_on_null -> (* base_offsets_to_predicate ~loc t m *) None -let exp_to_predicate ?(loc=Location.unknown) state e = - let value = !Db.Value.eval_expr ~with_alarms:CilE.warn_none_mode state e in +let exp_to_predicate ?(loc=Location.unknown) stmt e = + let value = Eva.Results.(before stmt |> eval_exp e |> as_ival) in let te = Logic_utils.expr_to_term ~coerce:false e in - value_to_predicate_opt ~loc te value + Option.bind (Result.to_option value) (ival_to_predicate_opt ~loc te) -let lval_to_predicate ?(loc=Location.unknown) state lv = - let value = snd(!Db.Value.eval_lval - ~with_alarms:CilE.warn_none_mode None state lv) - in +let lval_to_predicate ?(loc=Location.unknown) stmt lv = + let value = Eva.Results.(before stmt |> eval_lval lv |> as_ival) in let e = Cil.new_exp ~loc (Lval lv) in let te = Logic_utils.expr_to_term ~coerce:false e in - value_to_predicate_opt ~loc te value + Option.bind (Result.to_option value) (ival_to_predicate_opt ~loc te) diff --git a/src/plugins/reduc/value2acsl.mli b/src/plugins/reduc/value2acsl.mli index 17546299c21..4d1aacea7b0 100644 --- a/src/plugins/reduc/value2acsl.mli +++ b/src/plugins/reduc/value2acsl.mli @@ -27,5 +27,5 @@ open Cil_types @return None if no such predicate can be created. *) val value_to_predicate_opt: ?loc:location -> term -> Cvalue.V.t -> predicate option -val lval_to_predicate: ?loc:location -> Cvalue.Model.t -> lval -> predicate option -val exp_to_predicate: ?loc:location -> Cvalue.Model.t -> exp -> predicate option +val lval_to_predicate: ?loc:location -> Cil_types.stmt -> lval -> predicate option +val exp_to_predicate: ?loc:location -> Cil_types.stmt -> exp -> predicate option -- GitLab