From 91fed3f16f7f954081e964c836ae86a3679ae2db Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?David=20B=C3=BChler?= <david.buhler@cea.fr>
Date: Wed, 15 Sep 2021 15:23:21 +0200
Subject: [PATCH] [LoopAnalysis] Renames region_analysis_sig as a .mli
 interface file.

---
 headers/header_spec.txt                                   | 2 +-
 src/plugins/loop_analysis/Makefile.in                     | 3 ++-
 src/plugins/loop_analysis/loop_analysis.ml                | 8 ++++----
 src/plugins/loop_analysis/region_analysis.ml              | 8 +++-----
 src/plugins/loop_analysis/region_analysis.mli             | 3 +--
 .../{region_analysis_sig.ml => region_analysis_sig.mli}   | 0
 src/plugins/loop_analysis/region_analysis_stmt.ml         | 2 +-
 src/plugins/loop_analysis/region_analysis_stmt.mli        | 2 +-
 8 files changed, 13 insertions(+), 15 deletions(-)
 rename src/plugins/loop_analysis/{region_analysis_sig.ml => region_analysis_sig.mli} (100%)

diff --git a/headers/header_spec.txt b/headers/header_spec.txt
index cea13556cb6..d6a09d86406 100644
--- a/headers/header_spec.txt
+++ b/headers/header_spec.txt
@@ -941,7 +941,7 @@ src/plugins/loop_analysis/options.ml: CEA_LGPL_OR_PROPRIETARY
 src/plugins/loop_analysis/options.mli: CEA_LGPL_OR_PROPRIETARY
 src/plugins/loop_analysis/region_analysis.ml: CEA_LGPL_OR_PROPRIETARY
 src/plugins/loop_analysis/region_analysis.mli: CEA_LGPL_OR_PROPRIETARY
-src/plugins/loop_analysis/region_analysis_sig.ml: CEA_LGPL_OR_PROPRIETARY
+src/plugins/loop_analysis/region_analysis_sig.mli: CEA_LGPL_OR_PROPRIETARY
 src/plugins/loop_analysis/region_analysis_stmt.ml: CEA_LGPL_OR_PROPRIETARY
 src/plugins/loop_analysis/region_analysis_stmt.mli: CEA_LGPL_OR_PROPRIETARY
 src/plugins/loop_analysis/register.ml: CEA_LGPL_OR_PROPRIETARY
diff --git a/src/plugins/loop_analysis/Makefile.in b/src/plugins/loop_analysis/Makefile.in
index 74a6af00dbb..4cb7ceebdc7 100644
--- a/src/plugins/loop_analysis/Makefile.in
+++ b/src/plugins/loop_analysis/Makefile.in
@@ -31,7 +31,8 @@ PLUGIN_ENABLE:=@ENABLE_LOOP_ANALYSIS@
 PLUGIN_DISTRIBUTED:=$(PLUGIN_ENABLE)
 
 PLUGIN_NAME:= LoopAnalysis
-PLUGIN_CMO:=  options region_analysis_sig region_analysis region_analysis_stmt loop_analysis register
+PLUGIN_CMO:= options region_analysis region_analysis_stmt loop_analysis register
+PLUGIN_CMI:= region_analysis_sig
 PLUGIN_DISTRIB_EXTERNAL:= Makefile.in configure.ac configure test.c test.oracle README.org
 PLUGIN_TESTS_DIRS:=loop_analysis
 
diff --git a/src/plugins/loop_analysis/loop_analysis.ml b/src/plugins/loop_analysis/loop_analysis.ml
index b97bd62b23f..43a3fd5b491 100644
--- a/src/plugins/loop_analysis/loop_analysis.ml
+++ b/src/plugins/loop_analysis/loop_analysis.ml
@@ -324,21 +324,21 @@ module Store(* (B:sig *)
     let value = (mem,conds) in
     let open Cil_types in
     let map_on_all_succs (mem,conds) =
-      List.map (fun x -> (Region_analysis.Edge(stmt,x),(mem,conds,x))) stmt.succs in
+      List.map (fun x -> (Region_analysis_sig.Edge(stmt,x),(mem,conds,x))) stmt.succs in
     match stmt.skind with
     | Instr(i) -> map_on_all_succs (do_instr i (mem,conds))
     | Return _ ->
-      [Region_analysis.Exit stmt, (mem,conds,Cil.dummyStmt)]
+      [Region_analysis_sig.Exit stmt, (mem,conds,Cil.dummyStmt)]
     | Loop _ | Goto _ | Break _ | Continue _ | Block _ | UnspecifiedSequence _ ->
       map_on_all_succs value
     | If _ ->
       let result = Dataflows.transfer_if_from_guard do_guard stmt value in
       List.map (fun (succ,(mem,cond)) ->
-          (Region_analysis.Edge(stmt,succ),(mem,cond,succ))) result
+          (Region_analysis_sig.Edge(stmt,succ),(mem,cond,succ))) result
     | Switch _ ->
       let result = Dataflows.transfer_switch_from_guard do_guard stmt value in
       List.map (fun (succ,(mem,cond)) ->
-          (Region_analysis.Edge(stmt,succ),(mem,cond,succ))) result
+          (Region_analysis_sig.Edge(stmt,succ),(mem,cond,succ))) result
     | Throw _ | TryCatch _ | TryExcept _ | TryFinally _ ->
       Options.abort "unsupported exception-related statement: %a"
         Printer.pp_stmt stmt
diff --git a/src/plugins/loop_analysis/region_analysis.ml b/src/plugins/loop_analysis/region_analysis.ml
index c04f9f6ec33..2906d0e5fe3 100644
--- a/src/plugins/loop_analysis/region_analysis.ml
+++ b/src/plugins/loop_analysis/region_analysis.ml
@@ -48,9 +48,7 @@
    of Nodes". It is maybe also possible to use the wto ordering of
    bourdoncle for this purpose. *)
 
-include Region_analysis_sig;;
-
-module Make(N:Node):sig
+module Make(N:Region_analysis_sig.Node):sig
   (* Function computing from an entry abstract value the "after"
      state, which is a map from each outgoing edge to its respective
      value. *)
@@ -192,7 +190,7 @@ struct
 
       (* Compute for previous node if result not yet available. *)
       and get_edge pred n =
-        let edge = Edge(pred, n) in
+        let edge = Region_analysis_sig.Edge(pred, n) in
         try N.Edge_Dict.get edge_term edge
         with Not_found -> do_node pred; N.Edge_Dict.get edge_term edge
       in
@@ -215,7 +213,7 @@ struct
         N.Graph.iter_preds header (fun pred ->
             if (N.Set.mem pred tset) && (is_back_edge pred header)
             then
-              let edge = Edge(pred,header) in
+              let edge = Region_analysis_sig.Edge(pred,header) in
               let input = N.Edge_Dict.get edge_term edge in
               inputs := input::!inputs );
         N.join !inputs
diff --git a/src/plugins/loop_analysis/region_analysis.mli b/src/plugins/loop_analysis/region_analysis.mli
index 6b4feeb6c81..02a957af9f4 100644
--- a/src/plugins/loop_analysis/region_analysis.mli
+++ b/src/plugins/loop_analysis/region_analysis.mli
@@ -31,9 +31,8 @@
    reached.
 
    TODO: The algorithm does not handle non-natural loops for now. *)
-include module type of Region_analysis_sig;;
 
-module Make(N:Node):sig
+module Make(N:Region_analysis_sig.Node):sig
   (* Function computing from an entry abstract value the "after"
      state, which is a map from each outgoing edge to its respective
      value. *)
diff --git a/src/plugins/loop_analysis/region_analysis_sig.ml b/src/plugins/loop_analysis/region_analysis_sig.mli
similarity index 100%
rename from src/plugins/loop_analysis/region_analysis_sig.ml
rename to src/plugins/loop_analysis/region_analysis_sig.mli
diff --git a/src/plugins/loop_analysis/region_analysis_stmt.ml b/src/plugins/loop_analysis/region_analysis_stmt.ml
index b9db0a8032b..dad5e180654 100644
--- a/src/plugins/loop_analysis/region_analysis_stmt.ml
+++ b/src/plugins/loop_analysis/region_analysis_stmt.ml
@@ -20,7 +20,7 @@
 (*                                                                        *)
 (**************************************************************************)
 
-open Region_analysis
+open Region_analysis_sig
 
 module type M = sig
   val kf: Kernel_function.t
diff --git a/src/plugins/loop_analysis/region_analysis_stmt.mli b/src/plugins/loop_analysis/region_analysis_stmt.mli
index a52050d3e06..23b37e7dcb3 100644
--- a/src/plugins/loop_analysis/region_analysis_stmt.mli
+++ b/src/plugins/loop_analysis/region_analysis_stmt.mli
@@ -20,7 +20,7 @@
 (*                                                                        *)
 (**************************************************************************)
 
-open Region_analysis
+open Region_analysis_sig
 open Cil_types
 
 module type M = sig
-- 
GitLab