From 6d7269d08096af8b4fbf3c5a8f4a434266e68449 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?David=20B=C3=BChler?= <david.buhler@cea.fr>
Date: Mon, 15 Feb 2021 19:20:49 +0100
Subject: [PATCH] [Eva] Minor simplification in builtins.ml: removes type
 [use_builtin].

---
 src/plugins/value/domains/cvalue/builtins.ml | 23 ++++++++------------
 1 file changed, 9 insertions(+), 14 deletions(-)

diff --git a/src/plugins/value/domains/cvalue/builtins.ml b/src/plugins/value/domains/cvalue/builtins.ml
index b1139625036..4791f793d20 100644
--- a/src/plugins/value/domains/cvalue/builtins.ml
+++ b/src/plugins/value/domains/cvalue/builtins.ml
@@ -44,11 +44,6 @@ type builtin =
   (Cil_types.exp * Cvalue.V.t * Cvalue.V_Offsetmap.t) list ->
   call_result
 
-(* 'Always' means the builtin will always be used to replace a function
-   with its name. 'OnAuto' means that the function will be replaced only
-   if -eva-builtins-auto is set. *)
-type use_builtin = Always | OnAuto
-
 (* Table of all registered builtins; filled by [register_builtin] calls.  *)
 let table = Hashtbl.create 17
 
@@ -65,19 +60,19 @@ module BuiltinsOverride = State_builder.Set_ref (Kernel_function.Set) (Info)
 
 let register_builtin name ?replace ?typ f =
   Value_parameters.register_builtin name;
-  Hashtbl.replace table name (f, typ, None, Always);
+  Hashtbl.replace table name (f, typ, name);
   match replace with
   | None -> ()
-  | Some fname -> Hashtbl.replace table fname (f, typ, Some name, OnAuto)
+  | Some fname -> Hashtbl.replace table fname (f, typ, name)
 
 (* The functions in _builtin must only return the 'Always' builtins *)
 
 let builtin_names_and_replacements () =
   let stand_alone, replacements =
-    Hashtbl.fold (fun name (_, _, replaced_by, _) (acc1, acc2) ->
-        match replaced_by with
-        | None -> name :: acc1, acc2
-        | Some rep_by -> acc1, (name, rep_by) :: acc2
+    Hashtbl.fold (fun name (_, _, builtin_name) (acc1, acc2) ->
+        if name = builtin_name
+        then name :: acc1, acc2
+        else acc1, (name, builtin_name) :: acc2
       ) table ([], [])
   in
   List.sort String.compare stand_alone,
@@ -184,8 +179,8 @@ let prepare_builtins () =
   let autobuiltins = Value_parameters.BuiltinsAuto.get () in
   (* Links kernel functions to the registered builtins. *)
   Hashtbl.iter
-    (fun name (f, typ, _bname, u) ->
-       if autobuiltins || u = Always
+    (fun name (f, typ, bname) ->
+       if autobuiltins || name = bname
        then
          try
            let kf = Globals.Functions.find_by_name name in
@@ -196,7 +191,7 @@ let prepare_builtins () =
   Value_parameters.BuiltinsOverrides.iter
     (fun (kf, name) ->
        let builtin_name = Option.get name in
-       let f, typ, _, _ = Hashtbl.find table builtin_name in
+       let f, typ, _ = Hashtbl.find table builtin_name in
        prepare_builtin kf builtin_name f typ)
 
 let find_builtin_override = Hashtbl.find_opt builtins_table
-- 
GitLab