From 23beef9115a5abe994ab9d9924ac77e76aea8846 Mon Sep 17 00:00:00 2001 From: Valentin Perrelle <valentin.perrelle@cea.fr> Date: Thu, 13 Oct 2022 16:35:53 +0200 Subject: [PATCH] [Eva] Exports Db.Properties.loc_to_loc as Eva_results.eval_tlval_as_location --- src/plugins/eva/Eva.mli | 4 ++++ src/plugins/eva/utils/eva_results.ml | 4 ++++ src/plugins/eva/utils/eva_results.mli | 4 ++++ 3 files changed, 12 insertions(+) diff --git a/src/plugins/eva/Eva.mli b/src/plugins/eva/Eva.mli index 3b01353a856..d36e2198c59 100644 --- a/src/plugins/eva/Eva.mli +++ b/src/plugins/eva/Eva.mli @@ -727,6 +727,10 @@ module Eva_results: sig val change_callstacks: (Value_types.callstack -> Value_types.callstack) -> results -> results + val eval_tlval_as_location : + ?result:Cil_types.varinfo -> + Cvalue.Model.t -> Cil_types.term -> Locations.location + end module Unit_tests: sig diff --git a/src/plugins/eva/utils/eva_results.ml b/src/plugins/eva/utils/eva_results.ml index fcdde083d16..0d89c3a001b 100644 --- a/src/plugins/eva/utils/eva_results.ml +++ b/src/plugins/eva/utils/eva_results.ml @@ -263,6 +263,10 @@ let merge r1 r2 = { main; before_states; after_states; kf_initial_states; initial_state; initial_args; alarms; statuses; kf_callers } +let eval_tlval_as_location ?result state term = + let env = Eval_terms.env_post_f ~pre:state ~post:state ~result () in + try Eval_terms.eval_tlval_as_location ~alarm_mode:Ignore env term + with Eval_terms.LogicEvalError _ -> raise Logic_to_c.No_conversion (* Local Variables: diff --git a/src/plugins/eva/utils/eva_results.mli b/src/plugins/eva/utils/eva_results.mli index 19e35f6bd7b..ca502d65f62 100644 --- a/src/plugins/eva/utils/eva_results.mli +++ b/src/plugins/eva/utils/eva_results.mli @@ -46,6 +46,10 @@ val merge: results -> results -> results val change_callstacks: (Value_types.callstack -> Value_types.callstack) -> results -> results +val eval_tlval_as_location : + ?result:Cil_types.varinfo -> + Cvalue.Model.t -> Cil_types.term -> Locations.location + [@@@ api_end] (* -- GitLab