diff --git a/src/plugins/value/engine/evaluation.ml b/src/plugins/value/engine/evaluation.ml
index b020de87b292080cf85983ecf88a0e87698bf39d..14af242908ead4186f697795717423c67e0a1b7f 100644
--- a/src/plugins/value/engine/evaluation.ml
+++ b/src/plugins/value/engine/evaluation.ml
@@ -1593,15 +1593,15 @@ module Make
       let typ = Cil.typeOf expr in
       let eval acc state =
         match fst (evaluate state expr) with
-        | `Bottom -> acc
+        | `Bottom -> (state, `Bottom, false) :: acc
         | `Value (_cache, value) ->
           let zero_or_one = Cvalue.V.cardinal_zero_or_one (get value) in
-          (state, value, zero_or_one) :: acc
+          (state, `Value value, zero_or_one) :: acc
       in
       let eval_states = List.fold_left eval [] states in
       let match_expected_value expected_value states =
         let process_one_state (eq, mess, neq) (s, v, zero_or_one as current) =
-          if Value.is_included expected_value v then
+          if Bottom.is_included Value.is_included expected_value v then
             (* The integer on which we split is part of the result *)
             if zero_or_one then
               (s :: eq, mess, neq) (* Clean split *)
@@ -1613,7 +1613,7 @@ module Make
         List.fold_left process_one_state ([], false, []) states
       in
       let process_one_value (acc, states) i =
-        let value = Value.reduce (Value.inject_int typ i) in
+        let value = `Value (Value.reduce (Value.inject_int typ i)) in
         let eq, mess, neq = match_expected_value value states in
         (i, eq, mess) :: acc, neq
       in
diff --git a/tests/value/oracle/split_return.0.res.oracle b/tests/value/oracle/split_return.0.res.oracle
index e0a0991d0ef1539d7b0127334b596f71da4d8416..342033647fd5610389bc72b57770adf8ebfe9147 100644
--- a/tests/value/oracle/split_return.0.res.oracle
+++ b/tests/value/oracle/split_return.0.res.oracle
@@ -5,6 +5,8 @@
   \return(f3) == -2, -4 (user)
   \return(f4) == 4 (user)
   \return(f5) == -2 (user)
+  \return(uninit) == 0 (user)
+  \return(escaping) == 0 (user)
 [eva] Analyzing a complete application starting at main
 [eva] Computing initial state
 [eva] Initial state computed
@@ -15,8 +17,9 @@
   i5 ∈ [--..--]
   v ∈ [--..--]
   v7 ∈ {0}
+  rand ∈ [--..--]
 [eva] computing for function main1 <- main.
-  Called from tests/value/split_return.i:176.
+  Called from tests/value/split_return.i:204.
 [eva] computing for function init <- main1 <- main.
   Called from tests/value/split_return.i:17.
 [eva] using specification for function init
@@ -24,7 +27,7 @@
 [eva] Recording results for main1
 [eva] Done for function main1
 [eva] computing for function main2 <- main.
-  Called from tests/value/split_return.i:177.
+  Called from tests/value/split_return.i:205.
 [eva] computing for function f2 <- main2 <- main.
   Called from tests/value/split_return.i:48.
 [eva] Recording results for f2
@@ -37,7 +40,7 @@
 [eva] Recording results for main2
 [eva] Done for function main2
 [eva] computing for function main3 <- main.
-  Called from tests/value/split_return.i:178.
+  Called from tests/value/split_return.i:206.
 [eva] computing for function f3 <- main3 <- main.
   Called from tests/value/split_return.i:73.
 [eva] tests/value/split_return.i:69: f3: cannot properly split on \result == -2
@@ -51,7 +54,7 @@
 [eva] Recording results for main3
 [eva] Done for function main3
 [eva] computing for function main4 <- main.
-  Called from tests/value/split_return.i:179.
+  Called from tests/value/split_return.i:207.
 [eva] computing for function f4 <- main4 <- main.
   Called from tests/value/split_return.i:94.
 [eva] Recording results for f4
@@ -64,7 +67,7 @@
 [eva] Recording results for main4
 [eva] Done for function main4
 [eva] computing for function main5 <- main.
-  Called from tests/value/split_return.i:180.
+  Called from tests/value/split_return.i:208.
 [eva] computing for function f5 <- main5 <- main.
   Called from tests/value/split_return.i:117.
 [eva] Recording results for f5
@@ -76,7 +79,7 @@
 [eva] Recording results for main5
 [eva] Done for function main5
 [eva] computing for function main6 <- main.
-  Called from tests/value/split_return.i:181.
+  Called from tests/value/split_return.i:209.
 [eva] computing for function f6 <- main6 <- main.
   Called from tests/value/split_return.i:135.
 [eva:alarm] tests/value/split_return.i:130: Warning: 
@@ -86,7 +89,7 @@
 [eva] Recording results for main6
 [eva] Done for function main6
 [eva] computing for function main7 <- main.
-  Called from tests/value/split_return.i:182.
+  Called from tests/value/split_return.i:210.
 [eva] computing for function f7 <- main7 <- main.
   Called from tests/value/split_return.i:148.
 [eva] Recording results for f7
@@ -96,7 +99,7 @@
 [eva] Recording results for main7
 [eva] Done for function main7
 [eva] computing for function main8 <- main.
-  Called from tests/value/split_return.i:183.
+  Called from tests/value/split_return.i:211.
 [eva] computing for function f8 <- main8 <- main.
   Called from tests/value/split_return.i:171.
 [eva] Recording results for f8
@@ -105,9 +108,29 @@
   Frama_C_show_each_then8: {-1; 4}, {{ NULL ; &x }}
 [eva] Recording results for main8
 [eva] Done for function main8
+[eva] computing for function main9 <- main.
+  Called from tests/value/split_return.i:212.
+[eva] computing for function uninit <- main9 <- main.
+  Called from tests/value/split_return.i:199.
+[eva] Recording results for uninit
+[eva] Done for function uninit
+[eva] computing for function escaping <- main9 <- main.
+  Called from tests/value/split_return.i:200.
+[eva:locals-escaping] tests/value/split_return.i:192: Warning: 
+  locals {x} escaping the scope of a block of escaping through p
+[eva] Recording results for escaping
+[eva] Done for function escaping
+[eva] computing for function escaping <- main9 <- main.
+  Called from tests/value/split_return.i:200.
+[eva] Recording results for escaping
+[eva] Done for function escaping
+[eva] Recording results for main9
+[eva] Done for function main9
 [eva] Recording results for main
 [eva] done for function main
 [eva] ====== VALUES COMPUTED ======
+[eva:final-states] Values at end of function escaping:
+  p ∈ ESCAPINGADDR
 [eva:final-states] Values at end of function f2:
   i2 ∈ {0; 5}
   __retres ∈ {0; 5; 7}
@@ -153,12 +176,19 @@
   x ∈ {-1; 4}
   pf ∈ {{ &f8 }}
   p ∈ {{ NULL ; &x }}
+[eva:final-states] Values at end of function uninit:
+  x ∈ {0} or UNINITIALIZED
+[eva:final-states] Values at end of function main9:
+  y ∈ {0} or UNINITIALIZED
+  q ∈ ESCAPINGADDR
 [eva:final-states] Values at end of function main:
   i2 ∈ {0; 5}
   i3 ∈ {0; 5}
   i4 ∈ {0; 5}
   i5 ∈ {0; 5}
   v7 ∈ {0; 1}
+[from] Computing for function escaping
+[from] Done for function escaping
 [from] Computing for function f2
 [from] Done for function f2
 [from] Computing for function f3
@@ -191,10 +221,16 @@
 [from] Done for function main7
 [from] Computing for function main8
 [from] Done for function main8
+[from] Computing for function uninit
+[from] Done for function uninit
+[from] Computing for function main9
+[from] Done for function main9
 [from] Computing for function main
 [from] Done for function main
 [from] ====== DEPENDENCIES COMPUTED ======
   These dependencies hold at termination for the executions that terminate:
+[from] Function escaping:
+  \result FROM \nothing
 [from] Function f2:
   i2 FROM i2
   \result FROM i2
@@ -234,6 +270,10 @@
   v7 FROM v
 [from] Function main8:
   NO EFFECTS
+[from] Function uninit:
+  \result FROM rand
+[from] Function main9:
+  NO EFFECTS
 [from] Function main:
   i2 FROM i2
   i3 FROM i3
@@ -241,6 +281,10 @@
   i5 FROM i5
   v7 FROM v
 [from] ====== END OF DEPENDENCIES ======
+[inout] Out (internal) for function escaping:
+    p
+[inout] Inputs for function escaping:
+    \nothing
 [inout] Out (internal) for function f2:
     i2; __retres
 [inout] Inputs for function f2:
@@ -301,10 +345,18 @@
     x; pf; p; tmp
 [inout] Inputs for function main8:
     v
+[inout] Out (internal) for function uninit:
+    x
+[inout] Inputs for function uninit:
+    rand
+[inout] Out (internal) for function main9:
+    y; q
+[inout] Inputs for function main9:
+    rand
 [inout] Out (internal) for function main:
     i2; i3; i4; i5; v7
 [inout] Inputs for function main:
-    i2; i3; i4; i5; v; v7
+    i2; i3; i4; i5; v; v7; rand
 [report] Computing properties status...
 
 --------------------------------------------------------------------------------
diff --git a/tests/value/oracle/split_return.1.res.oracle b/tests/value/oracle/split_return.1.res.oracle
index 0dd5a8d1cdf2e75536b0cb84f3d82f3e56f36c68..ff8657d99c46823571074bfd6f7f425bc04b59ed 100644
--- a/tests/value/oracle/split_return.1.res.oracle
+++ b/tests/value/oracle/split_return.1.res.oracle
@@ -8,6 +8,7 @@
   \return(f5) == -2 (auto)
   \return(f6) == 0 (auto)
   \return(f8) == 0 (auto)
+  \return(escaping) == 0 (auto)
 [eva] Analyzing a complete application starting at main
 [eva] Computing initial state
 [eva] Initial state computed
@@ -18,8 +19,9 @@
   i5 ∈ [--..--]
   v ∈ [--..--]
   v7 ∈ {0}
+  rand ∈ [--..--]
 [eva] computing for function main1 <- main.
-  Called from tests/value/split_return.i:176.
+  Called from tests/value/split_return.i:204.
 [eva] computing for function init <- main1 <- main.
   Called from tests/value/split_return.i:17.
 [eva] using specification for function init
@@ -27,7 +29,7 @@
 [eva] Recording results for main1
 [eva] Done for function main1
 [eva] computing for function main2 <- main.
-  Called from tests/value/split_return.i:177.
+  Called from tests/value/split_return.i:205.
 [eva] computing for function f2 <- main2 <- main.
   Called from tests/value/split_return.i:48.
 [eva] Recording results for f2
@@ -40,7 +42,7 @@
 [eva] Recording results for main2
 [eva] Done for function main2
 [eva] computing for function main3 <- main.
-  Called from tests/value/split_return.i:178.
+  Called from tests/value/split_return.i:206.
 [eva] computing for function f3 <- main3 <- main.
   Called from tests/value/split_return.i:73.
 [eva] Recording results for f3
@@ -52,7 +54,7 @@
 [eva] Recording results for main3
 [eva] Done for function main3
 [eva] computing for function main4 <- main.
-  Called from tests/value/split_return.i:179.
+  Called from tests/value/split_return.i:207.
 [eva] computing for function f4 <- main4 <- main.
   Called from tests/value/split_return.i:94.
 [eva] Recording results for f4
@@ -64,7 +66,7 @@
 [eva] Recording results for main4
 [eva] Done for function main4
 [eva] computing for function main5 <- main.
-  Called from tests/value/split_return.i:180.
+  Called from tests/value/split_return.i:208.
 [eva] computing for function f5 <- main5 <- main.
   Called from tests/value/split_return.i:117.
 [eva] Recording results for f5
@@ -76,7 +78,7 @@
 [eva] Recording results for main5
 [eva] Done for function main5
 [eva] computing for function main6 <- main.
-  Called from tests/value/split_return.i:181.
+  Called from tests/value/split_return.i:209.
 [eva] computing for function f6 <- main6 <- main.
   Called from tests/value/split_return.i:135.
 [eva:alarm] tests/value/split_return.i:130: Warning: 
@@ -87,7 +89,7 @@
 [eva] Recording results for main6
 [eva] Done for function main6
 [eva] computing for function main7 <- main.
-  Called from tests/value/split_return.i:182.
+  Called from tests/value/split_return.i:210.
 [eva] computing for function f7 <- main7 <- main.
   Called from tests/value/split_return.i:148.
 [eva] Recording results for f7
@@ -97,7 +99,7 @@
 [eva] Recording results for main7
 [eva] Done for function main7
 [eva] computing for function main8 <- main.
-  Called from tests/value/split_return.i:183.
+  Called from tests/value/split_return.i:211.
 [eva] computing for function f8 <- main8 <- main.
   Called from tests/value/split_return.i:171.
 [eva] Recording results for f8
@@ -106,9 +108,25 @@
 [eva] tests/value/split_return.i:172: Frama_C_show_each_then8: {-1}, {0}
 [eva] Recording results for main8
 [eva] Done for function main8
+[eva] computing for function main9 <- main.
+  Called from tests/value/split_return.i:212.
+[eva] computing for function uninit <- main9 <- main.
+  Called from tests/value/split_return.i:199.
+[eva] Recording results for uninit
+[eva] Done for function uninit
+[eva] computing for function escaping <- main9 <- main.
+  Called from tests/value/split_return.i:200.
+[eva:locals-escaping] tests/value/split_return.i:192: Warning: 
+  locals {x} escaping the scope of a block of escaping through p
+[eva] Recording results for escaping
+[eva] Done for function escaping
+[eva] Recording results for main9
+[eva] Done for function main9
 [eva] Recording results for main
 [eva] done for function main
 [eva] ====== VALUES COMPUTED ======
+[eva:final-states] Values at end of function escaping:
+  p ∈ ESCAPINGADDR
 [eva:final-states] Values at end of function f2:
   i2 ∈ {0; 5}
   __retres ∈ {0; 5; 7}
@@ -154,12 +172,19 @@
   x ∈ {-1; 4}
   pf ∈ {{ &f8 }}
   p ∈ {{ NULL ; &x }}
+[eva:final-states] Values at end of function uninit:
+  x ∈ {0} or UNINITIALIZED
+[eva:final-states] Values at end of function main9:
+  y ∈ {0} or UNINITIALIZED
+  q ∈ ESCAPINGADDR
 [eva:final-states] Values at end of function main:
   i2 ∈ {0; 5}
   i3 ∈ {0; 5}
   i4 ∈ {0; 5}
   i5 ∈ {0; 5}
   v7 ∈ {0; 1}
+[from] Computing for function escaping
+[from] Done for function escaping
 [from] Computing for function f2
 [from] Done for function f2
 [from] Computing for function f3
@@ -192,10 +217,16 @@
 [from] Done for function main7
 [from] Computing for function main8
 [from] Done for function main8
+[from] Computing for function uninit
+[from] Done for function uninit
+[from] Computing for function main9
+[from] Done for function main9
 [from] Computing for function main
 [from] Done for function main
 [from] ====== DEPENDENCIES COMPUTED ======
   These dependencies hold at termination for the executions that terminate:
+[from] Function escaping:
+  \result FROM \nothing
 [from] Function f2:
   i2 FROM i2
   \result FROM i2
@@ -235,6 +266,10 @@
   v7 FROM v
 [from] Function main8:
   NO EFFECTS
+[from] Function uninit:
+  \result FROM rand
+[from] Function main9:
+  NO EFFECTS
 [from] Function main:
   i2 FROM i2
   i3 FROM i3
@@ -242,6 +277,10 @@
   i5 FROM i5
   v7 FROM v
 [from] ====== END OF DEPENDENCIES ======
+[inout] Out (internal) for function escaping:
+    p
+[inout] Inputs for function escaping:
+    \nothing
 [inout] Out (internal) for function f2:
     i2; __retres
 [inout] Inputs for function f2:
@@ -302,10 +341,18 @@
     x; pf; p; tmp
 [inout] Inputs for function main8:
     v
+[inout] Out (internal) for function uninit:
+    x
+[inout] Inputs for function uninit:
+    rand
+[inout] Out (internal) for function main9:
+    y; q
+[inout] Inputs for function main9:
+    rand
 [inout] Out (internal) for function main:
     i2; i3; i4; i5; v7
 [inout] Inputs for function main:
-    i2; i3; i4; i5; v; v7
+    i2; i3; i4; i5; v; v7; rand
 [report] Computing properties status...
 
 --------------------------------------------------------------------------------
diff --git a/tests/value/oracle/split_return.3.res.oracle b/tests/value/oracle/split_return.3.res.oracle
index c33284f92cc95fbd1c46cc04906e08cc03a05bcc..1ad5a6b949801e802041412d0870ce55b97cb0da 100644
--- a/tests/value/oracle/split_return.3.res.oracle
+++ b/tests/value/oracle/split_return.3.res.oracle
@@ -11,8 +11,9 @@
   i5 ∈ [--..--]
   v ∈ [--..--]
   v7 ∈ {0}
+  rand ∈ [--..--]
 [eva] computing for function main1 <- main.
-  Called from tests/value/split_return.i:176.
+  Called from tests/value/split_return.i:204.
 [eva] computing for function init <- main1 <- main.
   Called from tests/value/split_return.i:17.
 [eva] using specification for function init
@@ -20,7 +21,7 @@
 [eva] Recording results for main1
 [eva] Done for function main1
 [eva] computing for function main2 <- main.
-  Called from tests/value/split_return.i:177.
+  Called from tests/value/split_return.i:205.
 [eva] computing for function f2 <- main2 <- main.
   Called from tests/value/split_return.i:48.
 [eva] Recording results for f2
@@ -35,7 +36,7 @@
 [eva] Recording results for main2
 [eva] Done for function main2
 [eva] computing for function main3 <- main.
-  Called from tests/value/split_return.i:178.
+  Called from tests/value/split_return.i:206.
 [eva] computing for function f3 <- main3 <- main.
   Called from tests/value/split_return.i:73.
 [eva] Recording results for f3
@@ -47,7 +48,7 @@
 [eva] Recording results for main3
 [eva] Done for function main3
 [eva] computing for function main3 <- main.
-  Called from tests/value/split_return.i:178.
+  Called from tests/value/split_return.i:206.
 [eva] computing for function f3 <- main3 <- main.
   Called from tests/value/split_return.i:73.
 [eva] Recording results for f3
@@ -57,7 +58,7 @@
 [eva] Recording results for main3
 [eva] Done for function main3
 [eva] computing for function main4 <- main.
-  Called from tests/value/split_return.i:179.
+  Called from tests/value/split_return.i:207.
 [eva] computing for function f4 <- main4 <- main.
   Called from tests/value/split_return.i:94.
 [eva] Recording results for f4
@@ -69,7 +70,7 @@
 [eva] Recording results for main4
 [eva] Done for function main4
 [eva] computing for function main4 <- main.
-  Called from tests/value/split_return.i:179.
+  Called from tests/value/split_return.i:207.
 [eva] computing for function f4 <- main4 <- main.
   Called from tests/value/split_return.i:94.
 [eva] Recording results for f4
@@ -79,7 +80,7 @@
 [eva] Recording results for main4
 [eva] Done for function main4
 [eva] computing for function main4 <- main.
-  Called from tests/value/split_return.i:179.
+  Called from tests/value/split_return.i:207.
 [eva] computing for function f4 <- main4 <- main.
   Called from tests/value/split_return.i:94.
 [eva] Recording results for f4
@@ -89,7 +90,7 @@
 [eva] Recording results for main4
 [eva] Done for function main4
 [eva] computing for function main4 <- main.
-  Called from tests/value/split_return.i:179.
+  Called from tests/value/split_return.i:207.
 [eva] computing for function f4 <- main4 <- main.
   Called from tests/value/split_return.i:94.
 [eva] Recording results for f4
@@ -99,7 +100,7 @@
 [eva] Recording results for main4
 [eva] Done for function main4
 [eva] computing for function main5 <- main.
-  Called from tests/value/split_return.i:180.
+  Called from tests/value/split_return.i:208.
 [eva] computing for function f5 <- main5 <- main.
   Called from tests/value/split_return.i:117.
 [eva] Recording results for f5
@@ -111,7 +112,7 @@
 [eva] Recording results for main5
 [eva] Done for function main5
 [eva] computing for function main6 <- main.
-  Called from tests/value/split_return.i:181.
+  Called from tests/value/split_return.i:209.
 [eva] computing for function f6 <- main6 <- main.
   Called from tests/value/split_return.i:135.
 [eva:alarm] tests/value/split_return.i:130: Warning: 
@@ -121,7 +122,7 @@
 [eva] Recording results for main6
 [eva] Done for function main6
 [eva] computing for function main6 <- main.
-  Called from tests/value/split_return.i:181.
+  Called from tests/value/split_return.i:209.
 [eva] computing for function f6 <- main6 <- main.
   Called from tests/value/split_return.i:135.
 [eva] Recording results for f6
@@ -129,7 +130,7 @@
 [eva] Recording results for main6
 [eva] Done for function main6
 [eva] computing for function main7 <- main.
-  Called from tests/value/split_return.i:182.
+  Called from tests/value/split_return.i:210.
 [eva] computing for function f7 <- main7 <- main.
   Called from tests/value/split_return.i:148.
 [eva] Recording results for f7
@@ -139,7 +140,7 @@
 [eva] Recording results for main7
 [eva] Done for function main7
 [eva] computing for function main7 <- main.
-  Called from tests/value/split_return.i:182.
+  Called from tests/value/split_return.i:210.
 [eva] computing for function f7 <- main7 <- main.
   Called from tests/value/split_return.i:148.
 [eva] Recording results for f7
@@ -149,7 +150,7 @@
 [eva] Recording results for main7
 [eva] Done for function main7
 [eva] computing for function main8 <- main.
-  Called from tests/value/split_return.i:183.
+  Called from tests/value/split_return.i:211.
 [eva] computing for function f8 <- main8 <- main.
   Called from tests/value/split_return.i:171.
 [eva] Recording results for f8
@@ -159,7 +160,7 @@
 [eva] Recording results for main8
 [eva] Done for function main8
 [eva] computing for function main8 <- main.
-  Called from tests/value/split_return.i:183.
+  Called from tests/value/split_return.i:211.
 [eva] computing for function f8 <- main8 <- main.
   Called from tests/value/split_return.i:171.
 [eva] Recording results for f8
@@ -169,7 +170,7 @@
 [eva] Recording results for main8
 [eva] Done for function main8
 [eva] computing for function main8 <- main.
-  Called from tests/value/split_return.i:183.
+  Called from tests/value/split_return.i:211.
 [eva] computing for function f8 <- main8 <- main.
   Called from tests/value/split_return.i:171.
 [eva] Recording results for f8
@@ -179,7 +180,7 @@
 [eva] Recording results for main8
 [eva] Done for function main8
 [eva] computing for function main8 <- main.
-  Called from tests/value/split_return.i:183.
+  Called from tests/value/split_return.i:211.
 [eva] computing for function f8 <- main8 <- main.
   Called from tests/value/split_return.i:171.
 [eva] Recording results for f8
@@ -188,9 +189,29 @@
 [eva] tests/value/split_return.i:172: Frama_C_show_each_then8: {-1}, {0}
 [eva] Recording results for main8
 [eva] Done for function main8
+[eva] computing for function main9 <- main.
+  Called from tests/value/split_return.i:212.
+[eva] computing for function uninit <- main9 <- main.
+  Called from tests/value/split_return.i:199.
+[eva] Recording results for uninit
+[eva] Done for function uninit
+[eva] computing for function escaping <- main9 <- main.
+  Called from tests/value/split_return.i:200.
+[eva:locals-escaping] tests/value/split_return.i:192: Warning: 
+  locals {x} escaping the scope of a block of escaping through p
+[eva] Recording results for escaping
+[eva] Done for function escaping
+[eva] computing for function escaping <- main9 <- main.
+  Called from tests/value/split_return.i:200.
+[eva] Recording results for escaping
+[eva] Done for function escaping
+[eva] Recording results for main9
+[eva] Done for function main9
 [eva] Recording results for main
 [eva] done for function main
 [eva] ====== VALUES COMPUTED ======
+[eva:final-states] Values at end of function escaping:
+  p ∈ ESCAPINGADDR
 [eva:final-states] Values at end of function f2:
   i2 ∈ {0; 5}
   __retres ∈ {0; 5; 7}
@@ -236,12 +257,19 @@
   x ∈ {-1; 4}
   pf ∈ {{ &f8 }}
   p ∈ {{ NULL ; &x }}
+[eva:final-states] Values at end of function uninit:
+  x ∈ {0} or UNINITIALIZED
+[eva:final-states] Values at end of function main9:
+  y ∈ {0} or UNINITIALIZED
+  q ∈ ESCAPINGADDR
 [eva:final-states] Values at end of function main:
   i2 ∈ {0; 5}
   i3 ∈ {0; 5}
   i4 ∈ {0; 5}
   i5 ∈ {0; 5}
   v7 ∈ {0; 1}
+[from] Computing for function escaping
+[from] Done for function escaping
 [from] Computing for function f2
 [from] Done for function f2
 [from] Computing for function f3
@@ -274,10 +302,16 @@
 [from] Done for function main7
 [from] Computing for function main8
 [from] Done for function main8
+[from] Computing for function uninit
+[from] Done for function uninit
+[from] Computing for function main9
+[from] Done for function main9
 [from] Computing for function main
 [from] Done for function main
 [from] ====== DEPENDENCIES COMPUTED ======
   These dependencies hold at termination for the executions that terminate:
+[from] Function escaping:
+  \result FROM \nothing
 [from] Function f2:
   i2 FROM i2
   \result FROM i2
@@ -317,6 +351,10 @@
   v7 FROM v
 [from] Function main8:
   NO EFFECTS
+[from] Function uninit:
+  \result FROM rand
+[from] Function main9:
+  NO EFFECTS
 [from] Function main:
   i2 FROM i2
   i3 FROM i3
@@ -324,6 +362,10 @@
   i5 FROM i5
   v7 FROM v
 [from] ====== END OF DEPENDENCIES ======
+[inout] Out (internal) for function escaping:
+    p
+[inout] Inputs for function escaping:
+    \nothing
 [inout] Out (internal) for function f2:
     i2; __retres
 [inout] Inputs for function f2:
@@ -384,7 +426,15 @@
     x; pf; p; tmp
 [inout] Inputs for function main8:
     v
+[inout] Out (internal) for function uninit:
+    x
+[inout] Inputs for function uninit:
+    rand
+[inout] Out (internal) for function main9:
+    y; q
+[inout] Inputs for function main9:
+    rand
 [inout] Out (internal) for function main:
     i2; i3; i4; i5; v7
 [inout] Inputs for function main:
-    i2; i3; i4; i5; v; v7
+    i2; i3; i4; i5; v; v7; rand
diff --git a/tests/value/oracle/split_return.4.res.oracle b/tests/value/oracle/split_return.4.res.oracle
index 6985eb6c49e28b7cb25f2f343621a1a79b9b2a47..46c3281323efa5dbd6f217ae060050721529854c 100644
--- a/tests/value/oracle/split_return.4.res.oracle
+++ b/tests/value/oracle/split_return.4.res.oracle
@@ -14,8 +14,9 @@
   i5 ∈ [--..--]
   v ∈ [--..--]
   v7 ∈ {0}
+  rand ∈ [--..--]
 [eva] computing for function main1 <- main.
-  Called from tests/value/split_return.i:176.
+  Called from tests/value/split_return.i:204.
 [eva] computing for function init <- main1 <- main.
   Called from tests/value/split_return.i:17.
 [eva] using specification for function init
@@ -23,7 +24,7 @@
 [eva] Recording results for main1
 [eva] Done for function main1
 [eva] computing for function main2 <- main.
-  Called from tests/value/split_return.i:177.
+  Called from tests/value/split_return.i:205.
 [eva] computing for function f2 <- main2 <- main.
   Called from tests/value/split_return.i:48.
 [eva] Recording results for f2
@@ -38,7 +39,7 @@
 [eva] Recording results for main2
 [eva] Done for function main2
 [eva] computing for function main3 <- main.
-  Called from tests/value/split_return.i:178.
+  Called from tests/value/split_return.i:206.
 [eva] computing for function f3 <- main3 <- main.
   Called from tests/value/split_return.i:73.
 [eva] Recording results for f3
@@ -50,7 +51,7 @@
 [eva] Recording results for main3
 [eva] Done for function main3
 [eva] computing for function main3 <- main.
-  Called from tests/value/split_return.i:178.
+  Called from tests/value/split_return.i:206.
 [eva] computing for function f3 <- main3 <- main.
   Called from tests/value/split_return.i:73.
 [eva] Recording results for f3
@@ -60,7 +61,7 @@
 [eva] Recording results for main3
 [eva] Done for function main3
 [eva] computing for function main4 <- main.
-  Called from tests/value/split_return.i:179.
+  Called from tests/value/split_return.i:207.
 [eva] computing for function f4 <- main4 <- main.
   Called from tests/value/split_return.i:94.
 [eva] Recording results for f4
@@ -72,7 +73,7 @@
 [eva] Recording results for main4
 [eva] Done for function main4
 [eva] computing for function main4 <- main.
-  Called from tests/value/split_return.i:179.
+  Called from tests/value/split_return.i:207.
 [eva] computing for function f4 <- main4 <- main.
   Called from tests/value/split_return.i:94.
 [eva] Recording results for f4
@@ -82,7 +83,7 @@
 [eva] Recording results for main4
 [eva] Done for function main4
 [eva] computing for function main4 <- main.
-  Called from tests/value/split_return.i:179.
+  Called from tests/value/split_return.i:207.
 [eva] computing for function f4 <- main4 <- main.
   Called from tests/value/split_return.i:94.
 [eva] Recording results for f4
@@ -92,7 +93,7 @@
 [eva] Recording results for main4
 [eva] Done for function main4
 [eva] computing for function main4 <- main.
-  Called from tests/value/split_return.i:179.
+  Called from tests/value/split_return.i:207.
 [eva] computing for function f4 <- main4 <- main.
   Called from tests/value/split_return.i:94.
 [eva] Recording results for f4
@@ -102,7 +103,7 @@
 [eva] Recording results for main4
 [eva] Done for function main4
 [eva] computing for function main5 <- main.
-  Called from tests/value/split_return.i:180.
+  Called from tests/value/split_return.i:208.
 [eva] computing for function f5 <- main5 <- main.
   Called from tests/value/split_return.i:117.
 [eva] Recording results for f5
@@ -114,7 +115,7 @@
 [eva] Recording results for main5
 [eva] Done for function main5
 [eva] computing for function main6 <- main.
-  Called from tests/value/split_return.i:181.
+  Called from tests/value/split_return.i:209.
 [eva] computing for function f6 <- main6 <- main.
   Called from tests/value/split_return.i:135.
 [eva:alarm] tests/value/split_return.i:130: Warning: 
@@ -124,7 +125,7 @@
 [eva] Recording results for main6
 [eva] Done for function main6
 [eva] computing for function main6 <- main.
-  Called from tests/value/split_return.i:181.
+  Called from tests/value/split_return.i:209.
 [eva] computing for function f6 <- main6 <- main.
   Called from tests/value/split_return.i:135.
 [eva] Recording results for f6
@@ -132,7 +133,7 @@
 [eva] Recording results for main6
 [eva] Done for function main6
 [eva] computing for function main7 <- main.
-  Called from tests/value/split_return.i:182.
+  Called from tests/value/split_return.i:210.
 [eva] computing for function f7 <- main7 <- main.
   Called from tests/value/split_return.i:148.
 [eva] Recording results for f7
@@ -142,7 +143,7 @@
 [eva] Recording results for main7
 [eva] Done for function main7
 [eva] computing for function main7 <- main.
-  Called from tests/value/split_return.i:182.
+  Called from tests/value/split_return.i:210.
 [eva] computing for function f7 <- main7 <- main.
   Called from tests/value/split_return.i:148.
 [eva] Recording results for f7
@@ -152,7 +153,7 @@
 [eva] Recording results for main7
 [eva] Done for function main7
 [eva] computing for function main8 <- main.
-  Called from tests/value/split_return.i:183.
+  Called from tests/value/split_return.i:211.
 [eva] computing for function f8 <- main8 <- main.
   Called from tests/value/split_return.i:171.
 [eva] Recording results for f8
@@ -162,7 +163,7 @@
 [eva] Recording results for main8
 [eva] Done for function main8
 [eva] computing for function main8 <- main.
-  Called from tests/value/split_return.i:183.
+  Called from tests/value/split_return.i:211.
 [eva] computing for function f8 <- main8 <- main.
   Called from tests/value/split_return.i:171.
 [eva] Recording results for f8
@@ -172,7 +173,7 @@
 [eva] Recording results for main8
 [eva] Done for function main8
 [eva] computing for function main8 <- main.
-  Called from tests/value/split_return.i:183.
+  Called from tests/value/split_return.i:211.
 [eva] computing for function f8 <- main8 <- main.
   Called from tests/value/split_return.i:171.
 [eva] Recording results for f8
@@ -182,7 +183,7 @@
 [eva] Recording results for main8
 [eva] Done for function main8
 [eva] computing for function main8 <- main.
-  Called from tests/value/split_return.i:183.
+  Called from tests/value/split_return.i:211.
 [eva] computing for function f8 <- main8 <- main.
   Called from tests/value/split_return.i:171.
 [eva] Recording results for f8
@@ -191,9 +192,29 @@
 [eva] tests/value/split_return.i:172: Frama_C_show_each_then8: {-1}, {0}
 [eva] Recording results for main8
 [eva] Done for function main8
+[eva] computing for function main9 <- main.
+  Called from tests/value/split_return.i:212.
+[eva] computing for function uninit <- main9 <- main.
+  Called from tests/value/split_return.i:199.
+[eva] Recording results for uninit
+[eva] Done for function uninit
+[eva] computing for function escaping <- main9 <- main.
+  Called from tests/value/split_return.i:200.
+[eva:locals-escaping] tests/value/split_return.i:192: Warning: 
+  locals {x} escaping the scope of a block of escaping through p
+[eva] Recording results for escaping
+[eva] Done for function escaping
+[eva] computing for function escaping <- main9 <- main.
+  Called from tests/value/split_return.i:200.
+[eva] Recording results for escaping
+[eva] Done for function escaping
+[eva] Recording results for main9
+[eva] Done for function main9
 [eva] Recording results for main
 [eva] done for function main
 [eva] ====== VALUES COMPUTED ======
+[eva:final-states] Values at end of function escaping:
+  p ∈ ESCAPINGADDR
 [eva:final-states] Values at end of function f2:
   i2 ∈ {0; 5}
   __retres ∈ {0; 5; 7}
@@ -239,12 +260,19 @@
   x ∈ {-1; 4}
   pf ∈ {{ &f8 }}
   p ∈ {{ NULL ; &x }}
+[eva:final-states] Values at end of function uninit:
+  x ∈ {0} or UNINITIALIZED
+[eva:final-states] Values at end of function main9:
+  y ∈ {0} or UNINITIALIZED
+  q ∈ ESCAPINGADDR
 [eva:final-states] Values at end of function main:
   i2 ∈ {0; 5}
   i3 ∈ {0; 5}
   i4 ∈ {0; 5}
   i5 ∈ {0; 5}
   v7 ∈ {0; 1}
+[from] Computing for function escaping
+[from] Done for function escaping
 [from] Computing for function f2
 [from] Done for function f2
 [from] Computing for function f3
@@ -277,10 +305,16 @@
 [from] Done for function main7
 [from] Computing for function main8
 [from] Done for function main8
+[from] Computing for function uninit
+[from] Done for function uninit
+[from] Computing for function main9
+[from] Done for function main9
 [from] Computing for function main
 [from] Done for function main
 [from] ====== DEPENDENCIES COMPUTED ======
   These dependencies hold at termination for the executions that terminate:
+[from] Function escaping:
+  \result FROM \nothing
 [from] Function f2:
   i2 FROM i2
   \result FROM i2
@@ -320,6 +354,10 @@
   v7 FROM v
 [from] Function main8:
   NO EFFECTS
+[from] Function uninit:
+  \result FROM rand
+[from] Function main9:
+  NO EFFECTS
 [from] Function main:
   i2 FROM i2
   i3 FROM i3
@@ -327,6 +365,10 @@
   i5 FROM i5
   v7 FROM v
 [from] ====== END OF DEPENDENCIES ======
+[inout] Out (internal) for function escaping:
+    p
+[inout] Inputs for function escaping:
+    \nothing
 [inout] Out (internal) for function f2:
     i2; __retres
 [inout] Inputs for function f2:
@@ -387,10 +429,18 @@
     x; pf; p; tmp
 [inout] Inputs for function main8:
     v
+[inout] Out (internal) for function uninit:
+    x
+[inout] Inputs for function uninit:
+    rand
+[inout] Out (internal) for function main9:
+    y; q
+[inout] Inputs for function main9:
+    rand
 [inout] Out (internal) for function main:
     i2; i3; i4; i5; v7
 [inout] Inputs for function main:
-    i2; i3; i4; i5; v; v7
+    i2; i3; i4; i5; v; v7; rand
 [eva] Warning: option -eva-split-return-function: 'f2' previously bound to 'full split';
   now bound to 'auto split'.
 [eva] Splitting return states on:
@@ -408,15 +458,16 @@
   i5 ∈ [--..--]
   v ∈ [--..--]
   v7 ∈ {0}
+  rand ∈ [--..--]
 [eva] computing for function main1 <- main.
-  Called from tests/value/split_return.i:176.
+  Called from tests/value/split_return.i:204.
 [eva] computing for function init <- main1 <- main.
   Called from tests/value/split_return.i:17.
 [eva] Done for function init
 [eva] Recording results for main1
 [eva] Done for function main1
 [eva] computing for function main2 <- main.
-  Called from tests/value/split_return.i:177.
+  Called from tests/value/split_return.i:205.
 [eva] computing for function f2 <- main2 <- main.
   Called from tests/value/split_return.i:48.
 [eva] Recording results for f2
@@ -427,7 +478,7 @@
 [eva] Recording results for main2
 [eva] Done for function main2
 [eva] computing for function main3 <- main.
-  Called from tests/value/split_return.i:178.
+  Called from tests/value/split_return.i:206.
 [eva] computing for function f3 <- main3 <- main.
   Called from tests/value/split_return.i:73.
 [eva] Recording results for f3
@@ -437,7 +488,7 @@
 [eva] Recording results for main3
 [eva] Done for function main3
 [eva] computing for function main3 <- main.
-  Called from tests/value/split_return.i:178.
+  Called from tests/value/split_return.i:206.
 [eva] computing for function f3 <- main3 <- main.
   Called from tests/value/split_return.i:73.
 [eva] Recording results for f3
@@ -447,7 +498,7 @@
 [eva] Recording results for main3
 [eva] Done for function main3
 [eva] computing for function main4 <- main.
-  Called from tests/value/split_return.i:179.
+  Called from tests/value/split_return.i:207.
 [eva] computing for function f4 <- main4 <- main.
   Called from tests/value/split_return.i:94.
 [eva] Recording results for f4
@@ -457,7 +508,7 @@
 [eva] Recording results for main4
 [eva] Done for function main4
 [eva] computing for function main4 <- main.
-  Called from tests/value/split_return.i:179.
+  Called from tests/value/split_return.i:207.
 [eva] computing for function f4 <- main4 <- main.
   Called from tests/value/split_return.i:94.
 [eva] Recording results for f4
@@ -467,7 +518,7 @@
 [eva] Recording results for main4
 [eva] Done for function main4
 [eva] computing for function main4 <- main.
-  Called from tests/value/split_return.i:179.
+  Called from tests/value/split_return.i:207.
 [eva] computing for function f4 <- main4 <- main.
   Called from tests/value/split_return.i:94.
 [eva] Recording results for f4
@@ -477,7 +528,7 @@
 [eva] Recording results for main4
 [eva] Done for function main4
 [eva] computing for function main4 <- main.
-  Called from tests/value/split_return.i:179.
+  Called from tests/value/split_return.i:207.
 [eva] computing for function f4 <- main4 <- main.
   Called from tests/value/split_return.i:94.
 [eva] Recording results for f4
@@ -487,7 +538,7 @@
 [eva] Recording results for main4
 [eva] Done for function main4
 [eva] computing for function main5 <- main.
-  Called from tests/value/split_return.i:180.
+  Called from tests/value/split_return.i:208.
 [eva] computing for function f5 <- main5 <- main.
   Called from tests/value/split_return.i:117.
 [eva] Recording results for f5
@@ -497,7 +548,7 @@
 [eva] Recording results for main5
 [eva] Done for function main5
 [eva] computing for function main6 <- main.
-  Called from tests/value/split_return.i:181.
+  Called from tests/value/split_return.i:209.
 [eva] computing for function f6 <- main6 <- main.
   Called from tests/value/split_return.i:135.
 [eva] Recording results for f6
@@ -505,7 +556,7 @@
 [eva] Recording results for main6
 [eva] Done for function main6
 [eva] computing for function main6 <- main.
-  Called from tests/value/split_return.i:181.
+  Called from tests/value/split_return.i:209.
 [eva] computing for function f6 <- main6 <- main.
   Called from tests/value/split_return.i:135.
 [eva] Recording results for f6
@@ -513,7 +564,7 @@
 [eva] Recording results for main6
 [eva] Done for function main6
 [eva] computing for function main7 <- main.
-  Called from tests/value/split_return.i:182.
+  Called from tests/value/split_return.i:210.
 [eva] computing for function f7 <- main7 <- main.
   Called from tests/value/split_return.i:148.
 [eva] Recording results for f7
@@ -523,7 +574,7 @@
 [eva] Recording results for main7
 [eva] Done for function main7
 [eva] computing for function main7 <- main.
-  Called from tests/value/split_return.i:182.
+  Called from tests/value/split_return.i:210.
 [eva] computing for function f7 <- main7 <- main.
   Called from tests/value/split_return.i:148.
 [eva] Recording results for f7
@@ -533,7 +584,7 @@
 [eva] Recording results for main7
 [eva] Done for function main7
 [eva] computing for function main8 <- main.
-  Called from tests/value/split_return.i:183.
+  Called from tests/value/split_return.i:211.
 [eva] computing for function f8 <- main8 <- main.
   Called from tests/value/split_return.i:171.
 [eva] Recording results for f8
@@ -543,7 +594,7 @@
 [eva] Recording results for main8
 [eva] Done for function main8
 [eva] computing for function main8 <- main.
-  Called from tests/value/split_return.i:183.
+  Called from tests/value/split_return.i:211.
 [eva] computing for function f8 <- main8 <- main.
   Called from tests/value/split_return.i:171.
 [eva] Recording results for f8
@@ -553,7 +604,7 @@
 [eva] Recording results for main8
 [eva] Done for function main8
 [eva] computing for function main8 <- main.
-  Called from tests/value/split_return.i:183.
+  Called from tests/value/split_return.i:211.
 [eva] computing for function f8 <- main8 <- main.
   Called from tests/value/split_return.i:171.
 [eva] Recording results for f8
@@ -563,7 +614,7 @@
 [eva] Recording results for main8
 [eva] Done for function main8
 [eva] computing for function main8 <- main.
-  Called from tests/value/split_return.i:183.
+  Called from tests/value/split_return.i:211.
 [eva] computing for function f8 <- main8 <- main.
   Called from tests/value/split_return.i:171.
 [eva] Recording results for f8
@@ -572,9 +623,27 @@
 [eva] tests/value/split_return.i:172: Frama_C_show_each_then8: {-1}, {0}
 [eva] Recording results for main8
 [eva] Done for function main8
+[eva] computing for function main9 <- main.
+  Called from tests/value/split_return.i:212.
+[eva] computing for function uninit <- main9 <- main.
+  Called from tests/value/split_return.i:199.
+[eva] Recording results for uninit
+[eva] Done for function uninit
+[eva] computing for function escaping <- main9 <- main.
+  Called from tests/value/split_return.i:200.
+[eva] Recording results for escaping
+[eva] Done for function escaping
+[eva] computing for function escaping <- main9 <- main.
+  Called from tests/value/split_return.i:200.
+[eva] Recording results for escaping
+[eva] Done for function escaping
+[eva] Recording results for main9
+[eva] Done for function main9
 [eva] Recording results for main
 [eva] done for function main
 [eva] ====== VALUES COMPUTED ======
+[eva:final-states] Values at end of function escaping:
+  p ∈ ESCAPINGADDR
 [eva:final-states] Values at end of function f2:
   i2 ∈ {0; 5}
   __retres ∈ {0; 5; 7}
@@ -620,12 +689,19 @@
   x ∈ {-1; 4}
   pf ∈ {{ &f8 }}
   p ∈ {{ NULL ; &x }}
+[eva:final-states] Values at end of function uninit:
+  x ∈ {0} or UNINITIALIZED
+[eva:final-states] Values at end of function main9:
+  y ∈ {0} or UNINITIALIZED
+  q ∈ ESCAPINGADDR
 [eva:final-states] Values at end of function main:
   i2 ∈ {0; 5}
   i3 ∈ {0; 5}
   i4 ∈ {0; 5}
   i5 ∈ {0; 5}
   v7 ∈ {0; 1}
+[from] Computing for function escaping
+[from] Done for function escaping
 [from] Computing for function f2
 [from] Done for function f2
 [from] Computing for function f3
@@ -658,10 +734,16 @@
 [from] Done for function main7
 [from] Computing for function main8
 [from] Done for function main8
+[from] Computing for function uninit
+[from] Done for function uninit
+[from] Computing for function main9
+[from] Done for function main9
 [from] Computing for function main
 [from] Done for function main
 [from] ====== DEPENDENCIES COMPUTED ======
   These dependencies hold at termination for the executions that terminate:
+[from] Function escaping:
+  \result FROM \nothing
 [from] Function f2:
   i2 FROM i2
   \result FROM i2
@@ -701,6 +783,10 @@
   v7 FROM v
 [from] Function main8:
   NO EFFECTS
+[from] Function uninit:
+  \result FROM rand
+[from] Function main9:
+  NO EFFECTS
 [from] Function main:
   i2 FROM i2
   i3 FROM i3
@@ -708,6 +794,10 @@
   i5 FROM i5
   v7 FROM v
 [from] ====== END OF DEPENDENCIES ======
+[inout] Out (internal) for function escaping:
+    p
+[inout] Inputs for function escaping:
+    \nothing
 [inout] Out (internal) for function f2:
     i2; __retres
 [inout] Inputs for function f2:
@@ -768,7 +858,15 @@
     x; pf; p; tmp
 [inout] Inputs for function main8:
     v
+[inout] Out (internal) for function uninit:
+    x
+[inout] Inputs for function uninit:
+    rand
+[inout] Out (internal) for function main9:
+    y; q
+[inout] Inputs for function main9:
+    rand
 [inout] Out (internal) for function main:
     i2; i3; i4; i5; v7
 [inout] Inputs for function main:
-    i2; i3; i4; i5; v; v7
+    i2; i3; i4; i5; v; v7; rand
diff --git a/tests/value/split_return.i b/tests/value/split_return.i
index 35b3df0bc703b749b97514f35dcde38db13bedbf..4437a236ec1defd15006b4432304a51b7fc8d42c 100644
--- a/tests/value/split_return.i
+++ b/tests/value/split_return.i
@@ -1,10 +1,10 @@
 /* run.config*
-   STDOPT: +"-deterministic -eva-no-memexec -slevel-function init:3,main1:3,f2:4,main2:4,f4:3,main5:3 -val-split-return-function f2:0,f3:-2:-4,f4:4,f5:-2,NON_EXISTING:4 -permissive -then -load-module report -report"
-   STDOPT: +"-deterministic -eva-no-memexec -val -journal-disable -out -input -deps -slevel 6 -val-split-return auto -val-split-return-function f7:0:3 -then -load-module report -report"
+   STDOPT: +"-deterministic -eva-no-memexec -slevel-function init:3,main1:3,f2:4,main2:4,f4:3,main5:3,uninit:2,main9:2 -val-split-return-function f2:0,f3:-2:-4,f4:4,f5:-2,NON_EXISTING:4,uninit:0,escaping:0 -eva-warn-copy-indeterminate=-uninit,-escaping,-main9 -permissive -then -load-module report -report"
+   STDOPT: +"-deterministic -eva-no-memexec -val -journal-disable -out -input -deps -slevel 6 -val-split-return auto -val-split-return-function f7:0:3 -eva-warn-copy-indeterminate=-uninit,-escaping,-main9 -then -load-module report -report"
    COMMENT: below command must fail, as -permissive is not set
-   STDOPT: +"-deterministic -eva-no-memexec -val -slevel-function NON_EXISTING:4"
-   STDOPT: +"-deterministic -eva-no-memexec -val -journal-disable -out -input -deps -slevel 6 -val-split-return full"
-   STDOPT: +"-deterministic -eva-no-memexec -val -journal-disable -out -input -deps -slevel 6 -val-split-return full -val-split-return-function f7:0:3 -val-split-return-function f2:full -then -val-split-return-function f2:auto"
+   STDOPT: +"-deterministic -eva-no-memexec -val -slevel-function NON_EXISTING:4 -eva-warn-copy-indeterminate=-uninit,-escaping,-main9"
+   STDOPT: +"-deterministic -eva-no-memexec -val -journal-disable -out -input -deps -slevel 6 -val-split-return full -eva-warn-copy-indeterminate=-uninit,-escaping,-main9"
+   STDOPT: +"-deterministic -eva-no-memexec -val -journal-disable -out -input -deps -slevel 6 -val-split-return full -val-split-return-function f7:0:3 -val-split-return-function f2:full -eva-warn-copy-indeterminate=-uninit,-escaping,-main9 -then -val-split-return-function f2:auto"
  */
 
 /*@ assigns \result \from \nothing;
@@ -172,6 +172,34 @@ void main8() {
   Frama_C_show_each_then8(x, p);
 }
 
+/* [main9] checks that -split-return does not remove states in which the result
+   is an escaping pointer or an uninitialized variable (and thus evaluates to
+   bottom) when -eva-warn-copy-indeterminate is disabled. */
+
+volatile int rand;
+
+int uninit () {
+  int x;
+  if (rand)
+    x = 0;
+  return x;
+}
+
+int *escaping () {
+  int *p;
+  {
+    int x;
+    p = &x;
+  }
+  return p;
+}
+
+/* At the end, [y] may be uninitialized and [q] is a dangling pointer. */
+void main9 () {
+  int y = uninit();
+  int *q = escaping();
+}
+
 void main() {
   main1();
   main2();
@@ -181,4 +209,5 @@ void main() {
   main6();
   main7();
   main8();
+  main9();
 }