diff --git a/src/plugins/eva/engine/iterator.ml b/src/plugins/eva/engine/iterator.ml
index fc546c883ccd75cee7a4ca1ba01d5dfebbd4736c..6122bee211191d97655a817059895e23256e5f06 100644
--- a/src/plugins/eva/engine/iterator.ml
+++ b/src/plugins/eva/engine/iterator.ml
@@ -122,12 +122,6 @@ module Make_Dataflow
 
   let active_behaviors = Logic.create AnalysisParam.initial_state kf
 
-  (* Compute the locals that we must enter in scope when we start the analysis
-     of [block]. The other ones will be introduced on the fly, when we
-     encounter a [Local_init] instruction. *)
-  let block_toplevel_locals block =
-    List.filter (fun vi -> not vi.vdefined) block.blocals
-
   let initial_states =
     let state = AnalysisParam.initial_state
     and call_kinstr = AnalysisParam.call_kinstr
@@ -267,8 +261,15 @@ module Make_Dataflow
     : transfer_function =
     lift' (fun s -> Transfer.assign s (Kstmt stmt) dest exp)
 
+  (* All variables local to a block are introduced in domain states when
+     entering the block. Variables explicitly initialized at declaration time
+     (for which vi.vdefined is true) enter the scope too early, as they should
+     be introduced on the fly when encountering their [Local_init] instruction.
+     However, goto statements can skip their declaration/initialization, so it
+     is safer to always introduce all local variables (without initialize them)
+     when entering a block. *)
   let transfer_enter (block : block) : transfer_function =
-    let vars = block_toplevel_locals block in
+    let vars = block.blocals in
     if vars = [] then id else lift (Transfer.enter_scope kf vars)
 
   let transfer_leave (block : block) : transfer_function =
@@ -289,20 +290,12 @@ module Make_Dataflow
   let transfer_instr (stmt : stmt) (instr : instr) : transfer_function =
     match instr with
     | Local_init (vi, AssignInit exp, _loc) ->
-      let kind = Abstract_domain.Local kf in
       let transfer state =
-        let state = Domain.enter_scope kind [vi] state in
         Init.initialize_local_variable stmt vi exp state
       in
       lift' transfer
     | Local_init (vi, ConsInit (f, args, k), loc) ->
-      let kind = Abstract_domain.Local kf in
       let as_func dest callee args _loc (key, state) =
-        (* This variable enters the scope too early, as it should
-           be introduced after the call to [f] but before the assignment
-           to [v]. This is currently not possible, at least without
-           splitting Transfer.call in two. *)
-        let state = Domain.enter_scope kind [vi] state in
         transfer_call stmt dest callee args (key, state)
       in
       Cil.treat_constructor_as_func as_func vi f args k loc
diff --git a/tests/builtins/oracle/calloc.0.res.oracle b/tests/builtins/oracle/calloc.0.res.oracle
index 624317db33a6e4832109ecfe41dac48485c58ed8..810c06e4d77a5f803e9070f9357d5b5964b972c3 100644
--- a/tests/builtins/oracle/calloc.0.res.oracle
+++ b/tests/builtins/oracle/calloc.0.res.oracle
@@ -40,11 +40,11 @@
 [eva:final-states] Values at end of function main:
   __fc_heap_status ∈ [--..--]
   p1 ∈ [--..--]
-  p2 ∈ [--..--]
-  p3 ∈ [--..--]
-  p4 ∈ [--..--]
-  p5 ∈ [--..--]
-  p9001 ∈ {0}
+  p2 ∈ [--..--] or UNINITIALIZED
+  p3 ∈ [--..--] or UNINITIALIZED
+  p4 ∈ [--..--] or UNINITIALIZED
+  p5 ∈ [--..--] or UNINITIALIZED
+  p9001 ∈ {0} or UNINITIALIZED
   __retres ∈ {0; 1}
 [from] Computing for function main
 [from] Computing for function calloc <-main
diff --git a/tests/builtins/oracle/free.res.oracle b/tests/builtins/oracle/free.res.oracle
index 4f5cb6ae56f07cb9ca6b0984d705f3d7a0d5965f..080c1e9f72247363a280721aa3077c1789cd44c2 100644
--- a/tests/builtins/oracle/free.res.oracle
+++ b/tests/builtins/oracle/free.res.oracle
@@ -30,6 +30,9 @@
   q ∈ {{ &__malloc_main1_l10[0] }}
   r ∈ {{ &__malloc_main1_l8[0] ; &__malloc_main1_l10[0] }}
   tmp_1 ∈ {{ &__malloc_main1_l8[0] ; &__malloc_main1_l10[0] }}
+  u ∈ UNINITIALIZED
+  t ∈ UNINITIALIZED
+  s ∈ UNINITIALIZED
   S_0___fc_env[0..1] ∈ [--..--]
   S_1___fc_env[0..1] ∈ [--..--]
   __malloc_main1_l8[0] ∈ UNINITIALIZED
diff --git a/tests/builtins/oracle/realloc.res.oracle b/tests/builtins/oracle/realloc.res.oracle
index df107558a522d428e7c910802a4affbe07f80eb3..c2e751d30bbc889be7a576a4a1a0ea288c4c91a4 100644
--- a/tests/builtins/oracle/realloc.res.oracle
+++ b/tests/builtins/oracle/realloc.res.oracle
@@ -26,6 +26,7 @@
   Frama_C_entropy_source ∈ [--..--]
   p ∈ {{ &__malloc_main1_l12 }}
   pp ∈ {{ &__malloc_main1_l12 }}
+  q ∈ UNINITIALIZED
   v ∈ [--..--]
   S_0___fc_env[0..1] ∈ [--..--]
   S_1___fc_env[0..1] ∈ [--..--]
@@ -144,6 +145,7 @@
   r ∈ {{ &__malloc_main3_l35[0] }}
   p ∈ {{ &__malloc_main3_l32[0] ; &__malloc_main3_l35[0] }}
   x ∈ {0; 1}
+  s ∈ UNINITIALIZED
   v ∈ [--..--]
   S_0___fc_env[0..1] ∈ [--..--]
   S_1___fc_env[0..1] ∈ [--..--]
@@ -241,6 +243,8 @@
   sizeq ∈ [0..10]
   p ∈ {{ &__malloc_main4_l55[0] }}
   q ∈ {{ &__malloc_main4_l56[0] }}
+  rp ∈ UNINITIALIZED
+  rq ∈ UNINITIALIZED
   v ∈ [--..--]
   S_0___fc_env[0..1] ∈ [--..--]
   S_1___fc_env[0..1] ∈ [--..--]
@@ -356,6 +360,7 @@
   p ∈ {{ &__malloc_main5_l76 }}
   c ∈ {0; 1}
   q ∈ {{ NULL ; &__malloc_main5_l76 }}
+  r ∈ UNINITIALIZED
   v ∈ [--..--]
   S_0___fc_env[0..1] ∈ [--..--]
   S_1___fc_env[0..1] ∈ [--..--]
diff --git a/tests/builtins/oracle/realloc_multiple.0.res.oracle b/tests/builtins/oracle/realloc_multiple.0.res.oracle
index 5908db2b9e507a91de87ff057e31832be7b548e8..a45635beb983c3b71bc12573e69368c3668d105a 100644
--- a/tests/builtins/oracle/realloc_multiple.0.res.oracle
+++ b/tests/builtins/oracle/realloc_multiple.0.res.oracle
@@ -36,6 +36,7 @@
   r ∈ {{ &__malloc_main1_l12[0] }}
   p ∈ {{ &__malloc_main1_l9[0] ; &__malloc_main1_l12[0] }}
   x ∈ {0; 1}
+  s ∈ UNINITIALIZED
   v ∈ {1}
   S_0___fc_env[0..1] ∈ [--..--]
   S_1___fc_env[0..1] ∈ [--..--]
@@ -120,6 +121,7 @@
   r ∈ {{ &__malloc_main2_l33[0] }}
   p ∈ {{ NULL ; &__malloc_main2_l30[0] ; &__malloc_main2_l33[0] }}
   x ∈ {0; 1; 2}
+  s ∈ UNINITIALIZED
   v ∈ {2}
   S_0___fc_env[0..1] ∈ [--..--]
   S_1___fc_env[0..1] ∈ [--..--]
diff --git a/tests/builtins/oracle/realloc_multiple.1.res.oracle b/tests/builtins/oracle/realloc_multiple.1.res.oracle
index 052f0f273fa2a1f63c42e4ef5be7fa27b6c5d044..c9cedc5f77d6a92f51ed05c2e243b2e47c570e64 100644
--- a/tests/builtins/oracle/realloc_multiple.1.res.oracle
+++ b/tests/builtins/oracle/realloc_multiple.1.res.oracle
@@ -44,6 +44,7 @@
   r ∈ {{ &__malloc_main1_l12[0] }}
   p ∈ {{ &__malloc_main1_l9[0] ; &__malloc_main1_l12[0] }}
   x ∈ {0; 1}
+  s ∈ UNINITIALIZED
   v ∈ {1}
   S_0___fc_env[0..1] ∈ [--..--]
   S_1___fc_env[0..1] ∈ [--..--]
@@ -165,6 +166,7 @@
   r ∈ {{ &__malloc_main2_l33[0] }}
   p ∈ {{ NULL ; &__malloc_main2_l30[0] ; &__malloc_main2_l33[0] }}
   x ∈ {0; 1; 2}
+  s ∈ UNINITIALIZED
   v ∈ {2}
   S_0___fc_env[0..1] ∈ [--..--]
   S_1___fc_env[0..1] ∈ [--..--]
diff --git a/tests/builtins/oracle_gauges/realloc.res.oracle b/tests/builtins/oracle_gauges/realloc.res.oracle
index 7db5bb2855581132216cb4aff783b868c8fd005b..317aba47d1df8261a94c9a7e59085491fc885220 100644
--- a/tests/builtins/oracle_gauges/realloc.res.oracle
+++ b/tests/builtins/oracle_gauges/realloc.res.oracle
@@ -1,4 +1,4 @@
-627a628,964
+632a633,969
 > [eva] realloc.c:152: Call to builtin realloc
 > [eva:malloc] bases_to_realloc: {__realloc_w_main10_l152}
 > [eva:malloc] realloc.c:152: weak free on bases: {__realloc_w_main10_l152}
@@ -336,7 +336,7 @@
 >   __realloc_w_main10_l152[0] ∈ {4}
 >                          [1] ∈ UNINITIALIZED
 >   ==END OF DUMP==
-694a1032,1096
+699a1037,1101
 > [eva] realloc.c:167: Call to builtin reallocarray
 > [eva] realloc.c:167: Call to builtin reallocarray
 > [eva] computing for function Frama_C_interval <- main11 <- main.
@@ -402,7 +402,7 @@
 > [eva:malloc] bases_to_realloc: {}
 > [eva:malloc] realloc.c:171: strong free on bases: {}
 > [eva] realloc.c:172: Frama_C_show_each_p: {{ NULL ; &__realloc_w_main11_l171 }}
-762,763c1164,1166
+767,768c1169,1171
 <   p ∈ {{ NULL ; &__malloc_main11_l160 ; (int *)&__realloc_main11_l171 }}
 <   q ∈ {0} or UNINITIALIZED or ESCAPINGADDR
 ---
diff --git a/tests/float/oracle/alarms.0.res.oracle b/tests/float/oracle/alarms.0.res.oracle
index 8e964fd6c677d12e8068ca89de3c960044b80c11..2772f9227081cba003c033a6a70bb1f32b921e9c 100644
--- a/tests/float/oracle/alarms.0.res.oracle
+++ b/tests/float/oracle/alarms.0.res.oracle
@@ -29,7 +29,12 @@
   ull ∈ {0}
   rand ∈ [--..--]
   l ∈ [--..--]
+  vf ∈ UNINITIALIZED
   tmp ∈ UNINITIALIZED
+  vd ∈ UNINITIALIZED
+  i ∈ UNINITIALIZED
+  j ∈ UNINITIALIZED
+  mvd ∈ UNINITIALIZED
   l ∈ [--..--]
   ==END OF DUMP==
 [kernel:annot:missing-spec] alarms.i:21: Warning: 
diff --git a/tests/float/oracle/alarms.1.res.oracle b/tests/float/oracle/alarms.1.res.oracle
index 95735134c42367149c53c4ba8502e4cc652e78e4..ebe72529a2011e39a98ad6da43b601abc1d697eb 100644
--- a/tests/float/oracle/alarms.1.res.oracle
+++ b/tests/float/oracle/alarms.1.res.oracle
@@ -26,7 +26,12 @@
   ull ∈ {0}
   rand ∈ [--..--]
   l ∈ [--..--]
+  vf ∈ UNINITIALIZED
   tmp ∈ UNINITIALIZED
+  vd ∈ UNINITIALIZED
+  i ∈ UNINITIALIZED
+  j ∈ UNINITIALIZED
+  mvd ∈ UNINITIALIZED
   l ∈ [--..--]
   ==END OF DUMP==
 [kernel:annot:missing-spec] alarms.i:21: Warning: 
diff --git a/tests/float/oracle/alarms.2.res.oracle b/tests/float/oracle/alarms.2.res.oracle
index 6c47a9b44c57b387e173f5f380b9e47c2e794498..99a0bbe07d84ba84ee7a02a5673cff1fa6a6fec2 100644
--- a/tests/float/oracle/alarms.2.res.oracle
+++ b/tests/float/oracle/alarms.2.res.oracle
@@ -23,7 +23,12 @@
   ull ∈ {0}
   rand ∈ [--..--]
   l ∈ [--..--]
+  vf ∈ UNINITIALIZED
   tmp ∈ UNINITIALIZED
+  vd ∈ UNINITIALIZED
+  i ∈ UNINITIALIZED
+  j ∈ UNINITIALIZED
+  mvd ∈ UNINITIALIZED
   l ∈ [--..--]
   ==END OF DUMP==
 [kernel:annot:missing-spec] alarms.i:21: Warning: 
diff --git a/tests/float/oracle/const3.0.res.oracle b/tests/float/oracle/const3.0.res.oracle
index 6f4eaebdd95a561893ca62ee3f8b956e4ad9a93f..7e8f509c45aca4a14fdec29d5924115bdea13517 100644
--- a/tests/float/oracle/const3.0.res.oracle
+++ b/tests/float/oracle/const3.0.res.oracle
@@ -14,6 +14,7 @@
   # cvalue:
   f1 ∈ {9.99994610111e-41}
   d0 ∈ {1e-40}
+  d1 ∈ UNINITIALIZED
   __retres ∈ UNINITIALIZED
   ==END OF DUMP==
 [eva] Recording results for main
diff --git a/tests/float/oracle/const3.1.res.oracle b/tests/float/oracle/const3.1.res.oracle
index ade47d3bb883bc01da0dfebb79574f1cae5bd967..989c638425ec23473e424086ff5f18760e214deb 100644
--- a/tests/float/oracle/const3.1.res.oracle
+++ b/tests/float/oracle/const3.1.res.oracle
@@ -16,6 +16,7 @@
   # cvalue:
   f1 ∈ [0x1.16c2000000000p-133 .. 0x1.16c3000000000p-133]
   d0 ∈ [0x1.16c262777579cp-133 .. 0x1.16c262777579dp-133]
+  d1 ∈ UNINITIALIZED
   __retres ∈ UNINITIALIZED
   ==END OF DUMP==
 [eva] Recording results for main
diff --git a/tests/float/oracle/const4.1.res.oracle b/tests/float/oracle/const4.1.res.oracle
index 8854b8b2448d6cd9fd7ec98ede98a3d0cbabde8b..90bb991ae7f4df63f44348f6ffc404915867806f 100644
--- a/tests/float/oracle/const4.1.res.oracle
+++ b/tests/float/oracle/const4.1.res.oracle
@@ -18,6 +18,7 @@
   # cvalue:
   f1 ∈ [3.39999995214e+38 .. 3.40000015497e+38]
   f2 ∈ {3.40282346639e+38}
+  d2 ∈ UNINITIALIZED
   __retres ∈ UNINITIALIZED
   ==END OF DUMP==
 [eva] Recording results for main
diff --git a/tests/float/oracle_equality/alarms.0.res.oracle b/tests/float/oracle_equality/alarms.0.res.oracle
index c0293cdd68b29be5e867b6afaa1bccb8c09fcc49..e275d378fa4aed2db5affd0abed177d49e5a6ac8 100644
--- a/tests/float/oracle_equality/alarms.0.res.oracle
+++ b/tests/float/oracle_equality/alarms.0.res.oracle
@@ -1,4 +1,4 @@
-137,139c137,138
+142,144c142,143
 <   u1{.l[bits 0 to 31]; .f; .d[bits 0 to 31]} ∈
 <     [-3.40282346639e+38 .. 3.40282346639e+38]
 <     {.l[bits 32 to 63]; .f[bits 32 to 63]; .d[bits 32 to 63]} ∈ [--..--]
diff --git a/tests/float/oracle_equality/alarms.1.res.oracle b/tests/float/oracle_equality/alarms.1.res.oracle
index 1ab35c18d93d2826bb86fc25efd9510bf94f38f1..2e54149d2b56ed8663050f77934d34fdee4b76ab 100644
--- a/tests/float/oracle_equality/alarms.1.res.oracle
+++ b/tests/float/oracle_equality/alarms.1.res.oracle
@@ -1,4 +1,4 @@
-120,121c120,121
+125,126c125,126
 <   u1{.l[bits 0 to 31]; .f; .d[bits 0 to 31]} ∈ [-inf .. inf]
 <     {.l[bits 32 to 63]; .f[bits 32 to 63]; .d[bits 32 to 63]} ∈ [--..--]
 ---
diff --git a/tests/float/oracle_equality/const3.1.res.oracle b/tests/float/oracle_equality/const3.1.res.oracle
index 7de759db47189f2c50ea83d7845623fa5994f43e..f13fa4f815ce32defdc347ec00f3a6b4e6d6f9a8 100644
--- a/tests/float/oracle_equality/const3.1.res.oracle
+++ b/tests/float/oracle_equality/const3.1.res.oracle
@@ -1,4 +1,4 @@
-25c25
+26c26
 <   d1 ∈ [0x1.16c2000000000p-133 .. 0x1.16c3000000000p-133]
 ---
 >   d1 ∈ {0x1.16c2000000000p-133}
diff --git a/tests/libc/oracle/poll.res.oracle b/tests/libc/oracle/poll.res.oracle
index 470eb611711b0cc9b9fa4e42581fe3683b321bb1..58d6b858e0834253897e1d3f8413b54bbc2b681b 100644
--- a/tests/libc/oracle/poll.res.oracle
+++ b/tests/libc/oracle/poll.res.oracle
@@ -25,7 +25,7 @@
       .events ∈ {3}
       .revents ∈ [--..--]
   r ∈ {-1; 0; 1}
-  can_read ∈ {0; 1}
-  can_read_out_of_band ∈ {0; 2}
-  invalid_fd ∈ {0; 32}
+  can_read ∈ {0; 1} or UNINITIALIZED
+  can_read_out_of_band ∈ {0; 2} or UNINITIALIZED
+  invalid_fd ∈ {0; 32} or UNINITIALIZED
   __retres ∈ [0..127]
diff --git a/tests/libc/oracle/signal_h.res.oracle b/tests/libc/oracle/signal_h.res.oracle
index efade1922a061ad31e4bdcaa1ff5ad0f22ace360..e9c90019070b8c9ab29975147149c33539fd4379 100644
--- a/tests/libc/oracle/signal_h.res.oracle
+++ b/tests/libc/oracle/signal_h.res.oracle
@@ -289,7 +289,7 @@
   s ∈ [--..--]
   uninit ∈ UNINITIALIZED
   old ∈ [--..--] or UNINITIALIZED
-  kill_res ∈ {-1; 0}
+  kill_res ∈ {-1; 0} or UNINITIALIZED
   sa1 ∈
      {{ garbled mix of &{__fc_sigaction}
       (origin: Library function {signal_h.c:45}) }} or UNINITIALIZED
diff --git a/tests/libc/oracle/socket.0.res.oracle b/tests/libc/oracle/socket.0.res.oracle
index 99635468b5f16ccf760bd70d5fed0ea3c85f3cd9..d721e0304f9f78829d017736c8c5013885e14fcb 100644
--- a/tests/libc/oracle/socket.0.res.oracle
+++ b/tests/libc/oracle/socket.0.res.oracle
@@ -257,10 +257,10 @@
   __fc_socket_counter ∈ [--..--]
   fd ∈ [-1..1023]
   addr ∈ [--..--] or UNINITIALIZED
-  addrlen ∈ {8}
-  client_fd ∈ [-1..1023]
+  addrlen ∈ {8} or UNINITIALIZED
+  client_fd ∈ [-1..1023] or UNINITIALIZED
   buf[0..63] ∈ [--..--] or UNINITIALIZED
-  r ∈ [-1..64]
+  r ∈ [-1..64] or UNINITIALIZED
   __retres ∈ {0; 1; 5; 20; 100; 200; 300; 400}
 [eva:final-states] Values at end of function main:
   __fc_fds[0..1023] ∈ [--..--]
diff --git a/tests/libc/oracle/socket.1.res.oracle b/tests/libc/oracle/socket.1.res.oracle
index 8f908c607936382b0b3797665fb94079fd895b78..543a28a7fba79583e5ea35c553c0c1b21314d5eb 100644
--- a/tests/libc/oracle/socket.1.res.oracle
+++ b/tests/libc/oracle/socket.1.res.oracle
@@ -259,10 +259,10 @@
   __fc_socket_counter ∈ [--..--]
   fd ∈ [-1..1023]
   addr ∈ [--..--] or UNINITIALIZED
-  addrlen ∈ {8}
-  client_fd ∈ [-1..1023]
+  addrlen ∈ {8} or UNINITIALIZED
+  client_fd ∈ [-1..1023] or UNINITIALIZED
   buf[0..63] ∈ [--..--] or UNINITIALIZED
-  r ∈ [-1..64]
+  r ∈ [-1..64] or UNINITIALIZED
   __retres ∈ {0; 1; 5; 20; 100; 200; 300; 400}
 [eva:final-states] Values at end of function main:
   __fc_fds[0..1023] ∈ [--..--]
diff --git a/tests/libc/oracle/stdio_c.res.oracle b/tests/libc/oracle/stdio_c.res.oracle
index f8f6bfd4cf10fd229513ad04118032b1104e4a79..3be99d222c709984ed1d9613c00e86b7c5aa5961 100644
--- a/tests/libc/oracle/stdio_c.res.oracle
+++ b/tests/libc/oracle/stdio_c.res.oracle
@@ -361,7 +361,7 @@
 [eva:final-states] Values at end of function fgets:
   Frama_C_entropy_source ∈ [--..--]
   __fc_errno ∈ [--..--]
-  i ∈ [0..9]
+  i ∈ [0..9] or UNINITIALIZED
   buf[0..8] ∈ [--..--] or UNINITIALIZED
      [9] ∈ {0} or UNINITIALIZED
   __retres ∈ {{ NULL ; &buf[0] }}
@@ -389,7 +389,7 @@
   __fc_heap_status ∈ [--..--]
   Frama_C_entropy_source ∈ [--..--]
   __fc_errno ∈ [--..--]
-  cur ∈ [0..2147483647]
+  cur ∈ [0..2147483647] or UNINITIALIZED
   line ∈
       {{ NULL ; &__malloc_w_getline_l73[0] ; &__realloc_w_getline_l104[0] }}
   len ∈ [0..2147483647]
@@ -410,10 +410,10 @@
   len ∈ [0..2147483647]
   total_len ∈ [--..--]
   read ∈ {-1} or UNINITIALIZED
-  c ∈ [-1..255]
+  c ∈ [-1..255] or UNINITIALIZED
   buf[0..8] ∈ [--..--] or UNINITIALIZED
      [9] ∈ {0} or UNINITIALIZED
-  r_1 ∈ {{ NULL ; &buf[0] }}
+  r_1 ∈ {{ NULL ; &buf[0] }} or UNINITIALIZED
   __retres ∈ {0; 1}
   __malloc_w_getline_l73[0..1] ∈ [--..--] or UNINITIALIZED
   __realloc_w_getline_l104[0..2147483645] ∈ [--..--] or UNINITIALIZED
diff --git a/tests/libc/oracle/stdio_h.res.oracle b/tests/libc/oracle/stdio_h.res.oracle
index 8d5fe316aa1d5626a2165cfa25ecec40bc30f211..1757917375ac3a89a698ac499ebff3729f37a62d 100644
--- a/tests/libc/oracle/stdio_h.res.oracle
+++ b/tests/libc/oracle/stdio_h.res.oracle
@@ -172,14 +172,14 @@
   __fc_heap_status ∈ [--..--]
   Frama_C_entropy_source ∈ [--..--]
   f ∈ {{ NULL ; &__fc_fopen + [0..120],0%8 }}
-  r ∈ [--..--]
-  tmp_2 ∈ {{ NULL ; &__fc_fopen + [0..120],0%8 }}
-  told ∈ [-1..2147483647]
-  toldo ∈ [-1..2147483647]
-  redirected ∈ {{ NULL ; &__fc_fopen + [0..120],0%8 }}
+  r ∈ [--..--] or UNINITIALIZED
+  tmp_2 ∈ {{ NULL ; &__fc_fopen + [0..120],0%8 }} or UNINITIALIZED
+  told ∈ [-1..2147483647] or UNINITIALIZED
+  toldo ∈ [-1..2147483647] or UNINITIALIZED
+  redirected ∈ {{ NULL ; &__fc_fopen + [0..120],0%8 }} or UNINITIALIZED
   fgets_buf0[0] ∈ [--..--] or UNINITIALIZED
-  fgets_res ∈ {{ NULL ; &fgets_buf0[0] }}
+  fgets_res ∈ {{ NULL ; &fgets_buf0[0] }} or UNINITIALIZED
   pos ∈ [--..--] or UNINITIALIZED
-  res_fclose ∈ {-1; 0}
+  res_fclose ∈ {-1; 0} or UNINITIALIZED
   __retres ∈ {0; 1; 2; 3}
   S___fc_stdout[0..1] ∈ [--..--]
diff --git a/tests/libc/oracle/stdlib_c.0.res.oracle b/tests/libc/oracle/stdlib_c.0.res.oracle
index 276e662d50c399250dce2614e96308566c68c36b..6e7d8414d9bfec2d30151afdd104223983bdef11 100644
--- a/tests/libc/oracle/stdlib_c.0.res.oracle
+++ b/tests/libc/oracle/stdlib_c.0.res.oracle
@@ -256,7 +256,7 @@
   resolved_name ∈
                {{ NULL ; &__malloc_main_l44[0] ; &__malloc_realpath_l224[0] ;
                   &__malloc_realpath_l224_0[0] }}
-  realpath_len ∈ [1..4096]
+  realpath_len ∈ [1..4096] or UNINITIALIZED
   __retres ∈
           {{ NULL ; &__malloc_main_l44[0] ; &__malloc_realpath_l224[0] ;
              &__malloc_realpath_l224_0[0] }}
@@ -285,8 +285,8 @@
   p_memal_res ∈ {0; 12}
   p_memal_res2 ∈ {0; 12}
   resolved_name ∈ {{ NULL ; &__malloc_main_l44[0] }}
-  realpath_res ∈ {{ NULL ; &__malloc_realpath_l224[0] }}
-  canon ∈ {{ NULL ; &__malloc_realpath_l224_0[0] }}
+  realpath_res ∈ {{ NULL ; &__malloc_realpath_l224[0] }} or UNINITIALIZED
+  canon ∈ {{ NULL ; &__malloc_realpath_l224_0[0] }} or UNINITIALIZED
   __retres ∈ {0; 1}
   __calloc_w_main_l33[0..1073741823] ∈ {0; 42}
   __malloc_main_l44[0..4095] ∈ [--..--] or UNINITIALIZED
diff --git a/tests/libc/oracle/stdlib_c.1.res.oracle b/tests/libc/oracle/stdlib_c.1.res.oracle
index 95a6a6d6b063be4bf82b8f17affcbf3e9e09f9fe..8268d02f205f892166fe3a4645898cbcf235fc75 100644
--- a/tests/libc/oracle/stdlib_c.1.res.oracle
+++ b/tests/libc/oracle/stdlib_c.1.res.oracle
@@ -274,7 +274,7 @@
   resolved_name ∈
                {{ NULL ; &__malloc_main_l44[0] ; &__malloc_realpath_l224[0] ;
                   &__malloc_realpath_l224_0[0] }}
-  realpath_len ∈ [1..4096]
+  realpath_len ∈ [1..4096] or UNINITIALIZED
   __retres ∈
           {{ NULL ; &__malloc_main_l44[0] ; &__malloc_realpath_l224[0] ;
              &__malloc_realpath_l224_0[0] }}
diff --git a/tests/libc/oracle/stdlib_c.2.res.oracle b/tests/libc/oracle/stdlib_c.2.res.oracle
index 8090933af98958cc3fd154206444496df7d62a26..2dad09f22b8979bdfa7c27c7d7b0de76d0d17d1d 100644
--- a/tests/libc/oracle/stdlib_c.2.res.oracle
+++ b/tests/libc/oracle/stdlib_c.2.res.oracle
@@ -208,7 +208,7 @@
   l ∈ [0..4294967292],0%4
   p ∈
    {{ NULL ; &__malloc_calloc_l72[0] ; &__malloc_calloc_l72_0[0] ;
-      &__malloc_w_calloc_l72_1[0] }}
+      &__malloc_w_calloc_l72_1[0] }} or UNINITIALIZED
   __retres ∈
           {{ NULL ; (void *)&__malloc_calloc_l72 ;
              (void *)&__malloc_calloc_l72_0 ;
@@ -228,7 +228,7 @@
   resolved_name ∈
                {{ NULL ; &__malloc_main_l44[0] ; &__malloc_realpath_l224[0] ;
                   &__malloc_realpath_l224_0[0] }}
-  realpath_len ∈ [1..4096]
+  realpath_len ∈ [1..4096] or UNINITIALIZED
   __retres ∈
           {{ NULL ; &__malloc_main_l44[0] ; &__malloc_realpath_l224[0] ;
              &__malloc_realpath_l224_0[0] }}
@@ -254,8 +254,8 @@
   p_memal_res ∈ {0; 12}
   p_memal_res2 ∈ {0; 12}
   resolved_name ∈ {{ NULL ; &__malloc_main_l44[0] }}
-  realpath_res ∈ {{ NULL ; &__malloc_realpath_l224[0] }}
-  canon ∈ {{ NULL ; &__malloc_realpath_l224_0[0] }}
+  realpath_res ∈ {{ NULL ; &__malloc_realpath_l224[0] }} or UNINITIALIZED
+  canon ∈ {{ NULL ; &__malloc_realpath_l224_0[0] }} or UNINITIALIZED
   __retres ∈ {0; 1}
   __malloc_calloc_l72[0..3] ∈ [--..--] or UNINITIALIZED
   __malloc_calloc_l72_0[0..4294967291] ∈ [--..--] or UNINITIALIZED
diff --git a/tests/libc/oracle/stdlib_c_env.res.oracle b/tests/libc/oracle/stdlib_c_env.res.oracle
index 54a82b9cccb4eb9a4b3fdbe277fce4ba362608a6..6c927c63c406cec5304736c2c1d03891621f516a 100644
--- a/tests/libc/oracle/stdlib_c_env.res.oracle
+++ b/tests/libc/oracle/stdlib_c_env.res.oracle
@@ -291,7 +291,7 @@
   __fc_env[0..4095] ∈
           {{ NULL ; &s[0] ; &__fc_env_strings + [0..63] ; "BLA=1" }}
   Frama_C_entropy_source ∈ [--..--]
-  namelen ∈ [0..63]
+  namelen ∈ [0..63] or UNINITIALIZED
   __fc_env_strings[0..62] ∈ [--..--]
                   [63] ∈ {0}
   __retres ∈ {-1; 0}
@@ -299,7 +299,7 @@
   __fc_env[0..4095] ∈
           {{ NULL ; &s[0] ; &__fc_env_strings + [0..63] ; "BLA=1" }}
   Frama_C_entropy_source ∈ [--..--]
-  namelen ∈ [0..63]
+  namelen ∈ [0..63] or UNINITIALIZED
   __retres ∈ {-1; 0}
 [eva:final-states] Values at end of function main:
   __fc_env[0..4095] ∈
diff --git a/tests/libc/oracle/sys_sendfile_h.res.oracle b/tests/libc/oracle/sys_sendfile_h.res.oracle
index a77a6d78706e75bc12d5c497f8ab3a3595aadd83..b214dddf4a669a0b9b00116eb551a3ad6404f598 100644
--- a/tests/libc/oracle/sys_sendfile_h.res.oracle
+++ b/tests/libc/oracle/sys_sendfile_h.res.oracle
@@ -73,8 +73,8 @@
   __fc_fds[0..1023] ∈ [--..--]
   out_fd ∈ [-1..1023] or UNINITIALIZED
   in_fd ∈ [-1..1023]
-  offset ∈ [--..--]
+  offset ∈ [--..--] or UNINITIALIZED
   r1 ∈ [-1..42] or UNINITIALIZED
   r3 ∈ [-1..42] or UNINITIALIZED
-  r ∈ {-1; 0}
+  r ∈ {-1; 0} or UNINITIALIZED
   __retres ∈ {0; 1}
diff --git a/tests/libc/oracle/sys_socket_h.res.oracle b/tests/libc/oracle/sys_socket_h.res.oracle
index bd668507be702ce8fb2db931063de1a8cea31f2a..916cb12aab73ea390d49446a7d751126a79c1e28 100644
--- a/tests/libc/oracle/sys_socket_h.res.oracle
+++ b/tests/libc/oracle/sys_socket_h.res.oracle
@@ -61,5 +61,5 @@
      .msg_iovlen ∈ {5; 6}
      {.msg_control; .msg_controllen; .msg_flags} ∈ UNINITIALIZED
   sockfd ∈ [-1..1023]
-  r ∈ [-1..2147483647]
+  r ∈ [-1..2147483647] or UNINITIALIZED
   __retres ∈ {0; 1}
diff --git a/tests/libc/oracle/sys_stat_h.res.oracle b/tests/libc/oracle/sys_stat_h.res.oracle
index edb2f90be28452d72fa2645a8b131995f355ded9..8ee1daff1c0849cf02deee1acf713362f0983e0e 100644
--- a/tests/libc/oracle/sys_stat_h.res.oracle
+++ b/tests/libc/oracle/sys_stat_h.res.oracle
@@ -113,16 +113,16 @@
   __fc_fds[0..1023] ∈ [--..--]
   fd ∈ [-1..1023]
   st ∈ [--..--] or UNINITIALIZED
-  r ∈ {-1; 0}
-  r_mkdir ∈ {-1; 0}
-  old_mask ∈ [--..--]
-  r2 ∈ {-1; 0}
-  r3 ∈ {-1; 0}
-  r4 ∈ {-1; 0}
-  r5 ∈ {-1; 0}
-  r6 ∈ {-1; 0}
-  r7 ∈ {-1; 0}
+  r ∈ {-1; 0} or UNINITIALIZED
+  r_mkdir ∈ {-1; 0} or UNINITIALIZED
+  old_mask ∈ [--..--] or UNINITIALIZED
+  r2 ∈ {-1; 0} or UNINITIALIZED
+  r3 ∈ {-1; 0} or UNINITIALIZED
+  r4 ∈ {-1; 0} or UNINITIALIZED
+  r5 ∈ {-1; 0} or UNINITIALIZED
+  r6 ∈ {-1; 0} or UNINITIALIZED
+  r7 ∈ {-1; 0} or UNINITIALIZED
   buf ∈ [--..--] or UNINITIALIZED
-  r8 ∈ {-1; 0}
-  r9 ∈ {-1; 0}
+  r8 ∈ {-1; 0} or UNINITIALIZED
+  r9 ∈ {-1; 0} or UNINITIALIZED
   __retres ∈ {-1; 0; 1; 2; 3}
diff --git a/tests/libc/oracle/sys_uio_h.res.oracle b/tests/libc/oracle/sys_uio_h.res.oracle
index b19e97d241f4703fe0cf1811e4b5e03c67f8b0d2..35c0c56e12390bfb59a0337eef1d87b048eb2d68 100644
--- a/tests/libc/oracle/sys_uio_h.res.oracle
+++ b/tests/libc/oracle/sys_uio_h.res.oracle
@@ -103,6 +103,6 @@
    [3].iov_base ∈ {{ (void *)&buf2 }}
    [3].iov_len ∈ {14}
   fd ∈ [-1..1023]
-  w ∈ [-1..2147483647]
-  r ∈ [-1..2147483647]
+  w ∈ [-1..2147483647] or UNINITIALIZED
+  r ∈ [-1..2147483647] or UNINITIALIZED
   __retres ∈ [-2..2147483647]
diff --git a/tests/libc/oracle/termios.res.oracle b/tests/libc/oracle/termios.res.oracle
index 799c219eaa98136c7c028bfaab8990f86edede99..c37ece069c778bbece4c9d262f1a6c157894df79 100644
--- a/tests/libc/oracle/termios.res.oracle
+++ b/tests/libc/oracle/termios.res.oracle
@@ -70,6 +70,6 @@
   fd ∈ [-1..1023]
   tio ∈ [--..--] or UNINITIALIZED
   res ∈ {-1; 0}
-  sp1 ∈ [--..--]
-  sp2 ∈ [--..--]
+  sp1 ∈ [--..--] or UNINITIALIZED
+  sp2 ∈ [--..--] or UNINITIALIZED
   __retres ∈ {-1; 0; 1; 8}
diff --git a/tests/libc/oracle/time_h.res.oracle b/tests/libc/oracle/time_h.res.oracle
index a32b98d7871f1de7738a4e07da647fc39b86cf35..e2c79167c90417685953eeb91b4ac0efb4f8f344 100644
--- a/tests/libc/oracle/time_h.res.oracle
+++ b/tests/libc/oracle/time_h.res.oracle
@@ -263,12 +263,12 @@
   r ∈ {-1; 0; 4; 22}
   creq.tv_sec ∈ [--..--] or UNINITIALIZED
       .tv_nsec ∈ [0..999999999] or UNINITIALIZED
-  tt ∈ {42}
-  time_str ∈ {{ &__fc_ctime[0] }}
-  mytime ∈ [--..--]
-  t ∈ [--..--]
+  tt ∈ {42} or UNINITIALIZED
+  time_str ∈ {{ &__fc_ctime[0] }} or UNINITIALIZED
+  mytime ∈ [--..--] or UNINITIALIZED
+  t ∈ [--..--] or UNINITIALIZED
   res_time ∈ {{ NULL ; &mytime2 }} or UNINITIALIZED
   mytime2 ∈ [--..--] or UNINITIALIZED
-  localp ∈ {{ NULL ; &localr }}
+  localp ∈ {{ NULL ; &localr }} or UNINITIALIZED
   localr ∈ [--..--] or UNINITIALIZED
   __retres ∈ {0; 1; 2}
diff --git a/tests/libc/oracle/unistd_h.0.res.oracle b/tests/libc/oracle/unistd_h.0.res.oracle
index 69911d84a7244a5f0a797b6dfe46824a5ca3c93b..5290754d8d489a081d47cdd8a12bb28370890be2 100644
--- a/tests/libc/oracle/unistd_h.0.res.oracle
+++ b/tests/libc/oracle/unistd_h.0.res.oracle
@@ -621,24 +621,24 @@
   r ∈ {-1; 0}
   hostname[0..255] ∈ [--..--] or UNINITIALIZED
   fd ∈ [-1..1023]
-  offset ∈ [-1..2147483647]
-  fd2 ∈ [-1..1023]
-  pid ∈ [-1..2147483647]
-  l ∈ [--..--]
+  offset ∈ [-1..2147483647] or UNINITIALIZED
+  fd2 ∈ [-1..1023] or UNINITIALIZED
+  pid ∈ [-1..2147483647] or UNINITIALIZED
+  l ∈ [--..--] or UNINITIALIZED
   cwd[0..63] ∈ [--..--] or UNINITIALIZED
-  res_getcwd ∈ {{ NULL ; &cwd[0] }}
-  pconf ∈ [--..--]
+  res_getcwd ∈ {{ NULL ; &cwd[0] }} or UNINITIALIZED
+  pconf ∈ [--..--] or UNINITIALIZED
   ruid ∈ [--..--] or UNINITIALIZED
   euid ∈ [--..--] or UNINITIALIZED
   suid ∈ [--..--] or UNINITIALIZED
   rgid ∈ [--..--] or UNINITIALIZED
   egid ∈ [--..--] or UNINITIALIZED
   sgid ∈ [--..--] or UNINITIALIZED
-  p ∈ [--..--]
-  tty ∈ {{ NULL ; &__fc_ttyname[0] }}
+  p ∈ [--..--] or UNINITIALIZED
+  tty ∈ {{ NULL ; &__fc_ttyname[0] }} or UNINITIALIZED
   halfpipe ∈ UNINITIALIZED
   pipefd[0..1] ∈ [0..1023] or UNINITIALIZED
-  unslept ∈ [0..42]
+  unslept ∈ [0..42] or UNINITIALIZED
   buf[0..4294967294] ∈ [--..--] or UNINITIALIZED
-  rread ∈ [--..--]
+  rread ∈ [--..--] or UNINITIALIZED
   __retres ∈ {0; 1}
diff --git a/tests/libc/oracle/unistd_h.1.res.oracle b/tests/libc/oracle/unistd_h.1.res.oracle
index 85607de98dd75b610ec922e97d6186922ef614cc..68dbe4ab19c2f105825affd2569f87495687327e 100644
--- a/tests/libc/oracle/unistd_h.1.res.oracle
+++ b/tests/libc/oracle/unistd_h.1.res.oracle
@@ -621,24 +621,24 @@
   r ∈ {-1; 0}
   hostname[0..255] ∈ [--..--] or UNINITIALIZED
   fd ∈ [-1..1023]
-  offset ∈ [-1..2147483647]
-  fd2 ∈ [-1..1023]
-  pid ∈ [-1..2147483647]
-  l ∈ [--..--]
+  offset ∈ [-1..2147483647] or UNINITIALIZED
+  fd2 ∈ [-1..1023] or UNINITIALIZED
+  pid ∈ [-1..2147483647] or UNINITIALIZED
+  l ∈ [--..--] or UNINITIALIZED
   cwd[0..63] ∈ [--..--] or UNINITIALIZED
-  res_getcwd ∈ {{ NULL ; &cwd[0] }}
-  pconf ∈ [--..--]
+  res_getcwd ∈ {{ NULL ; &cwd[0] }} or UNINITIALIZED
+  pconf ∈ [--..--] or UNINITIALIZED
   ruid ∈ [--..--] or UNINITIALIZED
   euid ∈ [--..--] or UNINITIALIZED
   suid ∈ [--..--] or UNINITIALIZED
   rgid ∈ [--..--] or UNINITIALIZED
   egid ∈ [--..--] or UNINITIALIZED
   sgid ∈ [--..--] or UNINITIALIZED
-  p ∈ [--..--]
-  tty ∈ {{ NULL ; &__fc_ttyname[0] }}
+  p ∈ [--..--] or UNINITIALIZED
+  tty ∈ {{ NULL ; &__fc_ttyname[0] }} or UNINITIALIZED
   halfpipe ∈ UNINITIALIZED
   pipefd[0..1] ∈ [0..1023] or UNINITIALIZED
-  unslept ∈ [0..42]
+  unslept ∈ [0..42] or UNINITIALIZED
   buf[0..4294967294] ∈ [--..--] or UNINITIALIZED
-  rread ∈ [--..--]
+  rread ∈ [--..--] or UNINITIALIZED
   __retres ∈ {0; 1}
diff --git a/tests/libc/oracle/wchar_c_h.0.res.oracle b/tests/libc/oracle/wchar_c_h.0.res.oracle
index e9e310ee417d1524c5e016661bcbad7ee654197e..7974bac0fc9ad3f3e83b11495623c5f36d11b5f5 100644
--- a/tests/libc/oracle/wchar_c_h.0.res.oracle
+++ b/tests/libc/oracle/wchar_c_h.0.res.oracle
@@ -307,12 +307,13 @@
   r ∈ [--..--] or UNINITIALIZED
   i ∈ [--..--]
   res ∈ {{ NULL ; &buf[0] ; L"Needle" + [0..--],0%4 }}
-  wc_0 ∈ {{ L"ABC" }}
-  p ∈ {{ L"ABC" + {4} }}
-  wcr ∈ {{ L"ABC" + {8} }}
-  wmr1 ∈ {0}
-  wmr2 ∈ {{ L"ABC" + {8} }}
-  dupbuf ∈ {{ NULL ; &__malloc_wcsdup_l99_0[0] }} or ESCAPINGADDR
+  wc_0 ∈ {{ L"ABC" }} or UNINITIALIZED
+  p ∈ {{ L"ABC" + {4} }} or UNINITIALIZED
+  wcr ∈ {{ L"ABC" + {8} }} or UNINITIALIZED
+  wmr1 ∈ {0} or UNINITIALIZED
+  wmr2 ∈ {{ L"ABC" + {8} }} or UNINITIALIZED
+  dupbuf ∈
+        {{ NULL ; &__malloc_wcsdup_l99_0[0] }} or UNINITIALIZED or ESCAPINGADDR
   __retres ∈ {0}
   __malloc_wcsdup_l99[0] ∈ {65}
                      [1] ∈ {66}
diff --git a/tests/libc/oracle/wchar_c_h.1.res.oracle b/tests/libc/oracle/wchar_c_h.1.res.oracle
index 1d03e1b33af9b398bdd1645f1c9b1dac1647cd1a..3c6efb2a6ee2b20d4222a4cb41a63f4a12ffeeb5 100644
--- a/tests/libc/oracle/wchar_c_h.1.res.oracle
+++ b/tests/libc/oracle/wchar_c_h.1.res.oracle
@@ -224,9 +224,9 @@
   r ∈ [--..--] or UNINITIALIZED
   i ∈ [--..--]
   res ∈ {{ NULL ; &buf[0] ; L"Needle" + [0..--],0%4 }}
-  wc_0 ∈ {{ L"ABC" }}
-  p ∈ {{ L"ABC" + {4} }}
-  wcr ∈ {{ L"ABC" + {8} }}
-  wmr1 ∈ {0}
-  wmr2 ∈ {{ L"ABC" + {8} }}
+  wc_0 ∈ {{ L"ABC" }} or UNINITIALIZED
+  p ∈ {{ L"ABC" + {4} }} or UNINITIALIZED
+  wcr ∈ {{ L"ABC" + {8} }} or UNINITIALIZED
+  wmr1 ∈ {0} or UNINITIALIZED
+  wmr2 ∈ {{ L"ABC" + {8} }} or UNINITIALIZED
   __retres ∈ {0}
diff --git a/tests/libc/oracle/wchar_h.res.oracle b/tests/libc/oracle/wchar_h.res.oracle
index a58e0252f356cfb46334eaf577744d07b643d2e9..4e50f74af67f626a0e7ee94e1b57298845c2b7fd 100644
--- a/tests/libc/oracle/wchar_h.res.oracle
+++ b/tests/libc/oracle/wchar_h.res.oracle
@@ -199,14 +199,14 @@
   fd ∈ {{ NULL ; &__fc_fopen + [0..120],0%8 }}
   buf[0..28] ∈ [--..--] or UNINITIALIZED
      [29] ∈ UNINITIALIZED
-  res ∈ {{ NULL ; &buf[0] }}
+  res ∈ {{ NULL ; &buf[0] }} or UNINITIALIZED
   buf2[0] ∈ {97} or UNINITIALIZED
       [1] ∈ {98} or UNINITIALIZED
-  r ∈ {{ &wdst[0] }}
-  wsrc ∈ {{ L"wide thing" }}
+  r ∈ {{ &wdst[0] }} or UNINITIALIZED
+  wsrc ∈ {{ L"wide thing" }} or UNINITIALIZED
   wdst[0..9] ∈ [--..--] or UNINITIALIZED
-  wdst2[0..9] ∈ {65}
-       [10] ∈ {0}
-       [11..19] ∈ [--..--]
-  ir ∈ [--..--]
+  wdst2[0..9] ∈ {65} or UNINITIALIZED
+       [10] ∈ {0} or UNINITIALIZED
+       [11..19] ∈ [--..--] or UNINITIALIZED
+  ir ∈ [--..--] or UNINITIALIZED
   __retres ∈ {0; 1}
diff --git a/tests/value/goto.i b/tests/value/goto.i
index 9a2430a1ea5d4a1b921525accb73c3fdead213bb..d4f59d0f5f204915b4a34d746c742d066a7661a2 100644
--- a/tests/value/goto.i
+++ b/tests/value/goto.i
@@ -1,6 +1,28 @@
+/* run.config*
+  STDOPT: +""
+*/
+
+volatile int nondet;
+
 int stop () {
  L: goto L;
+}
 
+void skip_declaration(void) {
+  int y, r;
+  if (nondet) {
+    goto l; // This goto skips the declaration of variable x below.
+  }
+  int x = 1;
+  y = 2;
+  l: // x and y are both uninitialized when coming from the goto
+  //@ check unknown: \initialized(&x);
+  //@ check unknown: x > 0;
+  //@ check unknown: \initialized(&y);
+  //@ check unknown: y > 0;
+  r = x + 1; // An initialization alarm must be emitted.
+  r = y + 1; // An initialization alarm must be emitted.
+  return;
 }
 
 int main() {
@@ -9,4 +31,5 @@ int main() {
 
   if (c) stop ();
 
+  skip_declaration ();
 }
diff --git a/tests/value/oracle/goto.res.oracle b/tests/value/oracle/goto.res.oracle
index 0a9dd76826c68ef0f40dc613d3f63b92164468c9..d258a57ce28334b1b75d3f60ccc672bdaa19745f 100644
--- a/tests/value/oracle/goto.res.oracle
+++ b/tests/value/oracle/goto.res.oracle
@@ -3,19 +3,37 @@
 [eva] Computing initial state
 [eva] Initial state computed
 [eva:initial-state] Values of globals at initialization
-  
+  nondet ∈ [--..--]
 [eva] computing for function stop <- main.
-  Called from goto.i:10.
+  Called from goto.i:32.
 [eva] Recording results for stop
 [eva] Done for function stop
+[eva] computing for function skip_declaration <- main.
+  Called from goto.i:34.
+[eva:alarm] goto.i:19: Warning: check 'unknown' got status unknown.
+[eva:alarm] goto.i:20: Warning: check 'unknown' got status unknown.
+[eva:alarm] goto.i:21: Warning: check 'unknown' got status unknown.
+[eva:alarm] goto.i:22: Warning: check 'unknown' got status unknown.
+[eva:alarm] goto.i:23: Warning: 
+  accessing uninitialized left-value. assert \initialized(&x);
+[eva:alarm] goto.i:24: Warning: 
+  accessing uninitialized left-value. assert \initialized(&y);
+[eva] Recording results for skip_declaration
+[eva] Done for function skip_declaration
 [eva] Recording results for main
 [eva] done for function main
 [eva] ====== VALUES COMPUTED ======
+[eva:final-states] Values at end of function skip_declaration:
+  y ∈ {2}
+  r ∈ {3}
+  x ∈ {1}
 [eva:final-states] Values at end of function stop:
   NON TERMINATING FUNCTION
 [eva:final-states] Values at end of function main:
   c ∈ [--..--]
   __retres ∈ {0}
+[from] Computing for function skip_declaration
+[from] Done for function skip_declaration
 [from] Computing for function stop
 [from] Non-terminating function stop (no dependencies)
 [from] Done for function stop
@@ -23,11 +41,17 @@
 [from] Done for function main
 [from] ====== DEPENDENCIES COMPUTED ======
   These dependencies hold at termination for the executions that terminate:
+[from] Function skip_declaration:
+  NO EFFECTS
 [from] Function stop:
   NON TERMINATING - NO EFFECTS
 [from] Function main:
   \result FROM \nothing
 [from] ====== END OF DEPENDENCIES ======
+[inout] Out (internal) for function skip_declaration:
+    y; r; x
+[inout] Inputs for function skip_declaration:
+    nondet
 [inout] Out (internal) for function stop:
     \nothing
 [inout] Inputs for function stop:
@@ -35,4 +59,4 @@
 [inout] Out (internal) for function main:
     c; __retres
 [inout] Inputs for function main:
-    \nothing
+    nondet
diff --git a/tests/value/oracle/ilevel.1.res.oracle b/tests/value/oracle/ilevel.1.res.oracle
index af0704f7b5dc3605bcf5703ca05d7133098127fb..ed394c4de8468cfab8e6a4af5a3a2f280c3e1747 100644
--- a/tests/value/oracle/ilevel.1.res.oracle
+++ b/tests/value/oracle/ilevel.1.res.oracle
@@ -27,23 +27,23 @@
   i_0 ∈ [0..10]
   j_0 ∈ [-25..-15] ∪ [0..10]
   k_0 ∈ [100..200]
-  a[0] ∈ {53}
-   [1] ∈ {17}
-   [2] ∈ {64}
-   [3] ∈ {99}
-   [4] ∈ {25}
-   [5] ∈ {12}
-   [6] ∈ {72}
-   [7] ∈ {81}
-   [8] ∈ {404}
-   [9] ∈ {303}
-   [10] ∈ {-101}
-  s2 ∈ {40; 41; 42}
-  s1 ∈ {-101; 12; 17; 25; 53; 64; 72; 81; 99; 303; 404}
+  a[0] ∈ {53} or UNINITIALIZED
+   [1] ∈ {17} or UNINITIALIZED
+   [2] ∈ {64} or UNINITIALIZED
+   [3] ∈ {99} or UNINITIALIZED
+   [4] ∈ {25} or UNINITIALIZED
+   [5] ∈ {12} or UNINITIALIZED
+   [6] ∈ {72} or UNINITIALIZED
+   [7] ∈ {81} or UNINITIALIZED
+   [8] ∈ {404} or UNINITIALIZED
+   [9] ∈ {303} or UNINITIALIZED
+   [10] ∈ {-101} or UNINITIALIZED
+  s2 ∈ {40; 41; 42} or UNINITIALIZED
+  s1 ∈ {-101; 12; 17; 25; 53; 64; 72; 81; 99; 303; 404} or UNINITIALIZED
   x ∈
    {-101} ∪ [-25..-15] ∪ [0..10]
     ∪ {12; 17; 25; 40; 41; 42; 53; 64; 72; 81} ∪ [99..127] ∪ [129..200]
-    ∪ {303; 404}
+    ∪ {303; 404} or UNINITIALIZED
 [from] Computing for function large_ilevel
 [from] Computing for function Frama_C_interval <-large_ilevel
 [from] Done for function Frama_C_interval
diff --git a/tests/value/oracle/initialized.res.oracle b/tests/value/oracle/initialized.res.oracle
index 28313721c94409af21b570e0a043955e260d67e3..14418e31e5dafb8f716f7f0f49cebd248900d4a4 100644
--- a/tests/value/oracle/initialized.res.oracle
+++ b/tests/value/oracle/initialized.res.oracle
@@ -103,6 +103,7 @@
    {[12][bits 24 to 31]#; [13][bits 0 to 23]#} ∈
    {0x11111111; 0x22222222} or UNINITIALIZED
    [13][bits 24 to 31] ∈ {0} or UNINITIALIZED
+  p_0 ∈ UNINITIALIZED
   v1 ∈ {0}
   i6 ∈ [--..--]
   __retres ∈ UNINITIALIZED
diff --git a/tests/value/oracle/narrow_behaviors.res.oracle b/tests/value/oracle/narrow_behaviors.res.oracle
index 32fe99abc39f02de30c9f3480ff73dc9abb0f8f7..c7c34ba693151038032e7c479139f683623e7897 100644
--- a/tests/value/oracle/narrow_behaviors.res.oracle
+++ b/tests/value/oracle/narrow_behaviors.res.oracle
@@ -14,6 +14,7 @@
   nondet ∈ [--..--]
   p.x ∈ {2}
    .y ∈ {1; 2}
+  q ∈ UNINITIALIZED
   __retres ∈ UNINITIALIZED
   ==END OF DUMP==
 [eva] narrow_behaviors.i:56: 
@@ -21,6 +22,7 @@
   # cvalue:
   nondet ∈ {0}
   p{.x; .y} ∈ {1}
+  q ∈ UNINITIALIZED
   __retres ∈ UNINITIALIZED
   ==END OF DUMP==
 [eva] computing for function f2 <- main.
@@ -83,6 +85,7 @@
   # cvalue:
   nondet ∈ {0}
   r{.x; .y} ∈ {1}
+  s ∈ UNINITIALIZED
   __retres ∈ UNINITIALIZED
   ==END OF DUMP==
 [eva] narrow_behaviors.i:62: 
@@ -90,6 +93,7 @@
   # cvalue:
   nondet ∈ {1}
   r{.x; .y} ∈ {2}
+  s ∈ UNINITIALIZED
   __retres ∈ UNINITIALIZED
   ==END OF DUMP==
 [eva] computing for function f2 <- main.
diff --git a/tests/value/oracle/octagons-pointers-intermediate.res.oracle b/tests/value/oracle/octagons-pointers-intermediate.res.oracle
index f6f6928d4db7af08f6ab5ce3c73d7c426302cd10..cc794d3b969e2f6126394b392c2518ba8fdc2b25 100644
--- a/tests/value/oracle/octagons-pointers-intermediate.res.oracle
+++ b/tests/value/oracle/octagons-pointers-intermediate.res.oracle
@@ -30,10 +30,10 @@
   elt1 ∈ {{ &buffer + [6..436] }}
   elt2 ∈ {{ &buffer + [10..440] }}
   elt3 ∈ {{ &buffer + [12..442] }}
-  c ∈ [--..--]
-  e1 ∈ [--..--]
-  e2 ∈ [--..--]
-  e3 ∈ [--..--]
+  c ∈ [--..--] or UNINITIALIZED
+  e1 ∈ [--..--] or UNINITIALIZED
+  e2 ∈ [--..--] or UNINITIALIZED
+  e3 ∈ [--..--] or UNINITIALIZED
 [eva:final-states] Values at end of function init:
   buffer[0..435] ∈ [--..--]
   i ∈ {436}
diff --git a/tests/value/oracle/octagons-pointers-simple.res.oracle b/tests/value/oracle/octagons-pointers-simple.res.oracle
index b4ac5a0756733ff58a4a12d5a53b72dca2edf3a6..6051c069e6ad5299c640ecef86b415c4a847ff2e 100644
--- a/tests/value/oracle/octagons-pointers-simple.res.oracle
+++ b/tests/value/oracle/octagons-pointers-simple.res.oracle
@@ -46,10 +46,10 @@
   elt1 ∈ {{ &buffer + [6..436] }}
   elt2 ∈ {{ &buffer + [10..440] }}
   elt3 ∈ {{ &buffer + [12..442] }}
-  c ∈ [--..--]
-  e1 ∈ [--..--]
-  e2 ∈ [--..--]
-  e3 ∈ [--..--]
+  c ∈ [--..--] or UNINITIALIZED
+  e1 ∈ [--..--] or UNINITIALIZED
+  e2 ∈ [--..--] or UNINITIALIZED
+  e3 ∈ [--..--] or UNINITIALIZED
 [eva:final-states] Values at end of function init:
   buffer[0..435] ∈ [--..--]
   i ∈ {436}
diff --git a/tests/value/oracle/octagons-pointers.res.oracle b/tests/value/oracle/octagons-pointers.res.oracle
index dcc4c9fa9e70f408240e63200520b112956ebb1c..b3c686962e27573ab9306764637f890142d99ee8 100644
--- a/tests/value/oracle/octagons-pointers.res.oracle
+++ b/tests/value/oracle/octagons-pointers.res.oracle
@@ -90,10 +90,10 @@
   elt1 ∈ {{ &buffer + [6..436] }}
   elt2 ∈ {{ &buffer + [10..440] }}
   elt3 ∈ {{ &buffer + [12..442] }}
-  c ∈ [--..--]
-  e1 ∈ [--..--]
-  e2 ∈ [--..--]
-  e3 ∈ [--..--]
+  c ∈ [--..--] or UNINITIALIZED
+  e1 ∈ [--..--] or UNINITIALIZED
+  e2 ∈ [--..--] or UNINITIALIZED
+  e3 ∈ [--..--] or UNINITIALIZED
 [eva:final-states] Values at end of function init:
   buffer[0..435] ∈ [--..--]
   i ∈ {436}
diff --git a/tests/value/oracle/period.res.oracle b/tests/value/oracle/period.res.oracle
index 06bf41e67c2931c7ede6b776b660b06d2063853d..ffabad17985bafe2217dd6eaae24b6ad5f976aa4 100644
--- a/tests/value/oracle/period.res.oracle
+++ b/tests/value/oracle/period.res.oracle
@@ -77,6 +77,8 @@
   Ft ∈ {2}
   Gt ∈ {12}
   Ht ∈ {1}
+  p ∈ UNINITIALIZED
+  vg ∈ UNINITIALIZED
   ==END OF DUMP==
 [eva:alarm] period.c:51: Warning: 
   pointer downcast. assert (unsigned int)(&g) ≤ 2147483647;
diff --git a/tests/value/oracle/recursion.1.res.oracle b/tests/value/oracle/recursion.1.res.oracle
index fe28d193e06ce292c499fce259f11e0b4712d798..60fb835c758c13364113c0d52a999029bdfc65d5 100644
--- a/tests/value/oracle/recursion.1.res.oracle
+++ b/tests/value/oracle/recursion.1.res.oracle
@@ -127,7 +127,7 @@
 [eva] done for function main
 [eva] ====== VALUES COMPUTED ======
 [eva:final-states] Values at end of function alarm:
-  res ∈ [2..2147483647]
+  res ∈ [2..2147483647] or UNINITIALIZED
   __retres ∈ [1..2147483647]
 [eva:final-states] Values at end of function decr:
   
@@ -147,7 +147,7 @@
   x ∈ {0; 1}
   b ∈ {0; 1}
 [eva:final-states] Values at end of function factorial:
-  res ∈ {2; 6; 24; 120}
+  res ∈ {2; 6; 24; 120} or UNINITIALIZED
   __retres ∈ {1; 2; 6; 24; 120}
 [eva:final-states] Values at end of function factorial_ptr:
   y ∈ {91; 120}
@@ -179,7 +179,7 @@
 [eva:final-states] Values at end of function precond:
   y ∈ [-100..-6]
 [eva:final-states] Values at end of function sum:
-  res ∈ [3..91]
+  res ∈ [3..91] or UNINITIALIZED
   __retres ∈ [1..91]
 [eva:final-states] Values at end of function sum_and_fact:
   x ∈ {11; 36}
diff --git a/tests/value/oracle/recursion.2.res.oracle b/tests/value/oracle/recursion.2.res.oracle
index 84f55cfe2e5abfe7f85dd8bc16592c62502637d0..a77a482b7f5837fed43cec25cb2e14fc1e4a543e 100644
--- a/tests/value/oracle/recursion.2.res.oracle
+++ b/tests/value/oracle/recursion.2.res.oracle
@@ -21,7 +21,7 @@
 [eva] done for function main_fail
 [eva] ====== VALUES COMPUTED ======
 [eva:final-states] Values at end of function sum_nospec:
-  res ∈ [--..--]
+  res ∈ [--..--] or UNINITIALIZED
   __retres ∈ [--..--]
 [eva:final-states] Values at end of function main_fail:
   Frama_C_entropy_source ∈ [--..--]
diff --git a/tests/value/oracle/relations2.res.oracle b/tests/value/oracle/relations2.res.oracle
index 528534268000a5c8e8b2f177a4622b261ec7b417..30bebcad81d04ad51e45060c24564c5bf948459a 100644
--- a/tests/value/oracle/relations2.res.oracle
+++ b/tests/value/oracle/relations2.res.oracle
@@ -57,6 +57,7 @@
   t ∈ [0..511]
   n ∈ [0..512]
   s ∈ {0}
+  b3 ∈ UNINITIALIZED
   T[0] ∈ {0}
    [1] ∈ {1}
    [2] ∈ {42}
@@ -78,6 +79,7 @@
   t ∈ [0..511]
   n ∈ [0..512]
   s ∈ {0; 1}
+  b3 ∈ UNINITIALIZED
   T[0] ∈ {0}
    [1] ∈ {1}
    [2] ∈ {42}
@@ -95,6 +97,7 @@
   t ∈ [0..511]
   n ∈ [0..512]
   s ∈ {0; 1; 2}
+  b3 ∈ UNINITIALIZED
   T[0] ∈ {0}
    [1] ∈ {1}
    [2] ∈ {42}
@@ -112,6 +115,7 @@
   t ∈ [0..511]
   n ∈ [0..512]
   s ∈ [0..2147483647]
+  b3 ∈ UNINITIALIZED
   T[0] ∈ {0}
    [1] ∈ {1}
    [2] ∈ {42}
diff --git a/tests/value/oracle_apron/relations2.res.oracle b/tests/value/oracle_apron/relations2.res.oracle
index 826838be9fa828494778a91aa0b0b45ae7026db1..529a4f0974996512fd0f6d58ff7601c9c945a29e 100644
--- a/tests/value/oracle_apron/relations2.res.oracle
+++ b/tests/value/oracle_apron/relations2.res.oracle
@@ -6,26 +6,26 @@
 < [eva] relations2.i:17: Frama_C_show_each_end: [0..4294967295], [0..64]
 ---
 > [eva] relations2.i:17: Frama_C_show_each_end: [0..1023], [0..64]
-68,70d67
+69,71d68
 < [eva:alarm] relations2.i:34: Warning: 
 <   accessing out of bounds index.
 <   assert (unsigned int)(i - (unsigned int)(t + 1)) < 514;
-123,124d119
+127,128d123
 < [eva:alarm] relations2.i:35: Warning: 
 <   signed overflow. assert s + b3 ≤ 2147483647;
-139c134
+143c138
 <   len ∈ [--..--]
 ---
 >   len ∈ [0..1023]
-182c177
+186c181
 <   \result FROM a[0..513]
 ---
 >   \result FROM a[0..511]
-198c193
+202c197
 <     a[0..513]
 ---
 >     a[0..511]
-202c197
+206c201
 <     sv; a[0..513]; T[0..6]
 ---
 >     sv; a[0..511]; T[0..6]
diff --git a/tests/value/oracle_equality/period.res.oracle b/tests/value/oracle_equality/period.res.oracle
index 208bb785c666f3d05fd6161dba406ac1cf4ae010..3cc5b3eeaf65b71667a3736906ec69e7ac2eedb5 100644
--- a/tests/value/oracle_equality/period.res.oracle
+++ b/tests/value/oracle_equality/period.res.oracle
@@ -1,9 +1,9 @@
-87,92d86
+89,94d88
 < [eva:alarm] period.c:53: Warning: 
 <   pointer downcast. assert (unsigned int)(&g) ≤ 2147483647;
 < [eva] period.c:53: 
 <   Assigning imprecise value to p.
 <   The imprecision originates from Arithmetic {period.c:53}
 < [eva:alarm] period.c:54: Warning: out of bounds read. assert \valid_read(p);
-97d90
+99d92
 < [scope:rm_asserts] removing 1 assertion(s)
diff --git a/tests/value/oracle_equality/relations2.res.oracle b/tests/value/oracle_equality/relations2.res.oracle
index f28c7db295829a43b3ea15839fda057ad54c22b5..c4950d71433bcd95ffcca1ceb9f583bab746e94c 100644
--- a/tests/value/oracle_equality/relations2.res.oracle
+++ b/tests/value/oracle_equality/relations2.res.oracle
@@ -2,5 +2,5 @@
 <   n ∈ [0..512]
 ---
 >   n ∈ [1..512]
-132d131
+136d135
 < [eva] relations2.i:57: Frama_C_show_each_NO2:
diff --git a/tests/value/oracle_octagon/relations2.res.oracle b/tests/value/oracle_octagon/relations2.res.oracle
index a250063ee008db59cb92ba3ce23ff4eb5bfd0ad8..8f7073190ffa96e9117aa9e657a6bbae0ccc8a3b 100644
--- a/tests/value/oracle_octagon/relations2.res.oracle
+++ b/tests/value/oracle_octagon/relations2.res.oracle
@@ -10,35 +10,35 @@
 <   n ∈ [0..512]
 ---
 >   n ∈ [1..512]
-68,70d67
+69,71d68
 < [eva:alarm] relations2.i:34: Warning: 
 <   accessing out of bounds index.
 <   assert (unsigned int)(i - (unsigned int)(t + 1)) < 514;
-79c76
+80c77
 <   n ∈ [0..512]
 ---
 >   n ∈ [1..512]
-96c93
+98c95
 <   n ∈ [0..512]
 ---
 >   n ∈ [1..512]
-113c110
+116c113
 <   n ∈ [0..512]
 ---
 >   n ∈ [1..512]
-139c136
+143c140
 <   len ∈ [--..--]
 ---
 >   len ∈ [0..1023]
-182c179
+186c183
 <   \result FROM a[0..513]
 ---
 >   \result FROM a[0..511]
-198c195
+202c199
 <     a[0..513]
 ---
 >     a[0..511]
-202c199
+206c203
 <     sv; a[0..513]; T[0..6]
 ---
 >     sv; a[0..511]; T[0..6]
diff --git a/tests/value/oracle_symblocs/relations2.res.oracle b/tests/value/oracle_symblocs/relations2.res.oracle
index c58e8b748b82010d71f12f9f376e3ff067b60777..5c2ddb21fb2be059c5739d24c65a1b29be90b79c 100644
--- a/tests/value/oracle_symblocs/relations2.res.oracle
+++ b/tests/value/oracle_symblocs/relations2.res.oracle
@@ -1,2 +1,2 @@
-132d131
+136d135
 < [eva] relations2.i:57: Frama_C_show_each_NO2:
diff --git a/tests/value/traces/oracle/test1.res.oracle b/tests/value/traces/oracle/test1.res.oracle
index 687a3a1ceb615c098323649f6003c3d1315af5fd..ee037639517bec64c830931a00dcb666a0177f18 100644
--- a/tests/value/traces/oracle/test1.res.oracle
+++ b/tests/value/traces/oracle/test1.res.oracle
@@ -27,11 +27,11 @@ c -> 5
     8 -> Assign: tmp = g -> 9
     9 -> EnterScope: i -> 12
     10 -> Assign: tmp = 2 -> 11
-    11 -> EnterScope: i -> 15
-    12 -> initialize variable: i -> 13
-    13 -> Assign: i = 0 -> 14
-    14 -> enter_loop -> 19
-    15 -> initialize variable: i -> 16
+    11 -> EnterScope: i -> 13
+    12 -> initialize variable: i -> 14
+    13 -> initialize variable: i -> 16
+    14 -> Assign: i = 0 -> 15
+    15 -> enter_loop -> 19
     16 -> Assign: i = 0 -> 17
     17 -> enter_loop -> 18
     18 -> Assume: i < 3 true -> 20
diff --git a/tests/value/traces/oracle/test2.res.oracle b/tests/value/traces/oracle/test2.res.oracle
index 05f84f4a876a3eb4e55d1c37823889630a3d12fa..95d7f650c02064982af9ea1947fb863ebe62726e 100644
--- a/tests/value/traces/oracle/test2.res.oracle
+++ b/tests/value/traces/oracle/test2.res.oracle
@@ -54,7 +54,7 @@ c -> 1
     35 -> finalize_call: loop -> 36
     36 -> Assign: tmp = \result<loop> -> 37
     37 -> LeaveScope: \result<loop> -> 38
-    38 -> EnterScope: \result<main> -> 78
+    38 -> EnterScope: \result<main> -> 79
     39 -> EnterScope: j -> 40
     40 -> Assign: j = tmp -> 41
     41 -> EnterScope: i -> 43
@@ -74,15 +74,15 @@ c -> 1
     56 -> LeaveScope: i -> 57
     57 -> EnterScope: \result<loop> -> 58
     58 -> Assign: \result<loop> = j -> 59
-    59 -> LeaveScope: j -> 74
-    74 -> finalize_call: loop -> 75
-    75 -> Assign: tmp = \result<loop> -> 76
-    76 -> LeaveScope: \result<loop> -> 77
-    77 -> EnterScope: \result<main> -> 80
-    78 -> Assign: \result<main> = tmp -> 79
-    79 -> join -> 82
-    80 -> Assign: \result<main> = tmp -> 81
-    81 -> join -> 82 ]} at 82
+    59 -> LeaveScope: j -> 75
+    75 -> finalize_call: loop -> 76
+    76 -> Assign: tmp = \result<loop> -> 77
+    77 -> LeaveScope: \result<loop> -> 78
+    78 -> EnterScope: \result<main> -> 81
+    79 -> Assign: \result<main> = tmp -> 80
+    80 -> join -> 83
+    81 -> Assign: \result<main> = tmp -> 82
+    82 -> join -> 83 ]} at 83
 [from] Computing for function loop
 [from] Done for function loop
 [from] Computing for function main
diff --git a/tests/value/traces/oracle/test3.res.oracle b/tests/value/traces/oracle/test3.res.oracle
index a8c3a78127eeeda83fc76a2c424715167708af8b..5b4cec9510857974d3dd70e8bcc965871eb4e2ac 100644
--- a/tests/value/traces/oracle/test3.res.oracle
+++ b/tests/value/traces/oracle/test3.res.oracle
@@ -17,15 +17,14 @@
  {[ 0 -> initialize variable: g -> 1
     1 -> initialize formal variable using type
 c -> 2
-    2 -> EnterScope: __retres -> 3
-    3 -> EnterScope: tmp -> 4
-    4 -> initialize variable: tmp -> 5
-    5 -> Assign: tmp = 4 -> 6
-    6 -> Assume: tmp true -> 7
-    7 -> Assign: g = tmp -> 8
-    8 -> Assign: __retres = g + 1 -> 9
-    9 -> EnterScope: \result<main> -> 10
-    10 -> Assign: \result<main> = __retres -> 11 ]} at 11
+    2 -> EnterScope: __retres tmp -> 3
+    3 -> initialize variable: tmp -> 4
+    4 -> Assign: tmp = 4 -> 5
+    5 -> Assume: tmp true -> 6
+    6 -> Assign: g = tmp -> 7
+    7 -> Assign: __retres = g + 1 -> 8
+    8 -> EnterScope: \result<main> -> 9
+    9 -> Assign: \result<main> = __retres -> 10 ]} at 10
 [from] Computing for function main
 [from] Done for function main
 [from] ====== DEPENDENCIES COMPUTED ======
@@ -55,17 +54,15 @@ int main(int c)
   int __traces_domain_return;
   {
     int __retres;
+    int tmp;
+    tmp = 4;
+    /*@ assert tmp ≢ 0;  */
+    g = tmp;
+    __retres = g + 1;
     {
-      int tmp;
-      tmp = 4;
-      /*@ assert tmp ≢ 0;  */
-      g = tmp;
-      __retres = g + 1;
-      {
-        int _result_main_;
-        _result_main_ = __retres;
-        __traces_domain_return = __retres;
-      }
+      int _result_main_;
+      _result_main_ = __retres;
+      __traces_domain_return = __retres;
     }
   }
   return __traces_domain_return;
diff --git a/tests/value/traces/oracle/test5.res.oracle b/tests/value/traces/oracle/test5.res.oracle
index 65e159b215ac3cdbfd7881b377f7c6fac1cd2d06..d80a1a070d8d66e05423708b843895fcffcf12e0 100644
--- a/tests/value/traces/oracle/test5.res.oracle
+++ b/tests/value/traces/oracle/test5.res.oracle
@@ -443,7 +443,7 @@ c -> 1
     264 -> Assign: i = i + 1 -> 265
     265 -> Assume: i < 10 true -> 266; join -> 278
     266 -> EnterScope: j -> 267; join -> 280
-    267 -> initialize variable: j -> 268
+    267 -> initialize variable: j -> 268; join -> 282
     268 -> Assign: j = 0 -> 269
     269 -> enter_loop -> 270
     270 -> join -> 271
@@ -458,20 +458,21 @@ c -> 1
                            157 -> Assign: tmp = tmp_0 + tmp -> 159
                            159 -> LeaveScope: tmp_0 -> 160
                            160 -> Assign: j = j + 1 -> 162 ]} -> 273;
-           join -> 285
+           join -> 286
     273 -> Assume: j < 10 false -> 274
     274 -> leave_loop -> 275
-    275 -> LeaveScope: j -> 276; join -> 290
-    276 -> Assign: i = i + 1 -> 277; join -> 292
+    275 -> LeaveScope: j -> 276; join -> 291
+    276 -> Assign: i = i + 1 -> 277; join -> 293
     277 -> join -> 278
-    278 -> Assume: i < 10 true -> 279; join -> 294
+    278 -> Assume: i < 10 true -> 279; join -> 295
     279 -> join -> 280
-    280 -> EnterScope: j -> 281; join -> 296
-    281 -> initialize variable: j -> 282
-    282 -> Assign: j = 0 -> 283
-    283 -> enter_loop -> 284
-    284 -> join -> 285
-    285 -> Loop(16) 148 {[ 148 -> Assume: j < 10 true -> 149
+    280 -> EnterScope: j -> 281; join -> 297
+    281 -> join -> 282
+    282 -> initialize variable: j -> 283; join -> 299
+    283 -> Assign: j = 0 -> 284
+    284 -> enter_loop -> 285
+    285 -> join -> 286
+    286 -> Loop(16) 148 {[ 148 -> Assume: j < 10 true -> 149
                            149 -> EnterScope: tmp_0 -> 151
                            151 -> EnterScope: \result<my_switch> -> 153
                            153 -> CallDeclared:
@@ -481,23 +482,24 @@ c -> 1
                            156 -> LeaveScope: \result<my_switch> -> 157
                            157 -> Assign: tmp = tmp_0 + tmp -> 159
                            159 -> LeaveScope: tmp_0 -> 160
-                           160 -> Assign: j = j + 1 -> 162 ]} -> 287;
-           join -> 301
-    287 -> Assume: j < 10 false -> 288
-    288 -> leave_loop -> 289
-    289 -> join -> 290
-    290 -> LeaveScope: j -> 291; join -> 306
-    291 -> join -> 292
-    292 -> Assign: i = i + 1 -> 293; join -> 308
-    293 -> join -> 294
-    294 -> Assume: i < 10 true -> 295; join -> 310
-    295 -> join -> 296
-    296 -> EnterScope: j -> 297; join -> 313
-    297 -> initialize variable: j -> 298
-    298 -> Assign: j = 0 -> 299
-    299 -> enter_loop -> 300
-    300 -> join -> 301
-    301 -> Loop(16) 148 {[ 148 -> Assume: j < 10 true -> 149
+                           160 -> Assign: j = j + 1 -> 162 ]} -> 288;
+           join -> 303
+    288 -> Assume: j < 10 false -> 289
+    289 -> leave_loop -> 290
+    290 -> join -> 291
+    291 -> LeaveScope: j -> 292; join -> 308
+    292 -> join -> 293
+    293 -> Assign: i = i + 1 -> 294; join -> 310
+    294 -> join -> 295
+    295 -> Assume: i < 10 true -> 296; join -> 312
+    296 -> join -> 297
+    297 -> EnterScope: j -> 298; join -> 315
+    298 -> join -> 299
+    299 -> initialize variable: j -> 300; join -> 317
+    300 -> Assign: j = 0 -> 301
+    301 -> enter_loop -> 302
+    302 -> join -> 303
+    303 -> Loop(16) 148 {[ 148 -> Assume: j < 10 true -> 149
                            149 -> EnterScope: tmp_0 -> 151
                            151 -> EnterScope: \result<my_switch> -> 153
                            153 -> CallDeclared:
@@ -507,25 +509,26 @@ c -> 1
                            156 -> LeaveScope: \result<my_switch> -> 157
                            157 -> Assign: tmp = tmp_0 + tmp -> 159
                            159 -> LeaveScope: tmp_0 -> 160
-                           160 -> Assign: j = j + 1 -> 162 ]} -> 303;
-           join -> 318
-    303 -> Assume: j < 10 false -> 304
-    304 -> leave_loop -> 305
-    305 -> join -> 306
-    306 -> LeaveScope: j -> 307; join -> 323
+                           160 -> Assign: j = j + 1 -> 162 ]} -> 305;
+           join -> 321
+    305 -> Assume: j < 10 false -> 306
+    306 -> leave_loop -> 307
     307 -> join -> 308
-    308 -> Assign: i = i + 1 -> 309; join -> 325
+    308 -> LeaveScope: j -> 309; join -> 326
     309 -> join -> 310
-    310 -> join -> 313
-    313 -> join -> 318
-    318 -> join -> 323
-    323 -> join -> 325
-    325 -> Loop(10) 311 {[ 311 -> Assume: i < 10 true -> 312
-                           312 -> EnterScope: j -> 314
-                           314 -> initialize variable: j -> 315
-                           315 -> Assign: j = 0 -> 316
-                           316 -> enter_loop -> 317
-                           317 -> Loop(16) 148 {[ 148 -> Assume:
+    310 -> Assign: i = i + 1 -> 311; join -> 328
+    311 -> join -> 312
+    312 -> join -> 315
+    315 -> join -> 317
+    317 -> join -> 321
+    321 -> join -> 326
+    326 -> join -> 328
+    328 -> Loop(10) 313 {[ 313 -> Assume: i < 10 true -> 314
+                           314 -> EnterScope: j -> 316
+                           316 -> initialize variable: j -> 318
+                           318 -> Assign: j = 0 -> 319
+                           319 -> enter_loop -> 320
+                           320 -> Loop(16) 148 {[ 148 -> Assume:
                                                            j < 10 true 
                                                            -> 149
                                                   149 -> EnterScope:
@@ -551,16 +554,16 @@ c -> 1
                                                   160 -> Assign:
                                                            j = j + 1 
                                                            -> 162 ]} 
-                                    -> 320
-                           320 -> Assume: j < 10 false -> 321
-                           321 -> leave_loop -> 322
-                           322 -> LeaveScope: j -> 324
-                           324 -> Assign: i = i + 1 -> 326 ]} -> 329
-    329 -> Assume: i < 10 false -> 330
-    330 -> leave_loop -> 331
-    331 -> LeaveScope: i -> 332
-    332 -> EnterScope: \result<main> -> 333
-    333 -> Assign: \result<main> = tmp -> 334 ]} at 334
+                                    -> 323
+                           323 -> Assume: j < 10 false -> 324
+                           324 -> leave_loop -> 325
+                           325 -> LeaveScope: j -> 327
+                           327 -> Assign: i = i + 1 -> 329 ]} -> 332
+    332 -> Assume: i < 10 false -> 333
+    333 -> leave_loop -> 334
+    334 -> LeaveScope: i -> 335
+    335 -> EnterScope: \result<main> -> 336
+    336 -> Assign: \result<main> = tmp -> 337 ]} at 337
 [from] Computing for function main
 [from] Computing for function my_switch <-main
 [from] Done for function my_switch