From e76a0b77394440fd55f3ad7b0c559286b06860e2 Mon Sep 17 00:00:00 2001
From: Julien Signoles <julien.signoles@cea.fr>
Date: Tue, 3 Dec 2019 09:52:27 +0100
Subject: [PATCH] [e-acsl:archi] fix bug with constinit

---
 src/plugins/e-acsl/src/code_generator/injector.ml      | 10 ++++------
 .../e-acsl/src/project_initializer/dup_functions.ml    |  2 +-
 2 files changed, 5 insertions(+), 7 deletions(-)

diff --git a/src/plugins/e-acsl/src/code_generator/injector.ml b/src/plugins/e-acsl/src/code_generator/injector.ml
index a6b0a343fbd..b5d6f518de3 100644
--- a/src/plugins/e-acsl/src/code_generator/injector.ml
+++ b/src/plugins/e-acsl/src/code_generator/injector.ml
@@ -59,8 +59,6 @@ let rec inject_in_init env kf_opt vi off = function
     if vi.vglob then Global_observer.add_initializer vi off init;
     let e, env = replace_literal_string_in_exp env kf_opt e in
     SingleInit e, env
-  | CompoundInit(_, []) as init ->
-    init, env
   | CompoundInit(typ, l) ->
     let l, env =
       List.fold_left
@@ -115,12 +113,12 @@ let inject_in_local_init loc env kf vi = function
 
   | ConsInit(vi, l, ck) ->
     let l, env =
-      List.fold_left
-        (fun (l, env) e ->
+      List.fold_right
+        (fun e (l, env) ->
            let e, env = replace_literal_string_in_exp env (Some kf) e in
            e :: l, env)
-        ([], env)
         l
+        ([], env)
     in
     ConsInit(vi, l, ck), env
 
@@ -768,7 +766,7 @@ let reset_all ast =
   Typing.clear ();
   Cfg.clearFileCFG ~clear_id:false ast;
   Cfg.computeFileCFG ast;
-  Kernel_function.clear_sid_info ();
+  Kernel_function.clear_sid_info (); (* [ARCHI] is it really useful? *)
   Ast.mark_as_grown ()
 
 let inject () =
diff --git a/src/plugins/e-acsl/src/project_initializer/dup_functions.ml b/src/plugins/e-acsl/src/project_initializer/dup_functions.ml
index aa56af94e4c..a0e7efedc5e 100644
--- a/src/plugins/e-acsl/src/project_initializer/dup_functions.ml
+++ b/src/plugins/e-acsl/src/project_initializer/dup_functions.ml
@@ -415,7 +415,7 @@ let dup () =
   Options.feedback ~level:2 "duplicating annotated functions";
   let prj =
     File.create_project_from_visitor
-      "e_acsl_dup_functions" 
+      "e_acsl_dup_functions"
       (new dup_functions_visitor)
   in
   Queue.iter (fun f -> f ()) actions;
-- 
GitLab