diff --git a/src/plugins/wp/tests/wp_acsl/invalid_pointer.c b/src/plugins/wp/tests/wp_acsl/object_pointer.i
similarity index 89%
rename from src/plugins/wp/tests/wp_acsl/invalid_pointer.c
rename to src/plugins/wp/tests/wp_acsl/object_pointer.i
index b1e5a2f0f9ad8cd393ff689c00afb36926be0c0b..da0090d0999c7de0faaf954b2843d5b3362af37e 100644
--- a/src/plugins/wp/tests/wp_acsl/invalid_pointer.c
+++ b/src/plugins/wp/tests/wp_acsl/object_pointer.i
@@ -54,7 +54,17 @@ void compound(void)
   //@check G:   \object_pointer(&(p->g));
   //@check F2:  \object_pointer(&(p->f)+2);
   //@check G2: !\object_pointer(&(p->g)+2);
+  //@check E:   \object_pointer(p+1);
   int k ;
   struct A a ;
   //@check AM: (0 <= k <= 10) <==> \object_pointer(&a.m[k]);
 }
+
+void dangling(void){
+  int *p ;
+  {
+    int l ;
+    p = &l ;
+  }
+  //@ check !\object_pointer(p);
+}
diff --git a/src/plugins/wp/tests/wp_acsl/oracle/invalid_pointer.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/object_pointer.res.oracle
similarity index 67%
rename from src/plugins/wp/tests/wp_acsl/oracle/invalid_pointer.res.oracle
rename to src/plugins/wp/tests/wp_acsl/oracle/object_pointer.res.oracle
index 6d5be83644c757be7ca3bd42dd13d2c66196aeb0..e9495cd015d61cbc36a6d21a1de8a68a962f7ec0 100644
--- a/src/plugins/wp/tests/wp_acsl/oracle/invalid_pointer.res.oracle
+++ b/src/plugins/wp/tests/wp_acsl/oracle/object_pointer.res.oracle
@@ -1,21 +1,23 @@
 # frama-c -wp [...]
-[kernel] Parsing invalid_pointer.c (with preprocessing)
+[kernel] Parsing object_pointer.i (no preprocessing)
 [wp] Running WP plugin...
 [wp] [Valid] Goal array_exits (Cfg) (Unreachable)
 [wp] [Valid] Goal array_terminates (Cfg) (Trivial)
 [wp] Warning: Missing RTE guards
 [wp] [Valid] Goal compound_exits (Cfg) (Unreachable)
 [wp] [Valid] Goal compound_terminates (Cfg) (Trivial)
+[wp] [Valid] Goal dangling_exits (Cfg) (Unreachable)
+[wp] [Valid] Goal dangling_terminates (Cfg) (Trivial)
 [wp] [Valid] Goal memvar_exits (Cfg) (Unreachable)
 [wp] [Valid] Goal memvar_terminates (Cfg) (Trivial)
 [wp] [Valid] Goal pointer_exits (Cfg) (Unreachable)
 [wp] [Valid] Goal pointer_terminates (Cfg) (Trivial)
-[wp] invalid_pointer.c:23: Warning: void object
+[wp] object_pointer.i:23: Warning: void object
 ------------------------------------------------------------
   Function array
 ------------------------------------------------------------
 
-Goal Check 'ARR' (file invalid_pointer.c, line 32):
+Goal Check 'ARR' (file object_pointer.i, line 32):
 Assume { Type: is_sint32(k). (* Heap *) Type: linked(Malloc_0). }
 Prove: ((0 <= k) /\ (k <= 25)) <->
     valid_obj(Malloc_0[L_a_33 <- 25], shift_sint32(global(L_a_33), k), 1).
@@ -25,76 +27,91 @@ Prove: ((0 <= k) /\ (k <= 25)) <->
   Function compound
 ------------------------------------------------------------
 
-Goal Check 'M1' (file invalid_pointer.c, line 47):
+Goal Check 'M1' (file object_pointer.i, line 47):
 Prove: true.
 
 ------------------------------------------------------------
 
-Goal Check 'P0' (file invalid_pointer.c, line 48):
+Goal Check 'P0' (file object_pointer.i, line 48):
 Prove: true.
 
 ------------------------------------------------------------
 
-Goal Check 'P1' (file invalid_pointer.c, line 49):
+Goal Check 'P1' (file object_pointer.i, line 49):
 Prove: true.
 
 ------------------------------------------------------------
 
-Goal Check 'P2' (file invalid_pointer.c, line 50):
+Goal Check 'P2' (file object_pointer.i, line 50):
 Prove: true.
 
 ------------------------------------------------------------
 
-Goal Check 'F' (file invalid_pointer.c, line 53):
+Goal Check 'F' (file object_pointer.i, line 53):
 Assume { (* Heap *) Type: linked(Malloc_0). }
 Prove: valid_obj(Malloc_0[L_s_38 <- 2], shiftfield_F1_S_f(global(L_s_38)), 1).
 
 ------------------------------------------------------------
 
-Goal Check 'G' (file invalid_pointer.c, line 54):
+Goal Check 'G' (file object_pointer.i, line 54):
 Assume { (* Heap *) Type: linked(Malloc_0). }
 Prove: valid_obj(Malloc_0[L_s_38 <- 2], shiftfield_F1_S_g(global(L_s_38)), 1).
 
 ------------------------------------------------------------
 
-Goal Check 'F2' (file invalid_pointer.c, line 55):
+Goal Check 'F2' (file object_pointer.i, line 55):
 Assume { (* Heap *) Type: linked(Malloc_0). }
 Prove: valid_obj(Malloc_0[L_s_38 <- 2],
          shift_sint32(shiftfield_F1_S_f(global(L_s_38)), 2), 1).
 
 ------------------------------------------------------------
 
-Goal Check 'G2' (file invalid_pointer.c, line 56):
+Goal Check 'G2' (file object_pointer.i, line 56):
 Assume { (* Heap *) Type: linked(Malloc_0). }
 Prove: !valid_obj(Malloc_0[L_s_38 <- 2],
           shift_sint32(shiftfield_F1_S_g(global(L_s_38)), 2), 1).
 
 ------------------------------------------------------------
 
-Goal Check 'AM' (file invalid_pointer.c, line 59):
+Goal Check 'E' (file object_pointer.i, line 57):
+Assume { (* Heap *) Type: linked(Malloc_0). }
+Prove: valid_obj(Malloc_0[L_s_38 <- 2], shift_S1_S(global(L_s_38), 1), 2).
+
+------------------------------------------------------------
+
+Goal Check 'AM' (file object_pointer.i, line 60):
 Prove: true.
 
+------------------------------------------------------------
+------------------------------------------------------------
+  Function dangling
+------------------------------------------------------------
+
+Goal Check (file object_pointer.i, line 69):
+Assume { (* Heap *) Type: linked(Malloc_0). }
+Prove: !valid_obj(Malloc_0[L_l_45 <- 0], global(L_l_45), 1).
+
 ------------------------------------------------------------
 ------------------------------------------------------------
   Function memvar
 ------------------------------------------------------------
 
-Goal Check 'M1' (file invalid_pointer.c, line 6):
+Goal Check 'M1' (file object_pointer.i, line 6):
 Prove: true.
 
 ------------------------------------------------------------
 
-Goal Check 'P0' (file invalid_pointer.c, line 7):
+Goal Check 'P0' (file object_pointer.i, line 7):
 Prove: true.
 
 ------------------------------------------------------------
 
-Goal Check 'P1' (file invalid_pointer.c, line 8):
+Goal Check 'P1' (file object_pointer.i, line 8):
 Prove: true.
 
 ------------------------------------------------------------
 
-Goal Check 'P2' (file invalid_pointer.c, line 9):
+Goal Check 'P2' (file object_pointer.i, line 9):
 Prove: true.
 
 ------------------------------------------------------------
@@ -102,36 +119,36 @@ Prove: true.
   Function pointer
 ------------------------------------------------------------
 
-Goal Check 'M1' (file invalid_pointer.c, line 19):
+Goal Check 'M1' (file object_pointer.i, line 19):
 Assume { (* Heap *) Type: linked(Malloc_0). }
 Prove: !valid_obj(Malloc_0[L_x_28 <- 1], shift_sint32(global(L_x_28), -1), 1).
 
 ------------------------------------------------------------
 
-Goal Check 'P0' (file invalid_pointer.c, line 20):
+Goal Check 'P0' (file object_pointer.i, line 20):
 Assume { (* Heap *) Type: linked(Malloc_0). }
 Prove: valid_obj(Malloc_0[L_x_28 <- 1], global(L_x_28), 1).
 
 ------------------------------------------------------------
 
-Goal Check 'P1' (file invalid_pointer.c, line 21):
+Goal Check 'P1' (file object_pointer.i, line 21):
 Assume { (* Heap *) Type: linked(Malloc_0). }
 Prove: valid_obj(Malloc_0[L_x_28 <- 1], shift_sint32(global(L_x_28), 1), 1).
 
 ------------------------------------------------------------
 
-Goal Check 'P2' (file invalid_pointer.c, line 22):
+Goal Check 'P2' (file object_pointer.i, line 22):
 Assume { (* Heap *) Type: linked(Malloc_0). }
 Prove: !valid_obj(Malloc_0[L_x_28 <- 1], shift_sint32(global(L_x_28), 2), 1).
 
 ------------------------------------------------------------
 
-Goal Check 'qed_NULL' (file invalid_pointer.c, line 23):
+Goal Check 'qed_NULL' (file object_pointer.i, line 23):
 Prove: true.
 
 ------------------------------------------------------------
 
-Goal Check 'prover_NULL' (file invalid_pointer.c, line 24):
+Goal Check 'prover_NULL' (file object_pointer.i, line 24):
 Assume { (* Heap *) Type: linked(Malloc_0). }
 Prove: valid_obj(Malloc_0[L_x_28 <- 1], L_GET, 1).
 
diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/invalid_pointer.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/object_pointer.res.oracle
similarity index 77%
rename from src/plugins/wp/tests/wp_acsl/oracle_qualif/invalid_pointer.res.oracle
rename to src/plugins/wp/tests/wp_acsl/oracle_qualif/object_pointer.res.oracle
index 4090d279a5e1f3cacdc3ab941df1af9a455b36c0..0775d61de97766153e1f57cd1d61bef1cbb6112b 100644
--- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/invalid_pointer.res.oracle
+++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/object_pointer.res.oracle
@@ -1,17 +1,19 @@
 # frama-c -wp [...]
-[kernel] Parsing invalid_pointer.c (with preprocessing)
+[kernel] Parsing object_pointer.i (no preprocessing)
 [wp] Running WP plugin...
 [wp] [Valid] Goal array_exits (Cfg) (Unreachable)
 [wp] [Valid] Goal array_terminates (Cfg) (Trivial)
 [wp] Warning: Missing RTE guards
 [wp] [Valid] Goal compound_exits (Cfg) (Unreachable)
 [wp] [Valid] Goal compound_terminates (Cfg) (Trivial)
+[wp] [Valid] Goal dangling_exits (Cfg) (Unreachable)
+[wp] [Valid] Goal dangling_terminates (Cfg) (Trivial)
 [wp] [Valid] Goal memvar_exits (Cfg) (Unreachable)
 [wp] [Valid] Goal memvar_terminates (Cfg) (Trivial)
 [wp] [Valid] Goal pointer_exits (Cfg) (Unreachable)
 [wp] [Valid] Goal pointer_terminates (Cfg) (Trivial)
-[wp] invalid_pointer.c:23: Warning: void object
-[wp] 20 goals scheduled
+[wp] object_pointer.i:23: Warning: void object
+[wp] 22 goals scheduled
 [wp] [Valid] typed_memvar_check_M1 (Qed)
 [wp] [Valid] typed_memvar_check_P0 (Qed)
 [wp] [Valid] typed_memvar_check_P1 (Qed)
@@ -31,16 +33,20 @@
 [wp] [Valid] typed_compound_check_G (Alt-Ergo) (Cached)
 [wp] [Valid] typed_compound_check_F2 (Alt-Ergo) (Cached)
 [wp] [Valid] typed_compound_check_G2 (Alt-Ergo) (Cached)
+[wp] [Unsuccess] typed_compound_check_E (Alt-Ergo) (Cached)
 [wp] [Valid] typed_compound_check_AM (Qed)
-[wp] Proved goals:   28 / 28
-  Terminating:     4
-  Unreachable:     4
+[wp] [Unsuccess] typed_dangling_check (Alt-Ergo) (Cached)
+[wp] Proved goals:   30 / 32
+  Terminating:     5
+  Unreachable:     5
   Qed:            10
   Alt-Ergo:       10
+  Unsuccess:       2
 ------------------------------------------------------------
  Functions                 WP     Alt-Ergo  Total   Success
   memvar                    4        -        4       100%
   pointer                   1        5        6       100%
   array                     -        1        1       100%
-  compound                  5        4        9       100%
+  compound                  5        4       10      90.0%
+  dangling                  -        -        1       0.0%
 ------------------------------------------------------------