From 7a5ec248f6cb71a9ac07ad0e8bbc1a97b304ae40 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?David=20B=C3=BChler?= <david.buhler@cea.fr>
Date: Wed, 16 Mar 2022 15:00:49 +0100
Subject: [PATCH] [Eva] API: exports [no_results].

---
 src/plugins/value/engine/analysis.ml        | 4 ++++
 src/plugins/value/engine/analysis.mli       | 5 +++++
 src/plugins/value/engine/function_calls.mli | 3 +++
 3 files changed, 12 insertions(+)

diff --git a/src/plugins/value/engine/analysis.ml b/src/plugins/value/engine/analysis.ml
index 17575ba0ac3..9b43b96fa2f 100644
--- a/src/plugins/value/engine/analysis.ml
+++ b/src/plugins/value/engine/analysis.ml
@@ -29,6 +29,10 @@ let current_computation_state = Self.current_computation_state
 let register_computation_hook = Self.register_computation_hook
 let is_computed = Self.is_computed
 
+let save_results kf =
+  try Function_calls.save_results (Kernel_function.get_definition kf)
+  with Kernel_function.No_Definition -> false
+
 module type Results = sig
   type state
   type value
diff --git a/src/plugins/value/engine/analysis.mli b/src/plugins/value/engine/analysis.mli
index 8d06f8667a0..98c2201b905 100644
--- a/src/plugins/value/engine/analysis.mli
+++ b/src/plugins/value/engine/analysis.mli
@@ -144,6 +144,11 @@ val status: Cil_types.kernel_function -> status
     Please use {!Eva.Results.are_available} instead to known whether results
     are available for a given function. *)
 val use_spec_instead_of_definition: Cil_types.kernel_function -> bool
+
+(** Returns [true] if the user has requested that no results should be recorded
+    for the given function. Please use {!Eva.Results.are_available} instead
+    to known whether results are available for a given function. *)
+val save_results: Cil_types.kernel_function -> bool
 [@@@ api_end]
 
 val cvalue_initial_state: unit -> Cvalue.Model.t
diff --git a/src/plugins/value/engine/function_calls.mli b/src/plugins/value/engine/function_calls.mli
index 3dbf96314e3..698b62406e5 100644
--- a/src/plugins/value/engine/function_calls.mli
+++ b/src/plugins/value/engine/function_calls.mli
@@ -22,6 +22,9 @@
 
 open Cil_types
 
+(** True if the results should be saved for the given function. *)
+val save_results: fundec -> bool
+
 (** What is used for the analysis of a given function:
     - a Cvalue builtin (and other domains use the specification)
     - the function specification
-- 
GitLab