From b9129b0d5f00aeea8656533c9ff347dc8edf3b6c Mon Sep 17 00:00:00 2001
From: Andre Maroneze <andre.oliveiramaroneze@cea.fr>
Date: Thu, 30 Aug 2018 16:15:25 +0200
Subject: [PATCH] [visit] improve test stability

---
 .../tests/temporal/oracle/gen_t_global_init.c    | 16 ++++++++--------
 .../tests/temporal/oracle/gen_t_local_init.c     | 14 +++++++-------
 src/plugins/e-acsl/visit.ml                      |  3 ++-
 3 files changed, 17 insertions(+), 16 deletions(-)

diff --git a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_global_init.c b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_global_init.c
index 4d486a49cd8..b3b6d35f872 100644
--- a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_global_init.c
+++ b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_global_init.c
@@ -83,14 +83,6 @@ void __e_acsl_globals_init(void)
   __e_acsl_full_init((void *)(& extra_lbits));
   __e_acsl_store_block((void *)(strings),(size_t)32);
   __e_acsl_full_init((void *)(& strings));
-  __e_acsl_temporal_store_nblock((void *)(& strings[0][0]),
-                                 (void *)__gen_e_acsl_literal_string_4);
-  __e_acsl_temporal_store_nblock((void *)(& strings[0][1]),
-                                 (void *)__gen_e_acsl_literal_string_3);
-  __e_acsl_temporal_store_nblock((void *)(& strings[1][0]),
-                                 (void *)__gen_e_acsl_literal_string_2);
-  __e_acsl_temporal_store_nblock((void *)(& strings[1][1]),
-                                 (void *)__gen_e_acsl_literal_string);
   __e_acsl_temporal_store_nblock((void *)(& descs2[0].desc.extra_bits),
                                  (void *)(extra_lbits));
   __e_acsl_temporal_store_nblock((void *)(& descs2[1].desc.extra_bits),
@@ -103,6 +95,14 @@ void __e_acsl_globals_init(void)
                                  (void *)(extra_lbits));
   __e_acsl_temporal_store_nblock((void *)(& l_desc.extra_bits),
                                  (void *)(extra_lbits));
+  __e_acsl_temporal_store_nblock((void *)(& strings[0][0]),
+                                 (void *)__gen_e_acsl_literal_string_4);
+  __e_acsl_temporal_store_nblock((void *)(& strings[0][1]),
+                                 (void *)__gen_e_acsl_literal_string_3);
+  __e_acsl_temporal_store_nblock((void *)(& strings[1][0]),
+                                 (void *)__gen_e_acsl_literal_string_2);
+  __e_acsl_temporal_store_nblock((void *)(& strings[1][1]),
+                                 (void *)__gen_e_acsl_literal_string);
   return;
 }
 
diff --git a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_local_init.c b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_local_init.c
index bf1c1935443..274b6b9ec54 100644
--- a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_local_init.c
+++ b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_local_init.c
@@ -84,6 +84,13 @@ void __e_acsl_globals_init(void)
   __e_acsl_full_init((void *)(& Str));
   __e_acsl_store_block((void *)(Strings),(size_t)32);
   __e_acsl_full_init((void *)(& Strings));
+  __e_acsl_temporal_store_nblock((void *)(Str),
+                                 (void *)__gen_e_acsl_literal_string_5);
+  __e_acsl_temporal_store_nblock((void *)(& Str[1]),
+                                 (void *)__gen_e_acsl_literal_string_6);
+  __e_acsl_temporal_store_nblock((void *)(& Str[2]),
+                                 (void *)__gen_e_acsl_literal_string_7);
+  __e_acsl_temporal_store_nblock((void *)(& Str[3]),(void *)0);
   __e_acsl_temporal_store_nblock((void *)(& Strings[0][0]),
                                  (void *)__gen_e_acsl_literal_string);
   __e_acsl_temporal_store_nblock((void *)(& Strings[0][1]),
@@ -92,13 +99,6 @@ void __e_acsl_globals_init(void)
                                  (void *)__gen_e_acsl_literal_string_3);
   __e_acsl_temporal_store_nblock((void *)(& Strings[1][1]),
                                  (void *)__gen_e_acsl_literal_string_4);
-  __e_acsl_temporal_store_nblock((void *)(Str),
-                                 (void *)__gen_e_acsl_literal_string_5);
-  __e_acsl_temporal_store_nblock((void *)(& Str[1]),
-                                 (void *)__gen_e_acsl_literal_string_6);
-  __e_acsl_temporal_store_nblock((void *)(& Str[2]),
-                                 (void *)__gen_e_acsl_literal_string_7);
-  __e_acsl_temporal_store_nblock((void *)(& Str[3]),(void *)0);
   return;
 }
 
diff --git a/src/plugins/e-acsl/visit.ml b/src/plugins/e-acsl/visit.ml
index 0cd4db83923..4152ed586ac 100644
--- a/src/plugins/e-acsl/visit.ml
+++ b/src/plugins/e-acsl/visit.ml
@@ -393,7 +393,8 @@ you must call function `%s' and `__e_acsl_memory_clean by yourself.@]"
       (* Make a unique mapping for each global variable omitting initializers.
        Initializers (used to capture literal strings) are added to
        [global_vars] via the [vinit] visitor method (see comments below). *)
-      Varinfo.Hashtbl.replace global_vars vi (NoOffset, None)
+        Varinfo.Hashtbl.replace global_vars
+          (Cil.get_original_varinfo self#behavior vi) (NoOffset, None)
     | _ -> ());
     if generate then Cil.DoChildrenPost(fun g -> List.iter do_it g; g)
     else Cil.DoChildren
-- 
GitLab