From c496b75655c29b9b473ad6c7ec1f7502cc99b8a7 Mon Sep 17 00:00:00 2001
From: Benjamin Monate <benjamin.monate@cea.fr>
Date: Fri, 30 Nov 2007 13:04:09 +0000
Subject: [PATCH] project for Alarms

---
 Makefile.in                       | 10 ++++++----
 cil/ocamlutil/cilutil.ml          |  8 ++++++++
 cil/ocamlutil/cilutil.mli         |  2 ++
 src/kernel/alarms.ml              | 31 ++++++++++++++++++++++---------
 src/kernel/alarms.mli             |  4 +++-
 src/kernel/boot.ml                |  6 +++++-
 src/kernel/cilE.ml                |  9 +--------
 src/kernel/cilE.mli               |  3 ---
 src/kernel/computation.ml         |  4 ++--
 src/kernel/datatype.ml            |  4 ++--
 src/kernel/datatype.mli           |  4 ++--
 src/kernel/db.mli                 |  7 +++----
 src/kernel/project.mli            |  4 ++--
 src/memory_state/cvalue_type.ml   |  6 +++---
 src/pdg/build.ml                  | 10 +++++-----
 src/pdg/marks.ml                  | 10 +++++-----
 src/slicing/printSlice.ml         |  2 +-
 src/slicing/register.ml           |  8 ++++----
 src/slicing/slicingMacros.ml      |  6 +++---
 src/slicing/slicingProject.ml     |  2 +-
 src/slicing_types/slicingTypes.ml |  4 ++--
 src/value/eval.ml                 | 10 ++++++----
 22 files changed, 88 insertions(+), 66 deletions(-)

diff --git a/Makefile.in b/Makefile.in
index 802008d92e1..30765326545 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -522,12 +522,14 @@ MODULES_TODOC += src/memory_state/widen.ml \
 # modules to be linked before kernel and plugin type definitions,
 # e.g. generic modules and type definitions
 ACMO =	src/kernel/version.cmo \
-	src/kernel/alarms.cmo src/kernel/cilE.cmo \
-	src/misc/utils.cmo src/kernel/ast_info.cmo \
+	src/misc/utils.cmo \
 	src/misc/qstack.cmo src/misc/hook.cmo \
+	src/kernel/kind.cmo src/kernel/project.cmo \
+	src/kernel/datatype.cmo	src/kernel/kernel_datatype.cmo \
+	src/kernel/computation.cmo \
+	src/kernel/alarms.cmo src/kernel/cilE.cmo \
+	src/kernel/ast_info.cmo \
 	src/misc/mergemap.cmo \
-	src/kernel/kind.cmo src/kernel/project.cmo src/kernel/datatype.cmo \
-	src/kernel/kernel_datatype.cmo src/kernel/computation.cmo \
 	src/kernel/cil_state.cmo \
 	src/ai/my_bigint.cmo \
 	src/ai/abstract_interp.cmo \
diff --git a/cil/ocamlutil/cilutil.ml b/cil/ocamlutil/cilutil.ml
index 41eff16da38..8485726598b 100755
--- a/cil/ocamlutil/cilutil.ml
+++ b/cil/ocamlutil/cilutil.ml
@@ -1004,6 +1004,14 @@ module StmtHashtbl = struct
   iter (fun k v -> Format.fprintf fmt "%d; " k.sid) s
 end
 
+module VarinfoHashtbl =
+  Hashtbl.Make(struct
+                 type t = varinfo
+                 let compare v1 v2 = Pervasives.compare v1.vid v2.vid
+                 let hash v1 = v1.vid
+                 let equal v1 v2 = v1.vid = v2.vid
+               end)
+
 let flush_all () =
   Format.printf "@?";
   Format.eprintf "@?"
diff --git a/cil/ocamlutil/cilutil.mli b/cil/ocamlutil/cilutil.mli
index 3f319a3f101..01a5268ef37 100644
--- a/cil/ocamlutil/cilutil.mli
+++ b/cil/ocamlutil/cilutil.mli
@@ -456,6 +456,8 @@ module StmtComparable : Graph.Sig.COMPARABLE with type t = Cil_types.stmt
 module StmtHashtbl : sig include Hashtbl.S with type key = Cil_types.stmt
     val pretty : Format.formatter ->  'a t  -> unit
 end
+
+module VarinfoHashtbl : Hashtbl.S with type key = Cil_types.varinfo
       
 val printStages : bool ref
 
diff --git a/src/kernel/alarms.ml b/src/kernel/alarms.ml
index 021c201eaad..7717336aeda 100644
--- a/src/kernel/alarms.ml
+++ b/src/kernel/alarms.ml
@@ -20,7 +20,7 @@
 (*                                                                        *)
 (**************************************************************************)
 
-(* $Id: alarms.ml,v 1.7 2007-11-28 16:34:45 uid568 Exp $ *)
+(* $Id: alarms.ml,v 1.8 2007-11-30 13:04:09 uid528 Exp $ *)
 
 open Cil_types
 open Cil
@@ -51,14 +51,28 @@ module AlarmSet =
                    (*WILL PROBABLY LOOP ON TYPES*)
            end)
 
-let (tbl:AlarmSet.t InstrHashtbl.t) = InstrHashtbl.create 7
+(*let (tbl:AlarmSet.t InstrHashtbl.t) = InstrHashtbl.create 7*)
+
+module S = Project.Datatype.PersistentDummy(AlarmSet)
+
+module Alarms = 
+  Computation.InstrHashtbl
+    (S)
+    (struct 
+       let name = 
+         Project.Computation.Name.make "alarms"
+       let dependencies = []
+       let size = 7 
+     end)
+
+let self = Alarms.self
 
 let register ki t formula =
   try
     let to_add = t,formula in
-    let old = InstrHashtbl.find tbl ki in
+    let old = Alarms.find ki in
     if AlarmSet.mem to_add old then false
-    else (InstrHashtbl.add tbl ki (AlarmSet.add to_add old);
+    else (Alarms.add ki (AlarmSet.add to_add old);
           (*(match ki with
            |Cil_types.Kstmt k ->
               Format.eprintf "Got Id:%d@." k.Cil_types.sid
@@ -72,19 +86,18 @@ let register ki t formula =
               Format.eprintf "Got Id:%d@." k.Cil_types.sid
            | _ -> Format.eprintf "Got GLOB@."
           );*)
-    InstrHashtbl.add tbl ki (AlarmSet.singleton (t,formula));
+    Alarms.add ki (AlarmSet.singleton (t,formula));
     true
 
-let clear () = InstrHashtbl.clear tbl
+let clear () = Alarms.clear ()
 
 let fold f acc =
-  InstrHashtbl.fold
+  Alarms.fold
     (fun ki set acc -> AlarmSet.fold (fun v acc -> f ki v acc) set acc)
-    tbl
     acc
 
 let fold_kinstr ki f acc =
-  let s = InstrHashtbl.find tbl ki in
+  let s = Alarms.find ki in
   AlarmSet.fold f s acc
 
 (*
diff --git a/src/kernel/alarms.mli b/src/kernel/alarms.mli
index d1054a3764d..908b78be89f 100644
--- a/src/kernel/alarms.mli
+++ b/src/kernel/alarms.mli
@@ -20,7 +20,7 @@
 (*                                                                        *)
 (**************************************************************************)
 
-(* $Id: alarms.mli,v 1.5 2007-11-28 16:34:45 uid568 Exp $ *)
+(* $Id: alarms.mli,v 1.6 2007-11-30 13:04:09 uid528 Exp $ *)
 
 type t = 
   | Division_alarm
@@ -33,6 +33,8 @@ val clear: unit -> unit
 val fold: (Cil_types.kinstr -> (t*Cil_types.code_annotation) -> 'a -> 'a) -> 'a -> 'a
 val fold_kinstr: Cil_types.kinstr -> ((t*Cil_types.code_annotation) -> 'a -> 'a) -> 'a -> 'a 
 
+val self: Project.Computation.t
+
 (*
 Local Variables:
 compile-command: "LC_ALL=C make -C ../.. -j"
diff --git a/src/kernel/boot.ml b/src/kernel/boot.ml
index 40d6439a30a..37ea80fc222 100644
--- a/src/kernel/boot.ml
+++ b/src/kernel/boot.ml
@@ -20,7 +20,7 @@
 (*                                                                        *)
 (**************************************************************************)
 
-(* $Id: boot.ml,v 1.5 2007-11-28 16:34:45 uid568 Exp $ *)
+(* $Id: boot.ml,v 1.6 2007-11-30 13:04:09 uid528 Exp $ *)
 
 (** Boot Frama-c. *)
 
@@ -34,6 +34,10 @@ let () =
   Cil.useLogicalOperators := false; (* do not use lazy LAND and LOR *)
   Pretty.flushOften := true
 
+(* Additional internal state dependencies *)
+let () =
+  Project.Computation.add_dependency Alarms.self Db.Value.self
+
 let go () =
   if Cmdline.Debug.get () > 0 then begin
     (* Dump dependencies graph *)
diff --git a/src/kernel/cilE.ml b/src/kernel/cilE.ml
index a098e1441f2..d056e9c1b2a 100644
--- a/src/kernel/cilE.ml
+++ b/src/kernel/cilE.ml
@@ -20,7 +20,7 @@
 (*                                                                        *)
 (**************************************************************************)
 
-(* $Id: cilE.ml,v 1.31 2007-11-28 16:34:45 uid568 Exp $ *)
+(* $Id: cilE.ml,v 1.32 2007-11-30 13:04:09 uid528 Exp $ *)
 (* Cil extensions *)
 open Cil_types
 open Cil
@@ -293,13 +293,6 @@ let warn_index msg =
 let warn_mem_read = warn_mem "read"
 let warn_mem_write = warn_mem "write"
 
-module VarinfoHashtbl =
-  Hashtbl.Make(struct
-                 type t = varinfo
-                 let compare v1 v2 = Pervasives.compare v1.vid v2.vid
-                 let hash v1 = v1.vid
-                 let equal v1 v2 = v1.vid = v2.vid
-               end)
 (*
 Local Variables:
 compile-command: "LC_ALL=C make -C ../.. -j"
diff --git a/src/kernel/cilE.mli b/src/kernel/cilE.mli
index f1050e6fdc8..bf4fd466082 100644
--- a/src/kernel/cilE.mli
+++ b/src/kernel/cilE.mli
@@ -48,6 +48,3 @@ val warn_shift : int -> unit
 val warn_mem_read : unit -> unit
 val warn_mem_write : unit -> unit
 val warn_index : string -> unit
-
-
-module VarinfoHashtbl : (Hashtbl.S with type key = Cil_types.varinfo)
diff --git a/src/kernel/computation.ml b/src/kernel/computation.ml
index 9fe8189e3a7..6db1c640b60 100644
--- a/src/kernel/computation.ml
+++ b/src/kernel/computation.ml
@@ -20,7 +20,7 @@
 (*                                                                        *)
 (**************************************************************************)
 
-(* $Id: computation.ml,v 1.7 2007-11-28 16:34:45 uid568 Exp $ *)
+(* $Id: computation.ml,v 1.8 2007-11-30 13:04:09 uid528 Exp $ *)
 
 module type NAME_DPDS = sig
   val name: Project.Computation.Name.t
@@ -103,7 +103,7 @@ end
 module IntHashtbl = Make_Hashtbl(Inthash)
 module InstrHashtbl = Make_Hashtbl(Cil.InstrHashtbl)
 module StmtHashtbl = Make_Hashtbl(Cilutil.StmtHashtbl)
-module VarinfoHashtbl = Make_Hashtbl(CilE.VarinfoHashtbl)
+module VarinfoHashtbl = Make_Hashtbl(Cilutil.VarinfoHashtbl)
 module Hashtbl(Key:Hashtbl.HashedType) = Make_Hashtbl(Hashtbl.Make(Key))
 
 module type REF_INPUT = sig
diff --git a/src/kernel/datatype.ml b/src/kernel/datatype.ml
index 0a7dd1c5c55..e1d97cbf5f8 100644
--- a/src/kernel/datatype.ml
+++ b/src/kernel/datatype.ml
@@ -20,7 +20,7 @@
 (*                                                                        *)
 (**************************************************************************)
 
-(* $Id: datatype.ml,v 1.7 2007-11-28 16:34:45 uid568 Exp $ *)
+(* $Id: datatype.ml,v 1.8 2007-11-30 13:04:09 uid528 Exp $ *)
 
 module type INPUT = sig
   include Project.Datatype.INPUT
@@ -58,7 +58,7 @@ module Make_Hashtbl(H: HASHTBL)(Data:INPUT)(Info:Signature.SIZE) =
 module IntHashtbl = Make_Hashtbl(Inthash)
 module InstrHashtbl = Make_Hashtbl(Cil.InstrHashtbl)
 module StmtHashtbl = Make_Hashtbl(Cilutil.StmtHashtbl)
-module VarinfoHashtbl = Make_Hashtbl(CilE.VarinfoHashtbl)
+module VarinfoHashtbl = Make_Hashtbl(Cilutil.VarinfoHashtbl)
 
 module Ref(Data:INPUT) =
   Project.Datatype.Register
diff --git a/src/kernel/datatype.mli b/src/kernel/datatype.mli
index 49b186ce0a5..eecf44459b6 100644
--- a/src/kernel/datatype.mli
+++ b/src/kernel/datatype.mli
@@ -20,7 +20,7 @@
 (*                                                                        *)
 (**************************************************************************)
 
-(* $Id: datatype.mli,v 1.6 2007-11-28 16:34:45 uid568 Exp $ *)
+(* $Id: datatype.mli,v 1.7 2007-11-30 13:04:09 uid528 Exp $ *)
 
 (** Datatype implementations and builders. 
     Provide ways to implement signature [Project.Datatype.OUTPUT] without
@@ -61,7 +61,7 @@ module StmtHashtbl(Data:INPUT)(Info:Signature.SIZE) :
   Project.Datatype.OUTPUT with type t = Data.t Cilutil.StmtHashtbl.t
 
 module VarinfoHashtbl(Data:INPUT)(Info:Signature.SIZE) :
-  Project.Datatype.OUTPUT with type t = Data.t CilE.VarinfoHashtbl.t
+  Project.Datatype.OUTPUT with type t = Data.t Cilutil.VarinfoHashtbl.t
 
 (** Sub-signature of [Hashtbl.S]. *)
 module type HASHTBL = sig
diff --git a/src/kernel/db.mli b/src/kernel/db.mli
index a66ce41481a..fa23d12c310 100644
--- a/src/kernel/db.mli
+++ b/src/kernel/db.mli
@@ -20,7 +20,7 @@
 (*                                                                        *)
 (**************************************************************************)
 
-(* $Id: db.mli,v 1.329 2007-11-28 16:34:45 uid568 Exp $ *)
+(* $Id: db.mli,v 1.330 2007-11-30 13:04:09 uid528 Exp $ *)
 
 (** Database in which plugins are registered. *)
 
@@ -434,9 +434,8 @@ module Postdominators: sig
 
   exception Top
     (** Used for {!stmt_postdominators} when the postdominators of a statement
-	have not been computed. It means that there is no path from this
-	statement to the function exit (infinite loop).  Maybe we should do
-	something for this, but what? *)
+	cannot be computed. It means that there is no path from this
+	statement to the function return. *)
 
   val stmt_postdominators: (kernel_function -> stmt -> Cilutil.StmtSet.t) ref
     (** @raise Top (see above) *)
diff --git a/src/kernel/project.mli b/src/kernel/project.mli
index 2c3e36b6a40..85d53ddec38 100644
--- a/src/kernel/project.mli
+++ b/src/kernel/project.mli
@@ -20,9 +20,9 @@
 (*                                                                        *)
 (**************************************************************************)
 
-(* $Id: project.mli,v 1.51 2007-11-28 16:34:45 uid568 Exp $ *)
+(* $Id: project.mli,v 1.52 2007-11-30 13:04:09 uid528 Exp $ *)
 
-(** Gestion of projects. 
+(** Projects management. 
 
     A project groups together all the internal states of Frama-C. An internal
     state is roughly the result of a computation which depends of an AST. It is
diff --git a/src/memory_state/cvalue_type.ml b/src/memory_state/cvalue_type.ml
index 1c1dfe07ed9..30c5601c311 100644
--- a/src/memory_state/cvalue_type.ml
+++ b/src/memory_state/cvalue_type.ml
@@ -504,16 +504,16 @@ module Partial_lmap = Lmap.Make_LOffset(V)(V_Offsetmap_ext)
 
 module Default_offsetmap = 
 struct  
-  let initialized_var_table = CilE.VarinfoHashtbl.create 17
+  let initialized_var_table = Cilutil.VarinfoHashtbl.create 17
     
   let create_initialized_var varinfo validity initinfo =
-    CilE.VarinfoHashtbl.add initialized_var_table varinfo initinfo;
+    Cilutil.VarinfoHashtbl.add initialized_var_table varinfo initinfo;
     Base.create_initialized varinfo validity
 	
 
   let default_offsetmap varid = match varid with
   | Base.Initialized_Var (v,_) ->
-      (try CilE.VarinfoHashtbl.find initialized_var_table v
+      (try Cilutil.VarinfoHashtbl.find initialized_var_table v
         with Not_found ->
           V_Offsetmap.empty)
   | Base.Var _ | Base.Null | Base.Uninitialized
diff --git a/src/pdg/build.ml b/src/pdg/build.ml
index eeea8eecfab..4d0e271fb0d 100644
--- a/src/pdg/build.ml
+++ b/src/pdg/build.ml
@@ -22,7 +22,7 @@
 (*                                                                        *)
 (**************************************************************************)
 
-(* $Id: build.ml,v 1.76 2007-11-28 16:34:45 uid568 Exp $ *)
+(* $Id: build.ml,v 1.77 2007-11-30 13:04:09 uid528 Exp $ *)
 
 (** Build graphs (PDG) for the function
     (see module {!module: Build.BuildPdg})
@@ -291,7 +291,7 @@ module BuildPdg : sig
              ctrl_dpds : (SimpleNodeSet.t) Cil.InstrHashtbl.t ;
                        (** The nodes to which each stmt control-depend on.
                          * The links will be added in the graph at the end. *)
-             decl_nodes : t_node CilE.VarinfoHashtbl.t ;
+             decl_nodes : t_node Cilutil.VarinfoHashtbl.t ;
                        (** map between declaration nodes and the variables
                            to build the dependencies. *)
             }
@@ -311,7 +311,7 @@ module BuildPdg : sig
       graph = graph; states = states; index = index;
       topinput = None; other_inputs = [];
       ctrl_dpds  = Cil.InstrHashtbl.create nb_stmts ;
-      decl_nodes = CilE.VarinfoHashtbl.create 10 ;
+      decl_nodes = Cilutil.VarinfoHashtbl.create 10 ;
     }
 
   let get_kf pdg = pdg.fct
@@ -387,7 +387,7 @@ module BuildPdg : sig
   let decl_var pdg var =
     let key = Key.decl_var_key var in
     let new_node = add_elem pdg key in
-      CilE.VarinfoHashtbl.add pdg.decl_nodes var new_node;
+      Cilutil.VarinfoHashtbl.add pdg.decl_nodes var new_node;
       new_node
 
   let get_var_base zone =
@@ -463,7 +463,7 @@ module BuildPdg : sig
   let add_decl_dpds pdg node dpd_kind varset =
     let add_dpd var =
       try
-        let var_decl_node = CilE.VarinfoHashtbl.find pdg.decl_nodes var in
+        let var_decl_node = Cilutil.VarinfoHashtbl.find pdg.decl_nodes var in
         add_dpd pdg node dpd_kind var_decl_node
       with Not_found -> ()
     in Cil.VarinfoSet.iter add_dpd varset
diff --git a/src/pdg/marks.ml b/src/pdg/marks.ml
index 307b976dbdc..9a8278b039d 100644
--- a/src/pdg/marks.ml
+++ b/src/pdg/marks.ml
@@ -120,26 +120,26 @@ module F_Proj (C : PdgMarks.T_Config) :
   type t_mark = C.M.t
   type t_fct = (C.M.t, C.M.t_call_info) PdgIndex.FctIndex.t
   type t_fct_info = F.t
-  type t = t_fct_info CilE.VarinfoHashtbl.t
+  type t = t_fct_info Cilutil.VarinfoHashtbl.t
 
   type request = (PdgTypes.Pdg.t * (PdgTypes.Node.t * F.t_mark) list)
 
-  let empty = CilE.VarinfoHashtbl.create 10
+  let empty = Cilutil.VarinfoHashtbl.create 10
 
   let pdg_fvar pdg = PdgTypes.Pdg.get_var_fct pdg
 
   let find_marks proj fct_var =
-    try let f = CilE.VarinfoHashtbl.find proj fct_var in Some (F.get_idx f)
+    try let f = Cilutil.VarinfoHashtbl.find proj fct_var in Some (F.get_idx f)
     with Not_found -> None
 
   let get proj pdg =
     let fct_var = pdg_fvar pdg in
-    try CilE.VarinfoHashtbl.find proj fct_var
+    try Cilutil.VarinfoHashtbl.find proj fct_var
     with Not_found -> 
       let kf = Globals.Functions.get fct_var in
       let pdg = !Db.Pdg.get kf in
       let info = F.create pdg in
-        CilE.VarinfoHashtbl.add proj fct_var info; 
+        Cilutil.VarinfoHashtbl.add proj fct_var info; 
         info
 
   (** Add the marks to the pdg nodes. 
diff --git a/src/slicing/printSlice.ml b/src/slicing/printSlice.ml
index 374dd935900..2e44d120085 100644
--- a/src/slicing/printSlice.ml
+++ b/src/slicing/printSlice.ml
@@ -191,7 +191,7 @@ module PrintProject = struct
       let do_ff ff = List.iter (do_edge (Slice ff)) ff.T.ff_called_by
       in List.iter do_ff (M.fi_slices fi)
     in
-      CilE.VarinfoHashtbl.iter do_f proj.T.functions
+      Cilutil.VarinfoHashtbl.iter do_f proj.T.functions
 
   let iter_edges_actions f proj =
     let rec do_act_edge n rq_list = match rq_list with
diff --git a/src/slicing/register.ml b/src/slicing/register.ml
index 748d04b8515..1def8959426 100644
--- a/src/slicing/register.ml
+++ b/src/slicing/register.ml
@@ -252,19 +252,19 @@ let merge_db_select db_select1 db_select2 =
   let select = merge_select select1 select2 in
     (fvar, select)
 
-let empty_selects () = CilE.VarinfoHashtbl.create 7
+let empty_selects () = Cilutil.VarinfoHashtbl.create 7
 
 let add_to_selects db_select hsel =
   let vf, select = db_select in
   let select =
-    try let old_selection = CilE.VarinfoHashtbl.find hsel vf in
+    try let old_selection = Cilutil.VarinfoHashtbl.find hsel vf in
       merge_select old_selection select 
     with Not_found -> select
-  in CilE.VarinfoHashtbl.replace hsel vf select
+  in Cilutil.VarinfoHashtbl.replace hsel vf select
 
 let fold_selects f hsel acc =
   let dof v sel acc = f (v, sel) acc in
-  CilE.VarinfoHashtbl.fold dof hsel acc
+  Cilutil.VarinfoHashtbl.fold dof hsel acc
 
 let iter_selects f hsel = fold_selects (fun s _ -> f s) hsel ()
 
diff --git a/src/slicing/slicingMacros.ml b/src/slicing/slicingMacros.ml
index 7f9e475f1c3..55faaa47c57 100644
--- a/src/slicing/slicingMacros.ml
+++ b/src/slicing/slicingMacros.ml
@@ -94,7 +94,7 @@ let ff_svar ff = fi_svar (ff.T.ff_fct)
 let get_kf_fi proj kf = 
   let fct_var = Kernel_function.get_vi kf in
   try
-    let fi = CilE.VarinfoHashtbl.find proj.T.functions fct_var in fi
+    let fi = Cilutil.VarinfoHashtbl.find proj.T.functions fct_var in fi
   with Not_found -> 
     let fi_def, is_def = 
       try let def = Kernel_function.get_definition kf in Some def, true
@@ -110,11 +110,11 @@ let get_kf_fi proj kf =
       T.fi_next_ff_num = 1; 
       T.f_called_by = [] }
     in
-      CilE.VarinfoHashtbl.add proj.T.functions fct_var new_fi;
+      Cilutil.VarinfoHashtbl.add proj.T.functions fct_var new_fi;
       new_fi
 
 let fold_fi f acc proj = 
-  CilE.VarinfoHashtbl.fold (fun v fi acc -> f acc fi) proj.T.functions acc
+  Cilutil.VarinfoHashtbl.fold (fun v fi acc -> f acc fi) proj.T.functions acc
 
 let ff_fi ff = ff.T.ff_fct
 
diff --git a/src/slicing/slicingProject.ml b/src/slicing/slicingProject.ml
index 1d198bf98af..8887be63492 100644
--- a/src/slicing/slicingProject.ml
+++ b/src/slicing/slicingProject.ml
@@ -40,7 +40,7 @@ let mk_project name =
   if M.info ()   then Format.printf "[slicing] make slicing project '%s'@\n" name;
   { T.name = name ;
     T.application = Project.current () ;
-    T.functions = CilE.VarinfoHashtbl.create 17; 
+    T.functions = Cilutil.VarinfoHashtbl.create 17; 
     T.actions = [];
   }
 
diff --git a/src/slicing_types/slicingTypes.ml b/src/slicing_types/slicingTypes.ml
index 41cfddf0d7e..164f0a54257 100644
--- a/src/slicing_types/slicingTypes.ml
+++ b/src/slicing_types/slicingTypes.ml
@@ -231,7 +231,7 @@ type t_criterion =
 (** The whole project. *)
 type t_project = { name : string ;
                    application : Project.t ;
-                   functions : t_fct_info CilE.VarinfoHashtbl.t;
+                   functions : t_fct_info Cilutil.VarinfoHashtbl.t;
                    mutable actions : t_criterion list;
                  }
 
@@ -259,7 +259,7 @@ type sl_project   = Internals.t_project
 type sl_select  = (Cil_types.varinfo * Internals.t_fct_user_crit)
 
 (** A set of selections, grouped by function *)
-type sl_selects = (Internals.t_fct_user_crit CilE.VarinfoHashtbl.t)
+type sl_selects = (Internals.t_fct_user_crit Cilutil.VarinfoHashtbl.t)
 
 (** Function slice *)
 type sl_fct_slice = Internals.t_fct_slice
diff --git a/src/value/eval.ml b/src/value/eval.ml
index 2ffdefada4e..a461c90de41 100644
--- a/src/value/eval.ml
+++ b/src/value/eval.ml
@@ -10,7 +10,7 @@
 (*                                                                        *)
 (**************************************************************************)
 
-(* $Id: eval.ml,v 1.62 2007-11-30 10:26:53 uid527 Exp $ *)
+(* $Id: eval.ml,v 1.63 2007-11-30 13:04:09 uid528 Exp $ *)
 
 (** Analysis for values and pointers *)
 
@@ -3156,7 +3156,7 @@ let compute_using_cfg kf ~call_kinstr initial_state =
 
 (*  associates [varinfo] to a fresh base for the adress returned by function
     [varinfo] *)
-let leaf_table = CilE.VarinfoHashtbl.create 7
+let leaf_table = Cilutil.VarinfoHashtbl.create 7
 
 let return_value return_type kf state =
   (* Process return of function *)
@@ -3165,7 +3165,8 @@ let return_value return_type kf state =
   | TPtr(typ,_) -> begin
         let new_base =
           (try
-              CilE.VarinfoHashtbl.find leaf_table (Kernel_function.get_vi kf)
+              Cilutil.VarinfoHashtbl.find 
+                leaf_table (Kernel_function.get_vi kf)
             with Not_found ->
               let nb =
                 makeGlobalVar
@@ -3180,7 +3181,8 @@ let return_value return_type kf state =
 		 else
 		   Base.Unknown)
               in
-              CilE.VarinfoHashtbl.add leaf_table (Kernel_function.get_vi kf) nb;
+              Cilutil.VarinfoHashtbl.add 
+                leaf_table (Kernel_function.get_vi kf) nb;
               nb)
         in
         let initial_value = if isArithmeticType typ
-- 
GitLab