diff --git a/tests/non-free/memchr.c b/tests/non-free/memchr.c
index b675d880fb5d398f474a0a7cb49db3643dff6891..e8cff9a67f235c705d3538ea24d2377fbfc99555 100644
--- a/tests/non-free/memchr.c
+++ b/tests/non-free/memchr.c
@@ -45,32 +45,52 @@ const char* tab_str[TSZ] =
     "aaaaaaaaaaaa" ,
     "aaaaaaaaaaaaa" }; // 13
 
-int my_memchr(const void *p, size_t offs, int c, size_t n) {
-  const char *s = (const char*) p;
-  char *ss = memchr(s+offs,c,n);
-  int res;
-  if (ss == 0) {
-    res = -1;
-  } else {
-    res = ss - (char*)p;
-  }
-  Frama_C_show_each_mymemchr(res);
-  return res;
-}
-
-int my_memchr2(const void *base, size_t offs1, size_t offs2, int c, size_t n) {
-  const char *p = (const char *) base;
-  p += NONDET(offs1, offs2);
-  char *s = memchr(p,c,n);
-  int res;
-  if (s == 0) {
-    res = -1;
-  } else {
-    res = s - (char*)base;
-  }
-  Frama_C_show_each_mymemchr2(res);
-  return res;
-}
+#define MEMCHR(lv_type, lv_var, _p, _offs, _c, _n)   \
+  lv_type lv_var;                                       \
+  do {                                                  \
+    const char *_s = (const char*) _p;                  \
+    char *_ss = memchr(_s+_offs,_c,_n);                 \
+    int _res;                                           \
+    if (_ss == 0) {                                     \
+      _res = -1;                                        \
+    } else {                                            \
+      _res = _ss - (char*)_p;                           \
+    }                                                   \
+    Frama_C_show_each_mymemchr(_res);                   \
+    lv_var = _res;                                      \
+  } while (0)                                           \
+
+#define MEMCHR_no_decl(lv_var, _p, _offs, _c, _n)    \
+  do {                                                  \
+    const char *_s = (const char*) _p;                  \
+    char *_ss = memchr(_s+_offs,_c,_n);                 \
+    int _res;                                           \
+    if (_ss == 0) {                                     \
+      _res = -1;                                        \
+    } else {                                            \
+      _res = _ss - (char*)_p;                           \
+    }                                                   \
+    Frama_C_show_each_mymemchr(_res);                   \
+    lv_var = _res;                                      \
+  } while (0)                                           \
+
+#define MEMCHR_bottom(s, offs, c, n) assert_bottom(memchr(s+offs,c,n), s)
+
+#define MEMCHR2(lv_type, lv_var, _base, _offs1, _offs2, _c, _n)      \
+  lv_type lv_var;                                                       \
+  do {                                                                  \
+    const char *_p = (const char *) _base;                              \
+    _p += NONDET(_offs1, _offs2);                                       \
+    char *_ss = memchr(_p,_c,_n);                                       \
+    int _res;                                                           \
+    if (_ss == 0) {                                                     \
+      _res = -1;                                                        \
+    } else {                                                            \
+      _res = _ss - (char*)_base;                                        \
+    }                                                                   \
+    Frama_C_show_each_mymemchr2(_res);                                  \
+    lv_var = _res;                                                      \
+  } while (0)                                                           \
 
 //DELPHIC_TEST
 void memchr_small_sets() {
@@ -78,23 +98,23 @@ void memchr_small_sets() {
   CHAR_PTR(s);
   STRING(s,"abc");
   Ival o = NONDET(0, 1);
-  RES z1 = my_memchr(s, o, c, 4);
+  MEMCHR(RES, z1, s, o, c, 4);
   //@ assert (z1 == 3);
   STRING(s,"\0bc");
   o = NONDET(0,1);
-  RES z2 = my_memchr(s, o, c, 3);
+  MEMCHR(RES, z2, s, o, c, 3);
   //@ assert (z2 == 0 || z2 == 3);
   STRING(s,"");
-  RES z3 = my_memchr(s, 0, c, 0);
+  MEMCHR(RES, z3, s, 0, c, 0);
   //@ assert (z3 == -1);
   STRING(s,"b\0c");
   o = NONDET(0,2);
-  RES z4 = my_memchr(s, o, c, 2);
+  MEMCHR(RES, z4, s, o, c, 2);
   //@ assert (z4 == 1 || z4 == 3);
   CHAR_ARRAY(t, 4);
   t[0] = t[1] = NONDET(0, 1);
   t[2] = t[3] = 1;
-  RES z5 = my_memchr(t, 0, c, 4); // no warning
+  MEMCHR(RES, z5, t, 0, c, 4); // no warning
   //@ assert (z5 == -1 || z5 == 0 || z5 == 1);
 }
 
@@ -103,20 +123,20 @@ void memchr_zero_termination() {
   CHAR c = 0;
   CHAR_ARRAY(empty_or_non_terminated, 1);
   empty_or_non_terminated[0] = NONDET(0, 100);
-  RES z1 = my_memchr(empty_or_non_terminated, 0, c, 1);
+  MEMCHR(RES, z1, empty_or_non_terminated, 0, c, 1);
   //@ assert (z1 == -1 || z1 == 0);
 
   CHAR_ARRAY(non_terminated, 1);
   non_terminated[0] = 'X';
-  RES z2 = my_memchr(non_terminated, 0, c, 1);
+  MEMCHR(RES, z2, non_terminated, 0, c, 1);
   //@ assert (z2 == -1);
-  assert_bottom(my_memchr(non_terminated, 0, c, 2), non_terminated);
+  MEMCHR_bottom(non_terminated, 0, c, 2);
 
   CHAR_ARRAY(non_terminated2, 4);
   non_terminated2[0] = 76; non_terminated2[1] = 0;
   non_terminated2[2] = 28; non_terminated2[3] = 14;
   Ival o = NONDET(2, 3);
-  assert_bottom(my_memchr(non_terminated2, o, c, 4), non_terminated2);
+  MEMCHR_bottom(non_terminated2, o, c, 4);
 }
 
 //DELPHIC_TEST
@@ -124,23 +144,23 @@ void memchr_initialization() {
   CHAR c = 0;
   CHAR_ARRAY(empty_or_uninitialized, 1);
   IF_NONDET(empty_or_uninitialized[0], 0);
-  RES z1 = my_memchr(empty_or_uninitialized, 0, c, 1); // alarm: uninit
+  MEMCHR(RES, z1, empty_or_uninitialized, 0, c, 1); // alarm: uninit
   //@ assert (z1 == 0);
 
   CHAR_ARRAY(uninitialized, 1);
-  assert_bottom(my_memchr(uninitialized, 0, c, 1),uninitialized);
+  MEMCHR_bottom(uninitialized, 0, c, 1);
 
   CHAR_ARRAY(s, 2);
   IF_NONDET(s[0], 1);
   s[1] = 0;
-  RES z2 = my_memchr(s, 0, c, 2);
+  MEMCHR(RES, z2, s, 0, c, 2);
   //@ assert (z2 == 1);
 
   CHAR_ARRAY(t,4);
   t[0] = t[1] = 10;
   IF_NONDET(t[2], 10);
   t[3] = 0;
-  RES z3 = my_memchr(t, 0, c, 4);
+  MEMCHR(RES, z3, t, 0, c, 4);
   //@ assert (z3 == 3);
 }
 
@@ -175,7 +195,7 @@ void memchr_bitfields2() {
   s.c = 7;
   CHAR_PTR(p);
   p = &s;
-  RES z1 = my_memchr(p, 0, c, 3);
+  MEMCHR(RES, z1, p, 0, c, 3);
   //@assert (z1 == 2);
 }
 
@@ -193,28 +213,28 @@ void memchr_large() {
   a[20] = 0;
   a[75] = 0;
   Ival offset = RANGE(3, 30);
-  RES z1 = my_memchr(a, offset, c, 100);
+  MEMCHR(RES, z1, a, offset, c, 100); // alarm from precondition
   //@ assert (z1 >= -1 && z1 <= 75);
   //@ assert refined: (z1 == 20 || z1 == 75);
 
   offset = RANGE(5, 17);
-  RES z2 = my_memchr(a, offset, c, 100);
+  MEMCHR(RES, z2, a, offset, c, 100); // alarm from precondition
   //@ assert (z2 >= -1 && z2 <= 20);
   //@ assert refined: (z2 == 20);
 
   offset = RANGE(60, 74);
-  RES z3 = my_memchr(a, offset, c, 100);
+  MEMCHR(RES, z3, a, offset, c, 100); // alarm from precondition
   //@ assert (z3 >= -1 && z3 <= 75);
   //@ assert refined: (z3 == 75);
 
   offset = RANGE(63, 80);
-  RES z4 = my_memchr(a, offset, c, 100);
+  MEMCHR(RES, z4, a, offset, c, 100); // alarm from precondition
   //@ assert (z4 >= -1 && z4 <= 79);
   //@ assert refined: (z4 == 75);
 
   init_array_nondet(a, 0, 99, 0, 2);
   offset = RANGE(50, 70);
-  RES z5 = my_memchr(a, offset, c, 100);
+  MEMCHR(RES, z5, a, offset, c, 100); // alarm from precondition
   //@ assert (z5 >= -1 && z5 <= 99);
   //@ assert refined: (z5 >= 50 && z5 <= 99);
 }
@@ -229,18 +249,18 @@ void memchr_large_uninit() {
   a[75] = 0;
 
   Ival offset = RANGE(3, 30);
-  RES z1 = my_memchr(a, offset, c, 100); //alarm: Uninit
+  MEMCHR(RES, z1, a, offset, c, 100); //alarm: Uninit
   //@ assert (z1 >= -1 && z1 <= 29);
   //@ assert refined: (z1 == 20);
 
   a[98] = 0;
   offset = RANGE(63, 80);
-  RES z2 = my_memchr(a, offset, c, 100); //alarm: Uninit
+  MEMCHR(RES, z2, a, offset, c, 100); //alarm: Uninit
   //@ assert (z2 >= -1 && z2 <= 79);
   //@ assert refined: (z2 == 75);
 
   offset = RANGE(45, 55);
-  RES z3 = my_memchr(a, offset, c, 100); //alarm: Uninit
+  MEMCHR(RES, z3, a, offset, c, 100); //alarm: Uninit
   //@ assert (z3 >= -1 && z3 <= 75);
   //@ assert refined: (z3 == 75);
 
@@ -255,17 +275,17 @@ void memchr_escaping() {
     *((int *)s) = &x;
   }
   IF_NONDET(s[0], 0);
-  RES z1 = my_memchr(s, 0, c, 4); // alarm
+  MEMCHR(RES, z1, s, 0, c, 4); // alarm
   //@ assert (z1 == 0);
   s[0] = 0;
-  RES z2 = my_memchr(s, 0, c, 4); // no alarm
+  MEMCHR(RES, z2, s, 0, c, 4); // alarm in precondition
   //@ assert (z2 == 0);
 }
 
 void memchr_misc_array() {
   CHAR c = 0;
   Ival i = RANGE(0,TSZ-1);
-  RES sz3 = my_memchr(tab_str[i], 0, c, 14);
+  MEMCHR(RES, sz3, tab_str[i], 0, c, 14);
   //@ assert (sz3 >= 0 && sz3 <= 13);
 }
 
@@ -279,7 +299,6 @@ void memchr_misc() {
   CHAR_PTR(loc_str);
   STRING(loc_str, "Bonjour Monde\n");
   CHAR_ARRAY(loc_char_array, 5);
-  RES sz1,sz2,sz4a,sz4b,sz4c,sz4d;
   int x = 0xabcdef00;
   CHAR_PTR(str);
   CHAR_ARRAY(unterminated_string, 12);
@@ -296,49 +315,48 @@ void memchr_misc() {
   unterminated_string[10] = 'e';
   unterminated_string[11] = 'd';
 
-  assert_bottom(my_memchr(unterminated_string, 0, c, 13),unterminated_string);
+  MEMCHR_bottom(unterminated_string, 0, c, 13);
 
   str = NONDET_STR2(static_str, loc_str);
-  sz1 = my_memchr(str, 0, c, 15);  
+  MEMCHR(RES, sz1, str, 0, c, 15); // false alarm (pointers from 2 bases)
   //@ assert (sz1 == 12 || sz1 == 14);
   str = &x;
-  sz2 = my_memchr2(str, 0, 3, c, 12);
+  MEMCHR2(RES, sz2, str, 0, 3, c, 12); // alarm in precondition
   //@ assert (sz2 == 0); // alarm
   loc_char_array[3] = '\0';
-  assert_bottom(my_memchr(loc_char_array, 0, c, 5),loc_char_array);
-  sz4a = my_memchr(zero_str, 0, c, 9);
+  MEMCHR_bottom(loc_char_array, 0, c, 5); // alarm in precondition
+  MEMCHR(RES, sz4a, zero_str, 0, c, 9); // no alarm
   //@ assert (sz4a == 3);
-  sz4b = my_memchr(zero_str, 4, c, 9);
+  MEMCHR(RES, sz4b, zero_str, 4, c, 9); // alarm in precondition
   //@ assert (sz4b == 4);
-  sz4c = my_memchr(zero_str, 5, c, 9);
+  MEMCHR(RES, sz4c, zero_str, 5, c, 9); // alarm in precondition
   //@ assert (sz4c == 5);
-  sz4d = my_memchr(zero_str, 6, c, 9);
+  MEMCHR(RES, sz4d, zero_str, 6, c, 9); // alarm in precondition
   //@ assert (sz4d == 9);
 }
 
 //DELPHIC_TEST
 void memchr_misc2() {
   CHAR  c = 0;
-  RES sz5,sz6,sz7,sz8;
   CHAR_PTR(s1);
   s1 = NONDET_STR("abc", "ABCD");
-  sz5 = my_memchr2(s1, 0, 1, c, 5);
+  MEMCHR2(RES, sz5, s1, 0, 1, c, 5); // alarm in precondition
   //@ assert (sz5 == 3 || sz5 == 4);
 
   s1 = NONDET_STR("efg", "EFGH");
-  sz6 = my_memchr2(s1, 1, 2, c, 5);
+  MEMCHR2(RES, sz6, s1, 1, 2, c, 5); // alarm in precondition
   //@ assert (sz6 == 3 || sz6 == 4);
 
   s1 = NONDET_STR("mno\0pqr", "MNOP\0QRS");
   for (int j = 0; j < 8; j++) {
-    sz7 = my_memchr(s1, j, c, 10);
+    MEMCHR(RES, sz7, s1, j, c, 10); // alarm in precondition
     //@ assert (sz7 == 3 || sz7 == 4 || sz7 == 7 || sz7 == 8);
   }
 
   CHAR_ARRAY(maybe_init, 2);
   maybe_init[1] = '\0';
   IF_NONDET(maybe_init[0], 'A');
-  sz8 = my_memchr(maybe_init, 0, c, 2); // alarm
+  MEMCHR(RES, sz8, maybe_init, 0, c, 2); // alarm
   //@ assert (sz8 == 1);
 }
 
@@ -354,24 +372,24 @@ void memchr_big_array () {
   *p = 0x10230067;
   p = &t[nondet];
   *p = 0x10230067;
-
-  // the actual length is unsigned, but due to our representation
+  // All memchr calls in this function emit alarms due to preconditions.
+  // The actual length is unsigned, but due to our representation
   // of NULL via -1, we actually use it as signed
   long len_u;
   long len_r;
   long len_t;
 
-  len_u = my_memchr(u, 0, c, 800); // below plevel; precise
-  len_r = my_memchr(r, 0, c, 805); // above plevel; imprecise
-  len_t = my_memchr(t, 0, c, 4000001); // *far* above plevel
+  MEMCHR_no_decl(len_u, u, 0, c, 800); // below plevel; precise
+  MEMCHR_no_decl(len_r, r, 0, c, 805); // above plevel; imprecise
+  MEMCHR_no_decl(len_t, t, 0, c, 4000001); // *far* above plevel
   Frama_C_show_each(len_u, len_r, len_t);
   //@ assert len_u == 1;
   //@ assert len_r >= 1 && len_r <= 801;
   //@ assert len_t >= 1 && len_t <= 3999997;
 
-  len_u = my_memchr(u, 0, c, 1600); // should be precise
-  len_r = my_memchr(r, 0, c, 1608);
-  len_t = my_memchr(t, 0, c, 8000000);
+  MEMCHR_no_decl(len_u, u, 0, c, 1600); // should be precise
+  MEMCHR_no_decl(len_r, r, 0, c, 1608);
+  MEMCHR_no_decl(len_t, t, 0, c, 8000000);
   Frama_C_show_each(len_u, len_r, len_t);
   //@ assert len_u >= 0 && len_u <= 3;
   //@ assert len_r >= 0 && len_r <= 802;
@@ -386,15 +404,15 @@ void memchr_no_zero_but_ok() {
   s[10] = 0;
   s[11] = s[12] = s[13] = 1;
   s[14] = s[15] = s[16] = s[17] = s[18] = s[19] = NONDET(1, 0);
-  RES z1 = my_memchr(s, 0, c, 5);
+  MEMCHR(RES, z1, s, 0, c, 5);
   //@assert (z1 == -1);
-  RES z2 = my_memchr(s, 0, c, 11);
+  MEMCHR(RES, z2, s, 0, c, 11);
   //@assert (z2 == 10);
-  RES z3 = my_memchr2(s, 1, 8, c, 11);
+  MEMCHR2(RES, z3, s, 1, 8, c, 11);
   //@assert (z3 == 10);
-  RES z4 = my_memchr2(s, 7, 11, c, 4);
+  MEMCHR2(RES, z4, s, 7, 11, c, 4);
   //@assert (z4 == -1 || z4 == 10 || z4 == 14);
-  RES z5 = my_memchr2(s, 7, 18, c, 5); // maybe_indet = true
+  MEMCHR2(RES, z5, s, 7, 18, c, 5); // maybe_indet = true
   //@assert (z5 == 10 || z5 == 18 || z5 == 19);
 }
 
@@ -404,28 +422,28 @@ void memchr_small_sets_n() {
   CHAR_PTR(s);
   STRING(s,"abcde");
   CHAR n = NONDET(2, 5);
-  RES z1 = my_memchr2(s, 0, 1, c, n);
+  MEMCHR2(RES, z1, s, 0, 1, c, n);
   //@assert (z1 == -1 || z1 == 5);
 
   STRING(s,"\0bcdef");
   n = NONDET(1, 6);
-  RES z2 = my_memchr2(s, 0, 1, c, n);
+  MEMCHR2(RES, z2, s, 0, 1, c, n);
   //@assert (z2 == -1 || z2 == 0 || z2 == 6);
 
   STRING(s,"bcd\0efg");
-  RES z3a = my_memchr2(s, 0, 2, c, 4);
+  MEMCHR2(RES, z3a, s, 0, 2, c, 4);
   //@assert (z3a == 3);
 
   n = NONDET(3, 4);
-  RES z3b = my_memchr2(s, 0, 2, c, n);
+  MEMCHR2(RES, z3b, s, 0, 2, c, n);
   //@assert (z3b == -1 || z3b == 3);
 
   n = NONDET(2, 3);
-  RES z3 = my_memchr2(s, 0, 2, c, n);
+  MEMCHR2(RES, z3, s, 0, 2, c, n);
   //@assert (z3 == -1 || z3 == 3);
 
   n = NONDET(2, 7);
-  RES z4 = my_memchr2(s, 2, 4, c, n); // alarm
+  MEMCHR2(RES, z4, s, 2, 4, c, n); // alarm
   //@assert (z4 == -1 || z4 == 3 || z4 == 7);
 }
 
@@ -440,48 +458,48 @@ void memchr_large_n() {
   a[75] = 0;
   Ival offset = RANGE(3, 30);
   Ival n = RANGE(10, 20);
-  RES z1 = my_memchr(a, offset, c, n);
+  MEMCHR(RES, z1, a, offset, c, n);
   //@assert (z1 >= -1 && z1 <= 40);
   //@assert refined: (z1 == -1 || z1 == 15 || z1 == 28 || z1 == 40);
 
   a[28] = 1;
   a[29] = 0;
-  RES z2 = my_memchr(a, offset, c, n);
+  MEMCHR(RES, z2, a, offset, c, n);
   //@assert (z2 >= -1 && z2 <= 40);
   //@assert refined: (z2 == -1 || z2 == 15 || z2 == 29 || z2 == 40);
 
   a[40] = 1;
-  RES z3 = my_memchr(a, offset, c, n); // no alarm
+  MEMCHR(RES, z3, a, offset, c, n); // no alarm
   //@assert (z3 >= -1 && z3 <= 29);
   //@assert refined: (z3 == -1 || z3 == 15 || z3 == 29);
 
   offset = RANGE(5, 17);
-  RES z4 = my_memchr(a, offset, c, n);
+  MEMCHR(RES, z4, a, offset, c, n);
   //@assert (z4 >= -1 && z4 <= 29);
   //@assert refined: (z4 == -1 || z4 == 15 || z4 == 29);
 
   offset = RANGE(60, 74);
-  RES z5 = my_memchr(a, offset, c, n);
+  MEMCHR(RES, z5, a, offset, c, n);
   //@assert (z5 >= -1 && z5 <= 75);
   //@assert refined: (z5 == -1 || z5 == 75);
 
   offset = RANGE(63, 80);
-  RES z6 = my_memchr(a, offset, c, n); // no alarm
+  MEMCHR(RES, z6, a, offset, c, n); // no alarm
   //@assert (z6 >= -1 && z6 <= 79);
   //@assert refined: (z6 == -1 || z6 == 75);
 
   init_array_nondet(a, 0, 99, 0, 2);
   offset = RANGE(50, 70);
-  RES z7 = my_memchr(a, offset, c, n);
+  MEMCHR(RES, z7, a, offset, c, n);
   //@assert (z7 >= -1 && z7 <= 89);
 
   n = RANGE(0, 100);
-  RES z8 = my_memchr(a, offset, c, n); // alarm: Invalid
+  MEMCHR(RES, z8, a, offset, c, n); // alarm: Invalid
   //@assert (z8 >= -1 && z8 <= 99);
 
   offset = RANGE(0, 10);
   n = RANGE(0, 90);
-  RES z9 = my_memchr(a, offset, c, n); // no alarm
+  MEMCHR(RES, z9, a, offset, c, n); // no alarm
   //@assert (z9 >= -1 && z9 <= 99);
 }
 
@@ -491,13 +509,13 @@ void memchr_unbounded_n() {
   if (n < 0) n = 0;
   CHAR_PTR(s);
   STRING(s,"abc");
-  RES zu1 = my_memchr(s, 0, c, n);
+  MEMCHR(RES, zu1, s, 0, c, n); // warning from precondition
   //@ assert (zu1 == -1 || zu1 == 3);
   Ival o = NONDET(0,1);
-  RES zu2 = my_memchr(s, o, c, n);
+  MEMCHR(RES, zu2, s, o, c, n); // warning from precondition
   //@ assert (zu2 == -1 || zu2 == 2 || zu2 == 3);
   STRING(s,"bcd\0eg");
-  RES zu3 = my_memchr(s, 0, c, n);
+  MEMCHR(RES, zu3, s, 0, c, n); // warning from precondition
   //@ assert (zu3 == -1 || zu3 == 3);
 }
 
@@ -513,48 +531,48 @@ void memchr_intervals() {
 
   Ival offset = RANGE(0,9);
   Ival n = RANGE(0, 10);
-  RES z1 = my_memchr(a, offset, c, n);
+  MEMCHR(RES, z1, a, offset, c, n); // warning from precondition (a[10] UNINIT)
   //@ assert (z1 >= -1 && z1 <= 9);
   //@ assert refined: (z1 == -1 || z1 == 0 || z1 == 1 || z1 == 2 || z1 == 7 || z1 == 8 || z1 == 9);
 
   offset = RANGE(3,9);
   n = RANGE(2,10);
-  RES z2 = my_memchr(a, offset, c, n);
+  MEMCHR(RES, z2, a, offset, c, n); // warning from precondition (a[10] UNINIT)
   //@ assert (z2 == -1 || z2 == 7 || z2 == 8 || z2 == 9);
 
   offset = RANGE(3,9);
   n = RANGE(0,11);
-  RES z3 = my_memchr(a, offset, c, n);
+  MEMCHR(RES, z3, a, offset, c, n); // warning from precondition (a[10] UNINIT)
   //@ assert (z3 == -1 || z3 == 7 || z3 == 8 || z3 == 9);
 
   offset = RANGE(3,10);
   n = RANGE(0,9);
-  RES z4 = my_memchr(a, offset, c, n);
+  MEMCHR(RES, z4, a, offset, c, n); // warning from precondition (a[10] UNINIT)
   //@ assert (z4 == -1 || z4 == 7 || z4 == 8 || z4 == 9);
 
   offset = RANGE(3,10);
   n = RANGE(0,10);
-  RES z5 = my_memchr(a, offset, c, n);
+  MEMCHR(RES, z5, a, offset, c, n); // warning from precondition (a[10] UNINIT)
   //@ assert (z5 == -1 || z5 == 7 || z5 == 8 || z5 == 9);
 
   offset = RANGE(3,10);
   n = RANGE(0,11);
-  RES z6 = my_memchr(a, offset, c, n);
+  MEMCHR(RES, z6, a, offset, c, n); // warning from precondition (a[10] UNINIT)
   //@ assert (z6 == -1 || z6 == 7 || z6 == 8 || z6 == 9);
 
   offset = RANGE(3,11);
   n = RANGE(0,10);
-  RES z7 = my_memchr(a, offset, c, n);
+  MEMCHR(RES, z7, a, offset, c, n); // warning from precondition (a[10] UNINIT)
   //@ assert (z7 >= -1 && z7 <= 19);
 
   offset = RANGE(3,11);
   n = RANGE(0,10);
-  RES z8 = my_memchr(a, offset, c, n);
+  MEMCHR(RES, z8, a, offset, c, n); // warning from precondition (a[10] UNINIT)
   //@ assert (z8 >= -1 && z8 <= 19);
 
   offset = RANGE(3,11);
   n = RANGE(0,11);
-  RES z9 = my_memchr(a, offset, c, n);
+  MEMCHR(RES, z9, a, offset, c, n); // warning from precondition (a[10] UNINIT)
   //@ assert (z9 >= -1 && z9 <= 19);
 }
 
@@ -563,19 +581,19 @@ int memchr_small_sets_no_assertions(CHAR c, RES *res) {
   CHAR_PTR(s);
   STRING(s,"abc");
   Ival o = NONDET(0, 1);
-  res[0] = my_memchr(s, o, c, 4);
+  MEMCHR_no_decl(res[0], s, o, c, 4); // alarm from precondition
   STRING(s,"\0bc");
   o = NONDET(0,1);
-  res[1] = my_memchr(s, o, c, 3);
+  MEMCHR_no_decl(res[1], s, o, c, 3);
   STRING(s,"");
-  res[2] = my_memchr(s, 0, c, 0);
+  MEMCHR_no_decl(res[2], s, 0, c, 0);
   STRING(s,"b\0c");
   o = NONDET(0,2);
-  res[3] = my_memchr(s, o, c, 2);
+  MEMCHR_no_decl(res[3], s, o, c, 2);
   CHAR_ARRAY(t, 4);
   t[0] = t[1] = NONDET(c, 1);
   t[2] = t[3] = 1;
-  res[4] = my_memchr(t, 0, c, 4);
+  MEMCHR_no_decl(res[4], t, 0, c, 4);
   return 0;
 }
 
diff --git a/tests/non-free/oracle/memchr.res.oracle b/tests/non-free/oracle/memchr.res.oracle
index 95a472be36ac4a3b977c29b9f940f3e1e4c6895a..f5d86ec3f758ebe240a320570f30e1f42525148e 100644
--- a/tests/non-free/oracle/memchr.res.oracle
+++ b/tests/non-free/oracle/memchr.res.oracle
@@ -20,1320 +20,1055 @@
   static_str ∈ {0}
   zero_str ∈ {0}
 [value] computing for function memchr_small_sets <- main.
-    Called from tests/non-free/memchr.c:645.
-[value] computing for function my_memchr <- memchr_small_sets <- main.
-    Called from tests/non-free/memchr.c:81.
+    Called from tests/non-free/memchr.c:663.
 share/libc/string.h:53:[value] Cannot evaluate range bound memchr_off((char *)s, c, n)
     (unsupported ACSL construct: logic function memchr_off). Approximating
-tests/non-free/memchr.c:50:[value] warning: function memchr: precondition 'valid' got status unknown.
+tests/non-free/memchr.c:101:[value] warning: function memchr: precondition 'valid' got status unknown.
 share/libc/string.h:56:[value] Cannot evaluate range bound memchr_off((char *)s, c, n)
     (unsupported ACSL construct: logic function memchr_off). Approximating
-tests/non-free/memchr.c:50:[value] warning: function memchr: precondition 'initialization' got status unknown.
-tests/non-free/memchr.c:50:[value] warning: function memchr: precondition 'danglingness' got status unknown.
+tests/non-free/memchr.c:101:[value] warning: function memchr: precondition 'initialization' got status unknown.
+tests/non-free/memchr.c:101:[value] warning: function memchr: precondition 'danglingness' got status unknown.
 share/libc/string.h:62:[value] cannot evaluate ACSL term, unsupported ACSL construct: logic function memchr
 share/libc/string.h:69:[value] cannot evaluate ACSL term, unsupported ACSL construct: logic function memchr
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ "abc" + {0; 1} }},{0},{4}))
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: {3}
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-tests/non-free/memchr.c:82:[value] assertion got status valid.
-[value] computing for function my_memchr <- memchr_small_sets <- main.
-    Called from tests/non-free/memchr.c:85.
-tests/non-free/memchr.c:50:[value] function memchr: precondition 'valid' got status valid.
-tests/non-free/memchr.c:50:[value] function memchr: precondition 'initialization' got status valid.
-tests/non-free/memchr.c:50:[value] function memchr: precondition 'danglingness' got status valid.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ "\000bc" + {0; 1} }},{0},{3}))
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: {0; 3}
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-tests/non-free/memchr.c:86:[value] assertion got status valid.
-[value] computing for function my_memchr <- memchr_small_sets <- main.
-    Called from tests/non-free/memchr.c:88.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ "" }},{0},{0}))
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: {-1}
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-tests/non-free/memchr.c:89:[value] assertion got status valid.
-[value] computing for function my_memchr <- memchr_small_sets <- main.
-    Called from tests/non-free/memchr.c:92.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ "b\000c" + {0; 2} }},{0},{2}))
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: {1; 3}
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-tests/non-free/memchr.c:93:[value] assertion got status valid.
-[value] computing for function my_memchr <- memchr_small_sets <- main.
-    Called from tests/non-free/memchr.c:97.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ (void const *)&t }},{0},{4}))
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: {-1; 0; 1}
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-tests/non-free/memchr.c:98:[value] assertion got status valid.
+tests/non-free/memchr.c:101:[value] Call to builtin Frama_C_memchr(({{ "abc" + {0; 1} }},{0},{4}))
+tests/non-free/memchr.c:101:[value] Frama_C_show_each_mymemchr: {3}
+tests/non-free/memchr.c:102:[value] assertion got status valid.
+tests/non-free/memchr.c:105:[value] function memchr: precondition 'valid' got status valid.
+tests/non-free/memchr.c:105:[value] function memchr: precondition 'initialization' got status valid.
+tests/non-free/memchr.c:105:[value] function memchr: precondition 'danglingness' got status valid.
+tests/non-free/memchr.c:105:[value] Call to builtin Frama_C_memchr(({{ "\000bc" + {0; 1} }},{0},{3}))
+tests/non-free/memchr.c:105:[value] Frama_C_show_each_mymemchr: {0; 3}
+tests/non-free/memchr.c:106:[value] assertion got status valid.
+tests/non-free/memchr.c:108:[value] function memchr: precondition 'valid' got status valid.
+tests/non-free/memchr.c:108:[value] function memchr: precondition 'initialization' got status valid.
+tests/non-free/memchr.c:108:[value] function memchr: precondition 'danglingness' got status valid.
+tests/non-free/memchr.c:108:[value] Call to builtin Frama_C_memchr(({{ "" }},{0},{0}))
+tests/non-free/memchr.c:108:[value] Frama_C_show_each_mymemchr: {-1}
+tests/non-free/memchr.c:109:[value] assertion got status valid.
+tests/non-free/memchr.c:112:[value] function memchr: precondition 'valid' got status valid.
+tests/non-free/memchr.c:112:[value] function memchr: precondition 'initialization' got status valid.
+tests/non-free/memchr.c:112:[value] function memchr: precondition 'danglingness' got status valid.
+tests/non-free/memchr.c:112:[value] Call to builtin Frama_C_memchr(({{ "b\000c" + {0; 2} }},{0},{2}))
+tests/non-free/memchr.c:112:[value] Frama_C_show_each_mymemchr: {1; 3}
+tests/non-free/memchr.c:113:[value] assertion got status valid.
+tests/non-free/memchr.c:117:[value] function memchr: precondition 'valid' got status valid.
+tests/non-free/memchr.c:117:[value] function memchr: precondition 'initialization' got status valid.
+tests/non-free/memchr.c:117:[value] function memchr: precondition 'danglingness' got status valid.
+tests/non-free/memchr.c:117:[value] Call to builtin Frama_C_memchr(({{ (void const *)&t }},{0},{4}))
+tests/non-free/memchr.c:117:[value] Frama_C_show_each_mymemchr: {-1; 0; 1}
+tests/non-free/memchr.c:118:[value] assertion got status valid.
 [value] Recording results for memchr_small_sets
 [value] Done for function memchr_small_sets
 [value] computing for function memchr_zero_termination <- main.
-    Called from tests/non-free/memchr.c:646.
-[value] computing for function my_memchr <- memchr_zero_termination <- main.
-    Called from tests/non-free/memchr.c:106.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ (void const *)&empty_or_non_terminated }},
+    Called from tests/non-free/memchr.c:664.
+tests/non-free/memchr.c:126:[value] function memchr: precondition 'valid' got status valid.
+tests/non-free/memchr.c:126:[value] function memchr: precondition 'initialization' got status valid.
+tests/non-free/memchr.c:126:[value] function memchr: precondition 'danglingness' got status valid.
+tests/non-free/memchr.c:126:[value] Call to builtin Frama_C_memchr(({{ (void const *)&empty_or_non_terminated }},
                                     {0},{1}))
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: {-1; 0}
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-tests/non-free/memchr.c:107:[value] assertion got status valid.
-[value] computing for function my_memchr <- memchr_zero_termination <- main.
-    Called from tests/non-free/memchr.c:111.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ (void const *)&non_terminated }},{0},{1}))
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: {-1}
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-tests/non-free/memchr.c:112:[value] assertion got status valid.
-[value] computing for function my_memchr <- memchr_zero_termination <- main.
-    Called from tests/non-free/memchr.c:113.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ (void const *)&non_terminated }},{0},{2}))
-tests/non-free/memchr.c:50:[value] builtin Frama_C_memchr: reading indeterminate data
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-[value] computing for function my_memchr <- memchr_zero_termination <- main.
-    Called from tests/non-free/memchr.c:119.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ (void const *)&non_terminated2{[2], [3]} }},
+tests/non-free/memchr.c:126:[value] Frama_C_show_each_mymemchr: {-1; 0}
+tests/non-free/memchr.c:127:[value] assertion got status valid.
+tests/non-free/memchr.c:131:[value] function memchr: precondition 'valid' got status valid.
+tests/non-free/memchr.c:131:[value] function memchr: precondition 'initialization' got status valid.
+tests/non-free/memchr.c:131:[value] function memchr: precondition 'danglingness' got status valid.
+tests/non-free/memchr.c:131:[value] Call to builtin Frama_C_memchr(({{ (void const *)&non_terminated }},{0},{1}))
+tests/non-free/memchr.c:131:[value] Frama_C_show_each_mymemchr: {-1}
+tests/non-free/memchr.c:132:[value] assertion got status valid.
+tests/non-free/memchr.c:133:[value] warning: function memchr: precondition 'valid' got status unknown.
+tests/non-free/memchr.c:133:[value] function memchr: precondition 'initialization' got status valid.
+tests/non-free/memchr.c:133:[value] warning: function memchr: precondition 'danglingness' got status unknown.
+tests/non-free/memchr.c:133:[value] Call to builtin Frama_C_memchr(({{ (void const *)&non_terminated }},{0},{2}))
+tests/non-free/memchr.c:133:[value] builtin Frama_C_memchr: reading indeterminate data
+tests/non-free/memchr.c:139:[value] warning: function memchr: precondition 'valid' got status unknown.
+tests/non-free/memchr.c:139:[value] warning: function memchr: precondition 'initialization' got status unknown.
+tests/non-free/memchr.c:139:[value] warning: function memchr: precondition 'danglingness' got status unknown.
+tests/non-free/memchr.c:139:[value] Call to builtin Frama_C_memchr(({{ (void const *)&non_terminated2{[2], [3]} }},
                                     {0},{4}))
-tests/non-free/memchr.c:50:[value] builtin Frama_C_memchr: reading indeterminate data
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
+tests/non-free/memchr.c:139:[value] builtin Frama_C_memchr: reading indeterminate data
 [value] Recording results for memchr_zero_termination
 [value] Done for function memchr_zero_termination
 [value] computing for function memchr_initialization <- main.
-    Called from tests/non-free/memchr.c:647.
-[value] computing for function my_memchr <- memchr_initialization <- main.
-    Called from tests/non-free/memchr.c:127.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ (void const *)&empty_or_uninitialized }},
+    Called from tests/non-free/memchr.c:665.
+tests/non-free/memchr.c:147:[value] function memchr: precondition 'valid' got status valid.
+tests/non-free/memchr.c:147:[value] warning: function memchr: precondition 'initialization' got status unknown.
+tests/non-free/memchr.c:147:[value] function memchr: precondition 'danglingness' got status valid.
+tests/non-free/memchr.c:147:[value] Call to builtin Frama_C_memchr(({{ (void const *)&empty_or_uninitialized }},
                                     {0},{1}))
-tests/non-free/memchr.c:50:[value] builtin Frama_C_memchr: possible uninitialized values
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: {0}
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-tests/non-free/memchr.c:128:[value] assertion got status valid.
-[value] computing for function my_memchr <- memchr_initialization <- main.
-    Called from tests/non-free/memchr.c:131.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ (void const *)&uninitialized }},{0},{1}))
-tests/non-free/memchr.c:50:[value] builtin Frama_C_memchr: reading indeterminate data
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-[value] computing for function my_memchr <- memchr_initialization <- main.
-    Called from tests/non-free/memchr.c:136.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ (void const *)&s }},{0},{2}))
-tests/non-free/memchr.c:50:[value] builtin Frama_C_memchr: possible uninitialized values
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: {1}
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-tests/non-free/memchr.c:137:[value] assertion got status valid.
-[value] computing for function my_memchr <- memchr_initialization <- main.
-    Called from tests/non-free/memchr.c:143.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ (void const *)&t }},{0},{4}))
-tests/non-free/memchr.c:50:[value] builtin Frama_C_memchr: possible uninitialized values
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: {3}
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-tests/non-free/memchr.c:144:[value] assertion got status valid.
+tests/non-free/memchr.c:147:[value] builtin Frama_C_memchr: possible uninitialized values
+tests/non-free/memchr.c:147:[value] Frama_C_show_each_mymemchr: {0}
+tests/non-free/memchr.c:148:[value] assertion got status valid.
+tests/non-free/memchr.c:151:[value] function memchr: precondition 'valid' got status valid.
+tests/non-free/memchr.c:151:[value] warning: function memchr: precondition 'initialization' got status unknown.
+tests/non-free/memchr.c:151:[value] function memchr: precondition 'danglingness' got status valid.
+tests/non-free/memchr.c:151:[value] Call to builtin Frama_C_memchr(({{ (void const *)&uninitialized }},{0},{1}))
+tests/non-free/memchr.c:151:[value] builtin Frama_C_memchr: reading indeterminate data
+tests/non-free/memchr.c:156:[value] function memchr: precondition 'valid' got status valid.
+tests/non-free/memchr.c:156:[value] function memchr: precondition 'initialization' got status valid.
+tests/non-free/memchr.c:156:[value] function memchr: precondition 'danglingness' got status valid.
+tests/non-free/memchr.c:156:[value] Call to builtin Frama_C_memchr(({{ (void const *)&s }},{0},{2}))
+tests/non-free/memchr.c:156:[value] builtin Frama_C_memchr: possible uninitialized values
+tests/non-free/memchr.c:156:[value] Frama_C_show_each_mymemchr: {1}
+tests/non-free/memchr.c:157:[value] assertion got status valid.
+tests/non-free/memchr.c:163:[value] function memchr: precondition 'valid' got status valid.
+tests/non-free/memchr.c:163:[value] function memchr: precondition 'initialization' got status valid.
+tests/non-free/memchr.c:163:[value] function memchr: precondition 'danglingness' got status valid.
+tests/non-free/memchr.c:163:[value] Call to builtin Frama_C_memchr(({{ (void const *)&t }},{0},{4}))
+tests/non-free/memchr.c:163:[value] builtin Frama_C_memchr: possible uninitialized values
+tests/non-free/memchr.c:163:[value] Frama_C_show_each_mymemchr: {3}
+tests/non-free/memchr.c:164:[value] assertion got status valid.
 [value] Recording results for memchr_initialization
 [value] Done for function memchr_initialization
 [value] computing for function memchr_large <- main.
-    Called from tests/non-free/memchr.c:648.
+    Called from tests/non-free/memchr.c:666.
 [value] computing for function init_array_nondet <- memchr_large <- main.
-    Called from tests/non-free/memchr.c:192.
-tests/non-free/memchr.c:184:[value] function memset: precondition got status valid.
-tests/non-free/memchr.c:184:[value] Call to builtin memset(({{ (void *)&a }},{1; 2},{100}))
+    Called from tests/non-free/memchr.c:212.
+tests/non-free/memchr.c:204:[value] function memset: precondition got status valid.
+tests/non-free/memchr.c:204:[value] Call to builtin memset(({{ (void *)&a }},{1; 2},{100}))
 [value] Recording results for init_array_nondet
 [value] Done for function init_array_nondet
 [value] computing for function Frama_C_interval <- memchr_large <- main.
-    Called from tests/non-free/memchr.c:195.
+    Called from tests/non-free/memchr.c:215.
 [value] using specification for function Frama_C_interval
-tests/non-free/memchr.c:195:[value] function Frama_C_interval: precondition got status valid.
+tests/non-free/memchr.c:215:[value] function Frama_C_interval: precondition got status valid.
 [value] Done for function Frama_C_interval
-[value] computing for function my_memchr <- memchr_large <- main.
-    Called from tests/non-free/memchr.c:196.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ &a + [3..30] }},{0},{100}))
-tests/non-free/memchr.c:50:[value] builtin Frama_C_memchr:
+tests/non-free/memchr.c:216:[value] warning: function memchr: precondition 'valid' got status unknown.
+tests/non-free/memchr.c:216:[value] warning: function memchr: precondition 'initialization' got status unknown.
+tests/non-free/memchr.c:216:[value] warning: function memchr: precondition 'danglingness' got status unknown.
+tests/non-free/memchr.c:216:[value] Call to builtin Frama_C_memchr(({{ &a + [3..30] }},{0},{100}))
+tests/non-free/memchr.c:216:[value] builtin Frama_C_memchr:
     range too large and/or imprecise, approximating
     possible uninitialized values
     possible escaping addresses
     possibly reading indeterminate data
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: [-1..75]
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-tests/non-free/memchr.c:197:[value] assertion got status valid.
-tests/non-free/memchr.c:198:[value] warning: assertion 'refined' got status unknown.
+tests/non-free/memchr.c:216:[value] Frama_C_show_each_mymemchr: [-1..75]
+tests/non-free/memchr.c:217:[value] assertion got status valid.
+tests/non-free/memchr.c:218:[value] warning: assertion 'refined' got status unknown.
 [value] computing for function Frama_C_interval <- memchr_large <- main.
-    Called from tests/non-free/memchr.c:200.
-tests/non-free/memchr.c:200:[value] function Frama_C_interval: precondition got status valid.
+    Called from tests/non-free/memchr.c:220.
+tests/non-free/memchr.c:220:[value] function Frama_C_interval: precondition got status valid.
 [value] Done for function Frama_C_interval
-[value] computing for function my_memchr <- memchr_large <- main.
-    Called from tests/non-free/memchr.c:201.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ &a + [5..17] }},{0},{100}))
-tests/non-free/memchr.c:50:[value] builtin Frama_C_memchr:
+tests/non-free/memchr.c:221:[value] warning: function memchr: precondition 'valid' got status unknown.
+tests/non-free/memchr.c:221:[value] warning: function memchr: precondition 'initialization' got status unknown.
+tests/non-free/memchr.c:221:[value] warning: function memchr: precondition 'danglingness' got status unknown.
+tests/non-free/memchr.c:221:[value] Call to builtin Frama_C_memchr(({{ &a + [5..17] }},{0},{100}))
+tests/non-free/memchr.c:221:[value] builtin Frama_C_memchr:
     range too large and/or imprecise, approximating
     possible uninitialized values
     possible escaping addresses
     possibly reading indeterminate data
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: [-1..20]
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-tests/non-free/memchr.c:202:[value] assertion got status valid.
-tests/non-free/memchr.c:203:[value] warning: assertion 'refined' got status unknown.
+tests/non-free/memchr.c:221:[value] Frama_C_show_each_mymemchr: [-1..20]
+tests/non-free/memchr.c:222:[value] assertion got status valid.
+tests/non-free/memchr.c:223:[value] warning: assertion 'refined' got status unknown.
 [value] computing for function Frama_C_interval <- memchr_large <- main.
-    Called from tests/non-free/memchr.c:205.
-tests/non-free/memchr.c:205:[value] function Frama_C_interval: precondition got status valid.
+    Called from tests/non-free/memchr.c:225.
+tests/non-free/memchr.c:225:[value] function Frama_C_interval: precondition got status valid.
 [value] Done for function Frama_C_interval
-[value] computing for function my_memchr <- memchr_large <- main.
-    Called from tests/non-free/memchr.c:206.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ &a + [60..74] }},{0},{100}))
-tests/non-free/memchr.c:50:[value] builtin Frama_C_memchr:
+tests/non-free/memchr.c:226:[value] warning: function memchr: precondition 'valid' got status unknown.
+tests/non-free/memchr.c:226:[value] warning: function memchr: precondition 'initialization' got status unknown.
+tests/non-free/memchr.c:226:[value] warning: function memchr: precondition 'danglingness' got status unknown.
+tests/non-free/memchr.c:226:[value] Call to builtin Frama_C_memchr(({{ &a + [60..74] }},{0},{100}))
+tests/non-free/memchr.c:226:[value] builtin Frama_C_memchr:
     range too large and/or imprecise, approximating
     possible uninitialized values
     possible escaping addresses
     possibly reading indeterminate data
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: [-1..75]
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-tests/non-free/memchr.c:207:[value] assertion got status valid.
-tests/non-free/memchr.c:208:[value] warning: assertion 'refined' got status unknown.
+tests/non-free/memchr.c:226:[value] Frama_C_show_each_mymemchr: [-1..75]
+tests/non-free/memchr.c:227:[value] assertion got status valid.
+tests/non-free/memchr.c:228:[value] warning: assertion 'refined' got status unknown.
 [value] computing for function Frama_C_interval <- memchr_large <- main.
-    Called from tests/non-free/memchr.c:210.
-tests/non-free/memchr.c:210:[value] function Frama_C_interval: precondition got status valid.
+    Called from tests/non-free/memchr.c:230.
+tests/non-free/memchr.c:230:[value] function Frama_C_interval: precondition got status valid.
 [value] Done for function Frama_C_interval
-[value] computing for function my_memchr <- memchr_large <- main.
-    Called from tests/non-free/memchr.c:211.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ &a + [63..80] }},{0},{100}))
-tests/non-free/memchr.c:50:[value] builtin Frama_C_memchr:
+tests/non-free/memchr.c:231:[value] warning: function memchr: precondition 'valid' got status unknown.
+tests/non-free/memchr.c:231:[value] warning: function memchr: precondition 'initialization' got status unknown.
+tests/non-free/memchr.c:231:[value] warning: function memchr: precondition 'danglingness' got status unknown.
+tests/non-free/memchr.c:231:[value] Call to builtin Frama_C_memchr(({{ &a + [63..80] }},{0},{100}))
+tests/non-free/memchr.c:231:[value] builtin Frama_C_memchr:
     range too large and/or imprecise, approximating
     possible uninitialized values
     possible escaping addresses
     possibly reading indeterminate data
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: [-1..79]
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-tests/non-free/memchr.c:212:[value] assertion got status valid.
-tests/non-free/memchr.c:213:[value] warning: assertion 'refined' got status unknown.
+tests/non-free/memchr.c:231:[value] Frama_C_show_each_mymemchr: [-1..79]
+tests/non-free/memchr.c:232:[value] assertion got status valid.
+tests/non-free/memchr.c:233:[value] warning: assertion 'refined' got status unknown.
 [value] computing for function init_array_nondet <- memchr_large <- main.
-    Called from tests/non-free/memchr.c:215.
-tests/non-free/memchr.c:184:[value] Call to builtin memset(({{ (void *)&a }},{0; 2},{100}))
+    Called from tests/non-free/memchr.c:235.
+tests/non-free/memchr.c:204:[value] Call to builtin memset(({{ (void *)&a }},{0; 2},{100}))
 [value] Recording results for init_array_nondet
 [value] Done for function init_array_nondet
 [value] computing for function Frama_C_interval <- memchr_large <- main.
-    Called from tests/non-free/memchr.c:216.
-tests/non-free/memchr.c:216:[value] function Frama_C_interval: precondition got status valid.
+    Called from tests/non-free/memchr.c:236.
+tests/non-free/memchr.c:236:[value] function Frama_C_interval: precondition got status valid.
 [value] Done for function Frama_C_interval
-[value] computing for function my_memchr <- memchr_large <- main.
-    Called from tests/non-free/memchr.c:217.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ &a + [50..70] }},{0},{100}))
-tests/non-free/memchr.c:50:[value] builtin Frama_C_memchr:
+tests/non-free/memchr.c:237:[value] warning: function memchr: precondition 'valid' got status unknown.
+tests/non-free/memchr.c:237:[value] warning: function memchr: precondition 'initialization' got status unknown.
+tests/non-free/memchr.c:237:[value] warning: function memchr: precondition 'danglingness' got status unknown.
+tests/non-free/memchr.c:237:[value] Call to builtin Frama_C_memchr(({{ &a + [50..70] }},{0},{100}))
+tests/non-free/memchr.c:237:[value] builtin Frama_C_memchr:
     range too large and/or imprecise, approximating
     possible uninitialized values
     possible escaping addresses
     possibly reading indeterminate data
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: [-1..99]
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-tests/non-free/memchr.c:218:[value] assertion got status valid.
-tests/non-free/memchr.c:219:[value] warning: assertion 'refined' got status unknown.
+tests/non-free/memchr.c:237:[value] Frama_C_show_each_mymemchr: [-1..99]
+tests/non-free/memchr.c:238:[value] assertion got status valid.
+tests/non-free/memchr.c:239:[value] warning: assertion 'refined' got status unknown.
 [value] Recording results for memchr_large
 [value] Done for function memchr_large
 [value] computing for function memchr_large_uninit <- main.
-    Called from tests/non-free/memchr.c:649.
+    Called from tests/non-free/memchr.c:667.
 [value] computing for function init_array_nondet <- memchr_large_uninit <- main.
-    Called from tests/non-free/memchr.c:226.
-tests/non-free/memchr.c:184:[value] Call to builtin memset(({{ (void *)&a }},{1; 2},{40}))
+    Called from tests/non-free/memchr.c:246.
+tests/non-free/memchr.c:204:[value] Call to builtin memset(({{ (void *)&a }},{1; 2},{40}))
 [value] Recording results for init_array_nondet
 [value] Done for function init_array_nondet
 [value] computing for function init_array_nondet <- memchr_large_uninit <- main.
-    Called from tests/non-free/memchr.c:227.
-tests/non-free/memchr.c:184:[value] Call to builtin memset(({{ (void *)&a[50] }},{3; 4},{45}))
+    Called from tests/non-free/memchr.c:247.
+tests/non-free/memchr.c:204:[value] Call to builtin memset(({{ (void *)&a[50] }},{3; 4},{45}))
 [value] Recording results for init_array_nondet
 [value] Done for function init_array_nondet
 [value] computing for function Frama_C_interval <- memchr_large_uninit <- main.
-    Called from tests/non-free/memchr.c:231.
-tests/non-free/memchr.c:231:[value] function Frama_C_interval: precondition got status valid.
+    Called from tests/non-free/memchr.c:251.
+tests/non-free/memchr.c:251:[value] function Frama_C_interval: precondition got status valid.
 [value] Done for function Frama_C_interval
-[value] computing for function my_memchr <- memchr_large_uninit <- main.
-    Called from tests/non-free/memchr.c:232.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ &a + [3..30] }},{0},{100}))
-tests/non-free/memchr.c:50:[value] builtin Frama_C_memchr:
+tests/non-free/memchr.c:252:[value] warning: function memchr: precondition 'valid' got status unknown.
+tests/non-free/memchr.c:252:[value] warning: function memchr: precondition 'initialization' got status unknown.
+tests/non-free/memchr.c:252:[value] warning: function memchr: precondition 'danglingness' got status unknown.
+tests/non-free/memchr.c:252:[value] Call to builtin Frama_C_memchr(({{ &a + [3..30] }},{0},{100}))
+tests/non-free/memchr.c:252:[value] builtin Frama_C_memchr:
     range too large and/or imprecise, approximating
     possible uninitialized values
     possible escaping addresses
     possibly reading indeterminate data
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: [-1..29]
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-tests/non-free/memchr.c:233:[value] assertion got status valid.
-tests/non-free/memchr.c:234:[value] warning: assertion 'refined' got status unknown.
+tests/non-free/memchr.c:252:[value] Frama_C_show_each_mymemchr: [-1..29]
+tests/non-free/memchr.c:253:[value] assertion got status valid.
+tests/non-free/memchr.c:254:[value] warning: assertion 'refined' got status unknown.
 [value] computing for function Frama_C_interval <- memchr_large_uninit <- main.
-    Called from tests/non-free/memchr.c:237.
-tests/non-free/memchr.c:237:[value] function Frama_C_interval: precondition got status valid.
+    Called from tests/non-free/memchr.c:257.
+tests/non-free/memchr.c:257:[value] function Frama_C_interval: precondition got status valid.
 [value] Done for function Frama_C_interval
-[value] computing for function my_memchr <- memchr_large_uninit <- main.
-    Called from tests/non-free/memchr.c:238.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ &a + [63..80] }},{0},{100}))
-tests/non-free/memchr.c:50:[value] builtin Frama_C_memchr:
+tests/non-free/memchr.c:258:[value] warning: function memchr: precondition 'valid' got status unknown.
+tests/non-free/memchr.c:258:[value] warning: function memchr: precondition 'initialization' got status unknown.
+tests/non-free/memchr.c:258:[value] warning: function memchr: precondition 'danglingness' got status unknown.
+tests/non-free/memchr.c:258:[value] Call to builtin Frama_C_memchr(({{ &a + [63..80] }},{0},{100}))
+tests/non-free/memchr.c:258:[value] builtin Frama_C_memchr:
     range too large and/or imprecise, approximating
     possible uninitialized values
     possible escaping addresses
     possibly reading indeterminate data
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: [-1..79]
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-tests/non-free/memchr.c:239:[value] assertion got status valid.
-tests/non-free/memchr.c:240:[value] warning: assertion 'refined' got status unknown.
+tests/non-free/memchr.c:258:[value] Frama_C_show_each_mymemchr: [-1..79]
+tests/non-free/memchr.c:259:[value] assertion got status valid.
+tests/non-free/memchr.c:260:[value] warning: assertion 'refined' got status unknown.
 [value] computing for function Frama_C_interval <- memchr_large_uninit <- main.
-    Called from tests/non-free/memchr.c:242.
-tests/non-free/memchr.c:242:[value] function Frama_C_interval: precondition got status valid.
+    Called from tests/non-free/memchr.c:262.
+tests/non-free/memchr.c:262:[value] function Frama_C_interval: precondition got status valid.
 [value] Done for function Frama_C_interval
-[value] computing for function my_memchr <- memchr_large_uninit <- main.
-    Called from tests/non-free/memchr.c:243.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ &a + [45..55] }},{0},{100}))
-tests/non-free/memchr.c:50:[value] builtin Frama_C_memchr:
+tests/non-free/memchr.c:263:[value] warning: function memchr: precondition 'valid' got status unknown.
+tests/non-free/memchr.c:263:[value] warning: function memchr: precondition 'initialization' got status unknown.
+tests/non-free/memchr.c:263:[value] warning: function memchr: precondition 'danglingness' got status unknown.
+tests/non-free/memchr.c:263:[value] Call to builtin Frama_C_memchr(({{ &a + [45..55] }},{0},{100}))
+tests/non-free/memchr.c:263:[value] builtin Frama_C_memchr:
     range too large and/or imprecise, approximating
     possible uninitialized values
     possible escaping addresses
     possibly reading indeterminate data
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: [-1..75]
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-tests/non-free/memchr.c:244:[value] assertion got status valid.
-tests/non-free/memchr.c:245:[value] warning: assertion 'refined' got status unknown.
+tests/non-free/memchr.c:263:[value] Frama_C_show_each_mymemchr: [-1..75]
+tests/non-free/memchr.c:264:[value] assertion got status valid.
+tests/non-free/memchr.c:265:[value] warning: assertion 'refined' got status unknown.
 [value] Recording results for memchr_large_uninit
 [value] Done for function memchr_large_uninit
 [value] computing for function memchr_misc_array <- main.
-    Called from tests/non-free/memchr.c:650.
+    Called from tests/non-free/memchr.c:668.
 [value] computing for function Frama_C_interval <- memchr_misc_array <- main.
-    Called from tests/non-free/memchr.c:267.
-tests/non-free/memchr.c:267:[value] function Frama_C_interval: precondition got status valid.
+    Called from tests/non-free/memchr.c:287.
+tests/non-free/memchr.c:287:[value] function Frama_C_interval: precondition got status valid.
 [value] Done for function Frama_C_interval
-[value] computing for function my_memchr <- memchr_misc_array <- main.
-    Called from tests/non-free/memchr.c:268.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ "" ; "a" ; "aa" ; "aaa" ; "aaaa" ;
+tests/non-free/memchr.c:288:[value] warning: function memchr: precondition 'valid' got status unknown.
+tests/non-free/memchr.c:288:[value] warning: function memchr: precondition 'initialization' got status unknown.
+tests/non-free/memchr.c:288:[value] warning: function memchr: precondition 'danglingness' got status unknown.
+tests/non-free/memchr.c:288:[value] Call to builtin Frama_C_memchr(({{ "" ; "a" ; "aa" ; "aaa" ; "aaaa" ;
                                        "aaaaa" ; "aaaaaa" ; "aaaaaaaaa" ;
                                        "aaaaaaaaaa" ; "aaaaaaaaaaa" ;
                                        "aaaaaaaaaaaa" ; "aaaaaaaaaaaaa" }},
                                     {0},{14}))
-tests/non-free/memchr.c:55:[value] warning: pointer subtraction. assert \base_addr(ss) ≡ \base_addr((char *)p);
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: [0..13]
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-tests/non-free/memchr.c:269:[value] assertion got status valid.
+tests/non-free/memchr.c:288:[value] warning: pointer subtraction. assert \base_addr(_ss) ≡ \base_addr(tab_str[i]);
+tests/non-free/memchr.c:288:[value] Frama_C_show_each_mymemchr: [0..13]
+tests/non-free/memchr.c:289:[value] assertion got status valid.
 [value] Recording results for memchr_misc_array
 [value] Done for function memchr_misc_array
 [value] computing for function memchr_misc <- main.
-    Called from tests/non-free/memchr.c:651.
-[value] computing for function my_memchr <- memchr_misc <- main.
-    Called from tests/non-free/memchr.c:299.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ (void const *)&unterminated_string }},
+    Called from tests/non-free/memchr.c:669.
+tests/non-free/memchr.c:318:[value] warning: function memchr: precondition 'valid' got status unknown.
+tests/non-free/memchr.c:318:[value] warning: function memchr: precondition 'initialization' got status unknown.
+tests/non-free/memchr.c:318:[value] warning: function memchr: precondition 'danglingness' got status unknown.
+tests/non-free/memchr.c:318:[value] Call to builtin Frama_C_memchr(({{ (void const *)&unterminated_string }},
                                     {0},{13}))
-tests/non-free/memchr.c:50:[value] builtin Frama_C_memchr: reading indeterminate data
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-[value] computing for function my_memchr <- memchr_misc <- main.
-    Called from tests/non-free/memchr.c:302.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ "Hello World\n" ; "Bonjour Monde\n" }},
+tests/non-free/memchr.c:318:[value] builtin Frama_C_memchr: reading indeterminate data
+tests/non-free/memchr.c:321:[value] warning: function memchr: precondition 'valid' got status unknown.
+tests/non-free/memchr.c:321:[value] warning: function memchr: precondition 'initialization' got status unknown.
+tests/non-free/memchr.c:321:[value] warning: function memchr: precondition 'danglingness' got status unknown.
+tests/non-free/memchr.c:321:[value] Call to builtin Frama_C_memchr(({{ "Hello World\n" ; "Bonjour Monde\n" }},
                                     {0},{15}))
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: {12; 14}
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-tests/non-free/memchr.c:303:[value] assertion got status valid.
-[value] computing for function my_memchr2 <- memchr_misc <- main.
-    Called from tests/non-free/memchr.c:305.
-tests/non-free/memchr.c:64:[value] warning: function memchr: precondition 'valid' got status unknown.
-tests/non-free/memchr.c:64:[value] warning: function memchr: precondition 'initialization' got status unknown.
-tests/non-free/memchr.c:64:[value] warning: function memchr: precondition 'danglingness' got status unknown.
-tests/non-free/memchr.c:64:[value] Call to builtin Frama_C_memchr(({{ &x + {0; 3} }},{0},{12}))
-tests/non-free/memchr.c:64:[value] builtin Frama_C_memchr: possibly reading indeterminate data
-tests/non-free/memchr.c:71:[value] Frama_C_show_each_mymemchr2: {0}
-[value] Recording results for my_memchr2
-[value] Done for function my_memchr2
-tests/non-free/memchr.c:306:[value] assertion got status valid.
-[value] computing for function my_memchr <- memchr_misc <- main.
-    Called from tests/non-free/memchr.c:308.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ (void const *)&loc_char_array }},{0},{5}))
-tests/non-free/memchr.c:50:[value] builtin Frama_C_memchr: reading indeterminate data
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-[value] computing for function my_memchr <- memchr_misc <- main.
-    Called from tests/non-free/memchr.c:309.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ "abc\000\000\000abc" }},{0},{9}))
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: {3}
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-tests/non-free/memchr.c:310:[value] assertion got status valid.
-[value] computing for function my_memchr <- memchr_misc <- main.
-    Called from tests/non-free/memchr.c:311.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ "abc\000\000\000abc" + {4} }},{0},{9}))
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: {4}
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-tests/non-free/memchr.c:312:[value] assertion got status valid.
-[value] computing for function my_memchr <- memchr_misc <- main.
-    Called from tests/non-free/memchr.c:313.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ "abc\000\000\000abc" + {5} }},{0},{9}))
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: {5}
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-tests/non-free/memchr.c:314:[value] assertion got status valid.
-[value] computing for function my_memchr <- memchr_misc <- main.
-    Called from tests/non-free/memchr.c:315.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ "abc\000\000\000abc" + {6} }},{0},{9}))
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: {9}
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-tests/non-free/memchr.c:316:[value] assertion got status valid.
+tests/non-free/memchr.c:321:[value] warning: pointer subtraction. assert \base_addr(_ss) ≡ \base_addr(str);
+tests/non-free/memchr.c:321:[value] Frama_C_show_each_mymemchr: {12; 14}
+tests/non-free/memchr.c:322:[value] assertion got status valid.
+tests/non-free/memchr.c:324:[value] warning: function memchr: precondition 'valid' got status unknown.
+tests/non-free/memchr.c:324:[value] warning: function memchr: precondition 'initialization' got status unknown.
+tests/non-free/memchr.c:324:[value] warning: function memchr: precondition 'danglingness' got status unknown.
+tests/non-free/memchr.c:324:[value] Call to builtin Frama_C_memchr(({{ &x + {0; 3} }},{0},{12}))
+tests/non-free/memchr.c:324:[value] builtin Frama_C_memchr: possibly reading indeterminate data
+tests/non-free/memchr.c:324:[value] Frama_C_show_each_mymemchr2: {0}
+tests/non-free/memchr.c:325:[value] assertion got status valid.
+tests/non-free/memchr.c:327:[value] function memchr: precondition 'valid' got status valid.
+tests/non-free/memchr.c:327:[value] warning: function memchr: precondition 'initialization' got status unknown.
+tests/non-free/memchr.c:327:[value] function memchr: precondition 'danglingness' got status valid.
+tests/non-free/memchr.c:327:[value] Call to builtin Frama_C_memchr(({{ (void const *)&loc_char_array }},{0},{5}))
+tests/non-free/memchr.c:327:[value] builtin Frama_C_memchr: reading indeterminate data
+tests/non-free/memchr.c:328:[value] function memchr: precondition 'valid' got status valid.
+tests/non-free/memchr.c:328:[value] function memchr: precondition 'initialization' got status valid.
+tests/non-free/memchr.c:328:[value] function memchr: precondition 'danglingness' got status valid.
+tests/non-free/memchr.c:328:[value] Call to builtin Frama_C_memchr(({{ "abc\000\000\000abc" }},{0},{9}))
+tests/non-free/memchr.c:328:[value] Frama_C_show_each_mymemchr: {3}
+tests/non-free/memchr.c:329:[value] assertion got status valid.
+tests/non-free/memchr.c:330:[value] warning: function memchr: precondition 'valid' got status unknown.
+tests/non-free/memchr.c:330:[value] warning: function memchr: precondition 'initialization' got status unknown.
+tests/non-free/memchr.c:330:[value] warning: function memchr: precondition 'danglingness' got status unknown.
+tests/non-free/memchr.c:330:[value] Call to builtin Frama_C_memchr(({{ "abc\000\000\000abc" + {4} }},{0},{9}))
+tests/non-free/memchr.c:330:[value] Frama_C_show_each_mymemchr: {4}
+tests/non-free/memchr.c:331:[value] assertion got status valid.
+tests/non-free/memchr.c:332:[value] warning: function memchr: precondition 'valid' got status unknown.
+tests/non-free/memchr.c:332:[value] warning: function memchr: precondition 'initialization' got status unknown.
+tests/non-free/memchr.c:332:[value] warning: function memchr: precondition 'danglingness' got status unknown.
+tests/non-free/memchr.c:332:[value] Call to builtin Frama_C_memchr(({{ "abc\000\000\000abc" + {5} }},{0},{9}))
+tests/non-free/memchr.c:332:[value] Frama_C_show_each_mymemchr: {5}
+tests/non-free/memchr.c:333:[value] assertion got status valid.
+tests/non-free/memchr.c:334:[value] warning: function memchr: precondition 'valid' got status unknown.
+tests/non-free/memchr.c:334:[value] warning: function memchr: precondition 'initialization' got status unknown.
+tests/non-free/memchr.c:334:[value] warning: function memchr: precondition 'danglingness' got status unknown.
+tests/non-free/memchr.c:334:[value] Call to builtin Frama_C_memchr(({{ "abc\000\000\000abc" + {6} }},{0},{9}))
+tests/non-free/memchr.c:334:[value] Frama_C_show_each_mymemchr: {9}
+tests/non-free/memchr.c:335:[value] assertion got status valid.
 [value] Recording results for memchr_misc
 [value] Done for function memchr_misc
 [value] computing for function memchr_misc2 <- main.
-    Called from tests/non-free/memchr.c:652.
-[value] computing for function my_memchr2 <- memchr_misc2 <- main.
-    Called from tests/non-free/memchr.c:325.
-tests/non-free/memchr.c:64:[value] Call to builtin Frama_C_memchr(({{ "abc" + {0; 1} ; "ABCD" + {0; 1} }},
+    Called from tests/non-free/memchr.c:670.
+tests/non-free/memchr.c:343:[value] warning: function memchr: precondition 'valid' got status unknown.
+tests/non-free/memchr.c:343:[value] warning: function memchr: precondition 'initialization' got status unknown.
+tests/non-free/memchr.c:343:[value] warning: function memchr: precondition 'danglingness' got status unknown.
+tests/non-free/memchr.c:343:[value] Call to builtin Frama_C_memchr(({{ "abc" + {0; 1} ; "ABCD" + {0; 1} }},
                                     {0},{5}))
-tests/non-free/memchr.c:69:[value] warning: pointer subtraction. assert \base_addr(s) ≡ \base_addr((char *)base);
-tests/non-free/memchr.c:71:[value] Frama_C_show_each_mymemchr2: {3; 4}
-[value] Recording results for my_memchr2
-[value] Done for function my_memchr2
-tests/non-free/memchr.c:326:[value] assertion got status valid.
-[value] computing for function my_memchr2 <- memchr_misc2 <- main.
-    Called from tests/non-free/memchr.c:329.
-tests/non-free/memchr.c:64:[value] Call to builtin Frama_C_memchr(({{ "efg" + {1; 2} ; "EFGH" + {1; 2} }},
+tests/non-free/memchr.c:343:[value] warning: pointer subtraction. assert \base_addr(_ss) ≡ \base_addr(s1);
+tests/non-free/memchr.c:343:[value] Frama_C_show_each_mymemchr2: {3; 4}
+tests/non-free/memchr.c:344:[value] assertion got status valid.
+tests/non-free/memchr.c:347:[value] warning: function memchr: precondition 'valid' got status unknown.
+tests/non-free/memchr.c:347:[value] warning: function memchr: precondition 'initialization' got status unknown.
+tests/non-free/memchr.c:347:[value] warning: function memchr: precondition 'danglingness' got status unknown.
+tests/non-free/memchr.c:347:[value] Call to builtin Frama_C_memchr(({{ "efg" + {1; 2} ; "EFGH" + {1; 2} }},
                                     {0},{5}))
-tests/non-free/memchr.c:71:[value] Frama_C_show_each_mymemchr2: {3; 4}
-[value] Recording results for my_memchr2
-[value] Done for function my_memchr2
-tests/non-free/memchr.c:330:[value] assertion got status valid.
-tests/non-free/memchr.c:333:[value] entering loop for the first time
-[value] computing for function my_memchr <- memchr_misc2 <- main.
-    Called from tests/non-free/memchr.c:334.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ "mno\000pqr" ; "MNOP\000QRS" }},{0},{10}))
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: {3; 4}
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-tests/non-free/memchr.c:335:[value] assertion got status valid.
-[value] computing for function my_memchr <- memchr_misc2 <- main.
-    Called from tests/non-free/memchr.c:334.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ "mno\000pqr" + {0; 1} ;
+tests/non-free/memchr.c:347:[value] warning: pointer subtraction. assert \base_addr(_ss_0) ≡ \base_addr(s1);
+tests/non-free/memchr.c:347:[value] Frama_C_show_each_mymemchr2: {3; 4}
+tests/non-free/memchr.c:348:[value] assertion got status valid.
+tests/non-free/memchr.c:351:[value] entering loop for the first time
+tests/non-free/memchr.c:352:[value] warning: function memchr: precondition 'valid' got status unknown.
+tests/non-free/memchr.c:352:[value] warning: function memchr: precondition 'initialization' got status unknown.
+tests/non-free/memchr.c:352:[value] warning: function memchr: precondition 'danglingness' got status unknown.
+tests/non-free/memchr.c:352:[value] Call to builtin Frama_C_memchr(({{ "mno\000pqr" ; "MNOP\000QRS" }},{0},{10}))
+tests/non-free/memchr.c:352:[value] warning: pointer subtraction. assert \base_addr(_ss_1) ≡ \base_addr(s1);
+tests/non-free/memchr.c:352:[value] Frama_C_show_each_mymemchr: {3; 4}
+tests/non-free/memchr.c:353:[value] assertion got status valid.
+tests/non-free/memchr.c:352:[value] Call to builtin Frama_C_memchr(({{ "mno\000pqr" + {0; 1} ;
                                        "MNOP\000QRS" + {0; 1} }},{0},{10}))
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: {3; 4}
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-[value] computing for function my_memchr <- memchr_misc2 <- main.
-    Called from tests/non-free/memchr.c:334.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ "mno\000pqr" + {0; 1; 2} ;
+tests/non-free/memchr.c:352:[value] Frama_C_show_each_mymemchr: {3; 4}
+tests/non-free/memchr.c:352:[value] Call to builtin Frama_C_memchr(({{ "mno\000pqr" + {0; 1; 2} ;
                                        "MNOP\000QRS" + {0; 1; 2} }},{0},{10}))
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: {3; 4}
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-[value] computing for function my_memchr <- memchr_misc2 <- main.
-    Called from tests/non-free/memchr.c:334.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ "mno\000pqr" + {0; 1; 2; 3; 4; 5; 6; 7} ;
-                                       "MNOP\000QRS" + {0; 1; 2; 3; 4; 5; 6; 7} }},
-                                    {0},{10}))
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: {3; 4; 7; 8}
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-[value] computing for function my_memchr <- memchr_misc2 <- main.
-    Called from tests/non-free/memchr.c:334.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ "mno\000pqr" + {0; 1; 2; 3; 4; 5; 6; 7} ;
+tests/non-free/memchr.c:352:[value] Frama_C_show_each_mymemchr: {3; 4}
+tests/non-free/memchr.c:352:[value] Call to builtin Frama_C_memchr(({{ "mno\000pqr" + {0; 1; 2; 3; 4; 5; 6; 7} ;
                                        "MNOP\000QRS" + {0; 1; 2; 3; 4; 5; 6; 7} }},
                                     {0},{10}))
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: {3; 4; 7; 8}
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-[value] computing for function my_memchr <- memchr_misc2 <- main.
-    Called from tests/non-free/memchr.c:341.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ (void const *)&maybe_init }},{0},{2}))
-tests/non-free/memchr.c:50:[value] builtin Frama_C_memchr: possible uninitialized values
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: {1}
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-tests/non-free/memchr.c:342:[value] assertion got status valid.
+tests/non-free/memchr.c:352:[value] Frama_C_show_each_mymemchr: {3; 4; 7; 8}
+tests/non-free/memchr.c:359:[value] function memchr: precondition 'valid' got status valid.
+tests/non-free/memchr.c:359:[value] function memchr: precondition 'initialization' got status valid.
+tests/non-free/memchr.c:359:[value] function memchr: precondition 'danglingness' got status valid.
+tests/non-free/memchr.c:359:[value] Call to builtin Frama_C_memchr(({{ (void const *)&maybe_init }},{0},{2}))
+tests/non-free/memchr.c:359:[value] builtin Frama_C_memchr: possible uninitialized values
+tests/non-free/memchr.c:359:[value] Frama_C_show_each_mymemchr: {1}
+tests/non-free/memchr.c:360:[value] assertion got status valid.
 [value] Recording results for memchr_misc2
 [value] Done for function memchr_misc2
 [value] computing for function memchr_bitfields <- main.
-    Called from tests/non-free/memchr.c:653.
-tests/non-free/memchr.c:161:[value] function memchr: precondition 'valid' got status valid.
-tests/non-free/memchr.c:161:[value] warning: function memchr: precondition 'initialization' got status unknown.
-tests/non-free/memchr.c:161:[value] function memchr: precondition 'danglingness' got status valid.
-tests/non-free/memchr.c:161:[value] Call to builtin Frama_C_memchr(({{ (void const *)&s }},{0},{3}))
-tests/non-free/memchr.c:161:[value] builtin Frama_C_memchr: reading indeterminate data
+    Called from tests/non-free/memchr.c:671.
+tests/non-free/memchr.c:181:[value] function memchr: precondition 'valid' got status valid.
+tests/non-free/memchr.c:181:[value] warning: function memchr: precondition 'initialization' got status unknown.
+tests/non-free/memchr.c:181:[value] function memchr: precondition 'danglingness' got status valid.
+tests/non-free/memchr.c:181:[value] Call to builtin Frama_C_memchr(({{ (void const *)&s }},{0},{3}))
+tests/non-free/memchr.c:181:[value] builtin Frama_C_memchr: reading indeterminate data
 [value] Recording results for memchr_bitfields
 [value] Done for function memchr_bitfields
 [value] computing for function memchr_bitfields2 <- main.
-    Called from tests/non-free/memchr.c:654.
-[value] computing for function my_memchr <- memchr_bitfields2 <- main.
-    Called from tests/non-free/memchr.c:178.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ (void const *)&s }},{0},{3}))
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: {2}
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-tests/non-free/memchr.c:179:[value] assertion got status valid.
+    Called from tests/non-free/memchr.c:672.
+tests/non-free/memchr.c:198:[value] function memchr: precondition 'valid' got status valid.
+tests/non-free/memchr.c:198:[value] function memchr: precondition 'initialization' got status valid.
+tests/non-free/memchr.c:198:[value] function memchr: precondition 'danglingness' got status valid.
+tests/non-free/memchr.c:198:[value] Call to builtin Frama_C_memchr(({{ (void const *)&s }},{0},{3}))
+tests/non-free/memchr.c:198:[value] Frama_C_show_each_mymemchr: {2}
+tests/non-free/memchr.c:199:[value] assertion got status valid.
 [value] Recording results for memchr_bitfields2
 [value] Done for function memchr_bitfields2
 [value] computing for function memchr_escaping <- main.
-    Called from tests/non-free/memchr.c:655.
-tests/non-free/memchr.c:255:[value] warning: locals {x} escaping the scope of a block of memchr_escaping through s
-[value] computing for function my_memchr <- memchr_escaping <- main.
-    Called from tests/non-free/memchr.c:258.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ (void const *)&s }},{0},{4}))
-tests/non-free/memchr.c:50:[value] builtin Frama_C_memchr: possible escaping addresses
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: {0}
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-tests/non-free/memchr.c:259:[value] assertion got status valid.
-[value] computing for function my_memchr <- memchr_escaping <- main.
-    Called from tests/non-free/memchr.c:261.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ (void const *)&s }},{0},{4}))
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: {0}
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-tests/non-free/memchr.c:262:[value] assertion got status valid.
+    Called from tests/non-free/memchr.c:673.
+tests/non-free/memchr.c:275:[value] warning: locals {x} escaping the scope of a block of memchr_escaping through s
+tests/non-free/memchr.c:278:[value] function memchr: precondition 'valid' got status valid.
+tests/non-free/memchr.c:278:[value] function memchr: precondition 'initialization' got status valid.
+tests/non-free/memchr.c:278:[value] warning: function memchr: precondition 'danglingness' got status unknown.
+tests/non-free/memchr.c:278:[value] Call to builtin Frama_C_memchr(({{ (void const *)&s }},{0},{4}))
+tests/non-free/memchr.c:278:[value] builtin Frama_C_memchr: possible escaping addresses
+tests/non-free/memchr.c:278:[value] Frama_C_show_each_mymemchr: {0}
+tests/non-free/memchr.c:279:[value] assertion got status valid.
+tests/non-free/memchr.c:281:[value] function memchr: precondition 'valid' got status valid.
+tests/non-free/memchr.c:281:[value] function memchr: precondition 'initialization' got status valid.
+tests/non-free/memchr.c:281:[value] warning: function memchr: precondition 'danglingness' got status unknown.
+tests/non-free/memchr.c:281:[value] Call to builtin Frama_C_memchr(({{ (void const *)&s }},{0},{4}))
+tests/non-free/memchr.c:281:[value] Frama_C_show_each_mymemchr: {0}
+tests/non-free/memchr.c:282:[value] assertion got status valid.
 [value] Recording results for memchr_escaping
 [value] Done for function memchr_escaping
 [value] computing for function memchr_big_array <- main.
-    Called from tests/non-free/memchr.c:656.
-tests/non-free/memchr.c:352:[value] warning: out of bounds write. assert \valid(p);
-tests/non-free/memchr.c:354:[value] warning: out of bounds write. assert \valid(p);
-tests/non-free/memchr.c:356:[value] warning: out of bounds write. assert \valid(p);
-[value] computing for function my_memchr <- memchr_big_array <- main.
-    Called from tests/non-free/memchr.c:364.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ (void const *)&u }},{0},{800}))
-tests/non-free/memchr.c:50:[value] builtin Frama_C_memchr: possible uninitialized values
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: {1}
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-[value] computing for function my_memchr <- memchr_big_array <- main.
-    Called from tests/non-free/memchr.c:365.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ (void const *)&r }},{0},{805}))
-tests/non-free/memchr.c:50:[kernel] more than 200(201) locations to update in array. Approximating.
-tests/non-free/memchr.c:50:[value] builtin Frama_C_memchr: possible uninitialized values
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: {1}
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-[value] computing for function my_memchr <- memchr_big_array <- main.
-    Called from tests/non-free/memchr.c:366.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ (void const *)&t }},{0},{4000001}))
-tests/non-free/memchr.c:50:[kernel] more than 200(1000000) locations to update in array. Approximating.
-tests/non-free/memchr.c:50:[value] builtin Frama_C_memchr: possible uninitialized values
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: {1}
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-tests/non-free/memchr.c:367:[value] Frama_C_show_each: {1}, {1}, {1}
-tests/non-free/memchr.c:368:[value] assertion got status valid.
-tests/non-free/memchr.c:369:[value] assertion got status valid.
-tests/non-free/memchr.c:370:[value] assertion got status valid.
-[value] computing for function my_memchr <- memchr_big_array <- main.
-    Called from tests/non-free/memchr.c:372.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ (void const *)&u }},{0},{1600}))
-tests/non-free/memchr.c:50:[value] builtin Frama_C_memchr: possible uninitialized values
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: {1}
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-[value] computing for function my_memchr <- memchr_big_array <- main.
-    Called from tests/non-free/memchr.c:373.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ (void const *)&r }},{0},{1608}))
-tests/non-free/memchr.c:50:[value] builtin Frama_C_memchr: possible uninitialized values
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: {1}
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-[value] computing for function my_memchr <- memchr_big_array <- main.
-    Called from tests/non-free/memchr.c:374.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ (void const *)&t }},{0},{8000000}))
-tests/non-free/memchr.c:50:[value] builtin Frama_C_memchr: possible uninitialized values
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: {1}
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-tests/non-free/memchr.c:375:[value] Frama_C_show_each: {1}, {1}, {1}
-tests/non-free/memchr.c:376:[value] assertion got status valid.
-tests/non-free/memchr.c:377:[value] assertion got status valid.
-tests/non-free/memchr.c:378:[value] assertion got status valid.
+    Called from tests/non-free/memchr.c:674.
+tests/non-free/memchr.c:370:[value] warning: out of bounds write. assert \valid(p);
+tests/non-free/memchr.c:372:[value] warning: out of bounds write. assert \valid(p);
+tests/non-free/memchr.c:374:[value] warning: out of bounds write. assert \valid(p);
+tests/non-free/memchr.c:382:[value] function memchr: precondition 'valid' got status valid.
+tests/non-free/memchr.c:382:[value] warning: function memchr: precondition 'initialization' got status unknown.
+tests/non-free/memchr.c:382:[value] function memchr: precondition 'danglingness' got status valid.
+tests/non-free/memchr.c:382:[value] Call to builtin Frama_C_memchr(({{ (void const *)&u }},{0},{800}))
+tests/non-free/memchr.c:382:[value] builtin Frama_C_memchr: possible uninitialized values
+tests/non-free/memchr.c:382:[value] Frama_C_show_each_mymemchr: {1}
+tests/non-free/memchr.c:383:[value] warning: function memchr: precondition 'valid' got status unknown.
+tests/non-free/memchr.c:383:[value] warning: function memchr: precondition 'initialization' got status unknown.
+tests/non-free/memchr.c:383:[value] warning: function memchr: precondition 'danglingness' got status unknown.
+tests/non-free/memchr.c:383:[value] Call to builtin Frama_C_memchr(({{ (void const *)&r }},{0},{805}))
+tests/non-free/memchr.c:383:[kernel] more than 200(201) locations to update in array. Approximating.
+tests/non-free/memchr.c:383:[value] builtin Frama_C_memchr: possible uninitialized values
+tests/non-free/memchr.c:383:[value] Frama_C_show_each_mymemchr: {1}
+tests/non-free/memchr.c:384:[value] warning: function memchr: precondition 'valid' got status unknown.
+tests/non-free/memchr.c:384:[value] warning: function memchr: precondition 'initialization' got status unknown.
+tests/non-free/memchr.c:384:[value] warning: function memchr: precondition 'danglingness' got status unknown.
+tests/non-free/memchr.c:384:[value] Call to builtin Frama_C_memchr(({{ (void const *)&t }},{0},{4000001}))
+tests/non-free/memchr.c:384:[kernel] more than 200(1000000) locations to update in array. Approximating.
+tests/non-free/memchr.c:384:[value] builtin Frama_C_memchr: possible uninitialized values
+tests/non-free/memchr.c:384:[value] Frama_C_show_each_mymemchr: {1}
+tests/non-free/memchr.c:385:[value] Frama_C_show_each: {1}, {1}, {1}
+tests/non-free/memchr.c:386:[value] assertion got status valid.
+tests/non-free/memchr.c:387:[value] assertion got status valid.
+tests/non-free/memchr.c:388:[value] assertion got status valid.
+tests/non-free/memchr.c:390:[value] warning: function memchr: precondition 'valid' got status unknown.
+tests/non-free/memchr.c:390:[value] warning: function memchr: precondition 'initialization' got status unknown.
+tests/non-free/memchr.c:390:[value] warning: function memchr: precondition 'danglingness' got status unknown.
+tests/non-free/memchr.c:390:[value] Call to builtin Frama_C_memchr(({{ (void const *)&u }},{0},{1600}))
+tests/non-free/memchr.c:390:[value] builtin Frama_C_memchr: possible uninitialized values
+tests/non-free/memchr.c:390:[value] Frama_C_show_each_mymemchr: {1}
+tests/non-free/memchr.c:391:[value] warning: function memchr: precondition 'valid' got status unknown.
+tests/non-free/memchr.c:391:[value] warning: function memchr: precondition 'initialization' got status unknown.
+tests/non-free/memchr.c:391:[value] warning: function memchr: precondition 'danglingness' got status unknown.
+tests/non-free/memchr.c:391:[value] Call to builtin Frama_C_memchr(({{ (void const *)&r }},{0},{1608}))
+tests/non-free/memchr.c:391:[kernel] more than 200(201) locations to update in array. Approximating.
+tests/non-free/memchr.c:391:[value] builtin Frama_C_memchr: possible uninitialized values
+tests/non-free/memchr.c:391:[value] Frama_C_show_each_mymemchr: {1}
+tests/non-free/memchr.c:392:[value] warning: function memchr: precondition 'valid' got status unknown.
+tests/non-free/memchr.c:392:[value] warning: function memchr: precondition 'initialization' got status unknown.
+tests/non-free/memchr.c:392:[value] warning: function memchr: precondition 'danglingness' got status unknown.
+tests/non-free/memchr.c:392:[value] Call to builtin Frama_C_memchr(({{ (void const *)&t }},{0},{8000000}))
+tests/non-free/memchr.c:392:[kernel] more than 200(1000000) locations to update in array. Approximating.
+tests/non-free/memchr.c:392:[value] builtin Frama_C_memchr: possible uninitialized values
+tests/non-free/memchr.c:392:[value] Frama_C_show_each_mymemchr: {1}
+tests/non-free/memchr.c:393:[value] Frama_C_show_each: {1}, {1}, {1}
+tests/non-free/memchr.c:394:[value] assertion got status valid.
+tests/non-free/memchr.c:395:[value] assertion got status valid.
+tests/non-free/memchr.c:396:[value] assertion got status valid.
 [value] Recording results for memchr_big_array
 [value] Done for function memchr_big_array
 [value] computing for function memchr_no_zero_but_ok <- main.
-    Called from tests/non-free/memchr.c:657.
-[value] computing for function my_memchr <- memchr_no_zero_but_ok <- main.
-    Called from tests/non-free/memchr.c:389.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ (void const *)&s }},{0},{5}))
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: {-1}
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-tests/non-free/memchr.c:390:[value] assertion got status valid.
-[value] computing for function my_memchr <- memchr_no_zero_but_ok <- main.
-    Called from tests/non-free/memchr.c:391.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ (void const *)&s }},{0},{11}))
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: {10}
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-tests/non-free/memchr.c:392:[value] assertion got status valid.
-[value] computing for function my_memchr2 <- memchr_no_zero_but_ok <- main.
-    Called from tests/non-free/memchr.c:393.
-tests/non-free/memchr.c:64:[value] function memchr: precondition 'valid' got status valid.
-tests/non-free/memchr.c:64:[value] function memchr: precondition 'initialization' got status valid.
-tests/non-free/memchr.c:64:[value] function memchr: precondition 'danglingness' got status valid.
-tests/non-free/memchr.c:64:[value] Call to builtin Frama_C_memchr(({{ (void const *)&s{[1], [8]} }},{0},{11}))
-tests/non-free/memchr.c:71:[value] Frama_C_show_each_mymemchr2: {10}
-[value] Recording results for my_memchr2
-[value] Done for function my_memchr2
-tests/non-free/memchr.c:394:[value] assertion got status valid.
-[value] computing for function my_memchr2 <- memchr_no_zero_but_ok <- main.
-    Called from tests/non-free/memchr.c:395.
-tests/non-free/memchr.c:64:[value] Call to builtin Frama_C_memchr(({{ (void const *)&s{[7], [11]} }},{0},{4}))
-tests/non-free/memchr.c:71:[value] Frama_C_show_each_mymemchr2: {-1; 10; 14}
-[value] Recording results for my_memchr2
-[value] Done for function my_memchr2
-tests/non-free/memchr.c:396:[value] assertion got status valid.
-[value] computing for function my_memchr2 <- memchr_no_zero_but_ok <- main.
-    Called from tests/non-free/memchr.c:397.
-tests/non-free/memchr.c:64:[value] Call to builtin Frama_C_memchr(({{ (void const *)&s{[7], [18]} }},{0},{5}))
-tests/non-free/memchr.c:64:[value] builtin Frama_C_memchr: possibly reading indeterminate data
-tests/non-free/memchr.c:71:[value] Frama_C_show_each_mymemchr2: {10; 18; 19}
-[value] Recording results for my_memchr2
-[value] Done for function my_memchr2
-tests/non-free/memchr.c:398:[value] assertion got status valid.
+    Called from tests/non-free/memchr.c:675.
+tests/non-free/memchr.c:407:[value] function memchr: precondition 'valid' got status valid.
+tests/non-free/memchr.c:407:[value] function memchr: precondition 'initialization' got status valid.
+tests/non-free/memchr.c:407:[value] function memchr: precondition 'danglingness' got status valid.
+tests/non-free/memchr.c:407:[value] Call to builtin Frama_C_memchr(({{ (void const *)&s }},{0},{5}))
+tests/non-free/memchr.c:407:[value] Frama_C_show_each_mymemchr: {-1}
+tests/non-free/memchr.c:408:[value] assertion got status valid.
+tests/non-free/memchr.c:409:[value] function memchr: precondition 'valid' got status valid.
+tests/non-free/memchr.c:409:[value] function memchr: precondition 'initialization' got status valid.
+tests/non-free/memchr.c:409:[value] function memchr: precondition 'danglingness' got status valid.
+tests/non-free/memchr.c:409:[value] Call to builtin Frama_C_memchr(({{ (void const *)&s }},{0},{11}))
+tests/non-free/memchr.c:409:[value] Frama_C_show_each_mymemchr: {10}
+tests/non-free/memchr.c:410:[value] assertion got status valid.
+tests/non-free/memchr.c:411:[value] function memchr: precondition 'valid' got status valid.
+tests/non-free/memchr.c:411:[value] function memchr: precondition 'initialization' got status valid.
+tests/non-free/memchr.c:411:[value] function memchr: precondition 'danglingness' got status valid.
+tests/non-free/memchr.c:411:[value] Call to builtin Frama_C_memchr(({{ (void const *)&s{[1], [8]} }},{0},{11}))
+tests/non-free/memchr.c:411:[value] Frama_C_show_each_mymemchr2: {10}
+tests/non-free/memchr.c:412:[value] assertion got status valid.
+tests/non-free/memchr.c:413:[value] function memchr: precondition 'valid' got status valid.
+tests/non-free/memchr.c:413:[value] function memchr: precondition 'initialization' got status valid.
+tests/non-free/memchr.c:413:[value] function memchr: precondition 'danglingness' got status valid.
+tests/non-free/memchr.c:413:[value] Call to builtin Frama_C_memchr(({{ (void const *)&s{[7], [11]} }},{0},{4}))
+tests/non-free/memchr.c:413:[value] Frama_C_show_each_mymemchr2: {-1; 10; 14}
+tests/non-free/memchr.c:414:[value] assertion got status valid.
+tests/non-free/memchr.c:415:[value] warning: function memchr: precondition 'valid' got status unknown.
+tests/non-free/memchr.c:415:[value] warning: function memchr: precondition 'initialization' got status unknown.
+tests/non-free/memchr.c:415:[value] warning: function memchr: precondition 'danglingness' got status unknown.
+tests/non-free/memchr.c:415:[value] Call to builtin Frama_C_memchr(({{ (void const *)&s{[7], [18]} }},{0},{5}))
+tests/non-free/memchr.c:415:[value] builtin Frama_C_memchr: possibly reading indeterminate data
+tests/non-free/memchr.c:415:[value] Frama_C_show_each_mymemchr2: {10; 18; 19}
+tests/non-free/memchr.c:416:[value] assertion got status valid.
 [value] Recording results for memchr_no_zero_but_ok
 [value] Done for function memchr_no_zero_but_ok
 [value] computing for function memchr_small_sets_n <- main.
-    Called from tests/non-free/memchr.c:658.
-[value] computing for function my_memchr2 <- memchr_small_sets_n <- main.
-    Called from tests/non-free/memchr.c:407.
-tests/non-free/memchr.c:64:[value] Call to builtin Frama_C_memchr(({{ "abcde" + {0; 1} }},{0},{2; 5}))
-tests/non-free/memchr.c:71:[value] Frama_C_show_each_mymemchr2: {-1; 5}
-[value] Recording results for my_memchr2
-[value] Done for function my_memchr2
-tests/non-free/memchr.c:408:[value] assertion got status valid.
-[value] computing for function my_memchr2 <- memchr_small_sets_n <- main.
-    Called from tests/non-free/memchr.c:412.
-tests/non-free/memchr.c:64:[value] Call to builtin Frama_C_memchr(({{ "\000bcdef" + {0; 1} }},{0},{1; 6}))
-tests/non-free/memchr.c:71:[value] Frama_C_show_each_mymemchr2: {-1; 0; 6}
-[value] Recording results for my_memchr2
-[value] Done for function my_memchr2
-tests/non-free/memchr.c:413:[value] assertion got status valid.
-[value] computing for function my_memchr2 <- memchr_small_sets_n <- main.
-    Called from tests/non-free/memchr.c:416.
-tests/non-free/memchr.c:64:[value] Call to builtin Frama_C_memchr(({{ "bcd\000efg" + {0; 2} }},{0},{4}))
-tests/non-free/memchr.c:71:[value] Frama_C_show_each_mymemchr2: {3}
-[value] Recording results for my_memchr2
-[value] Done for function my_memchr2
-tests/non-free/memchr.c:417:[value] assertion got status valid.
-[value] computing for function my_memchr2 <- memchr_small_sets_n <- main.
-    Called from tests/non-free/memchr.c:420.
-tests/non-free/memchr.c:64:[value] Call to builtin Frama_C_memchr(({{ "bcd\000efg" + {0; 2} }},{0},{3; 4}))
-tests/non-free/memchr.c:71:[value] Frama_C_show_each_mymemchr2: {-1; 3}
-[value] Recording results for my_memchr2
-[value] Done for function my_memchr2
-tests/non-free/memchr.c:421:[value] assertion got status valid.
-[value] computing for function my_memchr2 <- memchr_small_sets_n <- main.
-    Called from tests/non-free/memchr.c:424.
-tests/non-free/memchr.c:64:[value] Call to builtin Frama_C_memchr(({{ "bcd\000efg" + {0; 2} }},{0},{2; 3}))
-tests/non-free/memchr.c:71:[value] Frama_C_show_each_mymemchr2: {-1; 3}
-[value] Recording results for my_memchr2
-[value] Done for function my_memchr2
-tests/non-free/memchr.c:425:[value] assertion got status valid.
-[value] computing for function my_memchr2 <- memchr_small_sets_n <- main.
-    Called from tests/non-free/memchr.c:428.
-tests/non-free/memchr.c:64:[value] Call to builtin Frama_C_memchr(({{ "bcd\000efg" + {2; 4} }},{0},{2; 7}))
-tests/non-free/memchr.c:71:[value] Frama_C_show_each_mymemchr2: {-1; 3; 7}
-[value] Recording results for my_memchr2
-[value] Done for function my_memchr2
-tests/non-free/memchr.c:429:[value] assertion got status valid.
+    Called from tests/non-free/memchr.c:676.
+tests/non-free/memchr.c:425:[value] function memchr: precondition 'valid' got status valid.
+tests/non-free/memchr.c:425:[value] function memchr: precondition 'initialization' got status valid.
+tests/non-free/memchr.c:425:[value] function memchr: precondition 'danglingness' got status valid.
+tests/non-free/memchr.c:425:[value] Call to builtin Frama_C_memchr(({{ "abcde" + {0; 1} }},{0},{2; 5}))
+tests/non-free/memchr.c:425:[value] Frama_C_show_each_mymemchr2: {-1; 5}
+tests/non-free/memchr.c:426:[value] assertion got status valid.
+tests/non-free/memchr.c:430:[value] function memchr: precondition 'valid' got status valid.
+tests/non-free/memchr.c:430:[value] function memchr: precondition 'initialization' got status valid.
+tests/non-free/memchr.c:430:[value] function memchr: precondition 'danglingness' got status valid.
+tests/non-free/memchr.c:430:[value] Call to builtin Frama_C_memchr(({{ "\000bcdef" + {0; 1} }},{0},{1; 6}))
+tests/non-free/memchr.c:430:[value] Frama_C_show_each_mymemchr2: {-1; 0; 6}
+tests/non-free/memchr.c:431:[value] assertion got status valid.
+tests/non-free/memchr.c:434:[value] function memchr: precondition 'valid' got status valid.
+tests/non-free/memchr.c:434:[value] function memchr: precondition 'initialization' got status valid.
+tests/non-free/memchr.c:434:[value] function memchr: precondition 'danglingness' got status valid.
+tests/non-free/memchr.c:434:[value] Call to builtin Frama_C_memchr(({{ "bcd\000efg" + {0; 2} }},{0},{4}))
+tests/non-free/memchr.c:434:[value] Frama_C_show_each_mymemchr2: {3}
+tests/non-free/memchr.c:435:[value] assertion got status valid.
+tests/non-free/memchr.c:438:[value] function memchr: precondition 'valid' got status valid.
+tests/non-free/memchr.c:438:[value] function memchr: precondition 'initialization' got status valid.
+tests/non-free/memchr.c:438:[value] function memchr: precondition 'danglingness' got status valid.
+tests/non-free/memchr.c:438:[value] Call to builtin Frama_C_memchr(({{ "bcd\000efg" + {0; 2} }},{0},{3; 4}))
+tests/non-free/memchr.c:438:[value] Frama_C_show_each_mymemchr2: {-1; 3}
+tests/non-free/memchr.c:439:[value] assertion got status valid.
+tests/non-free/memchr.c:442:[value] function memchr: precondition 'valid' got status valid.
+tests/non-free/memchr.c:442:[value] function memchr: precondition 'initialization' got status valid.
+tests/non-free/memchr.c:442:[value] function memchr: precondition 'danglingness' got status valid.
+tests/non-free/memchr.c:442:[value] Call to builtin Frama_C_memchr(({{ "bcd\000efg" + {0; 2} }},{0},{2; 3}))
+tests/non-free/memchr.c:442:[value] Frama_C_show_each_mymemchr2: {-1; 3}
+tests/non-free/memchr.c:443:[value] assertion got status valid.
+tests/non-free/memchr.c:446:[value] warning: function memchr: precondition 'valid' got status unknown.
+tests/non-free/memchr.c:446:[value] warning: function memchr: precondition 'initialization' got status unknown.
+tests/non-free/memchr.c:446:[value] warning: function memchr: precondition 'danglingness' got status unknown.
+tests/non-free/memchr.c:446:[value] Call to builtin Frama_C_memchr(({{ "bcd\000efg" + {2; 4} }},{0},{2; 7}))
+tests/non-free/memchr.c:446:[value] Frama_C_show_each_mymemchr2: {-1; 3; 7}
+tests/non-free/memchr.c:447:[value] assertion got status valid.
 [value] Recording results for memchr_small_sets_n
 [value] Done for function memchr_small_sets_n
 [value] computing for function memchr_large_n <- main.
-    Called from tests/non-free/memchr.c:659.
+    Called from tests/non-free/memchr.c:677.
 [value] computing for function init_array_nondet <- memchr_large_n <- main.
-    Called from tests/non-free/memchr.c:436.
-tests/non-free/memchr.c:184:[value] Call to builtin memset(({{ (void *)&a }},{1; 2},{100}))
+    Called from tests/non-free/memchr.c:454.
+tests/non-free/memchr.c:204:[value] Call to builtin memset(({{ (void *)&a }},{1; 2},{100}))
 [value] Recording results for init_array_nondet
 [value] Done for function init_array_nondet
 [value] computing for function Frama_C_interval <- memchr_large_n <- main.
-    Called from tests/non-free/memchr.c:441.
-tests/non-free/memchr.c:441:[value] function Frama_C_interval: precondition got status valid.
+    Called from tests/non-free/memchr.c:459.
+tests/non-free/memchr.c:459:[value] function Frama_C_interval: precondition got status valid.
 [value] Done for function Frama_C_interval
 [value] computing for function Frama_C_interval <- memchr_large_n <- main.
-    Called from tests/non-free/memchr.c:442.
-tests/non-free/memchr.c:442:[value] function Frama_C_interval: precondition got status valid.
+    Called from tests/non-free/memchr.c:460.
+tests/non-free/memchr.c:460:[value] function Frama_C_interval: precondition got status valid.
 [value] Done for function Frama_C_interval
-[value] computing for function my_memchr <- memchr_large_n <- main.
-    Called from tests/non-free/memchr.c:443.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ &a + [3..30] }},{0},[10..20]))
-tests/non-free/memchr.c:50:[value] builtin Frama_C_memchr:
+tests/non-free/memchr.c:461:[value] function memchr: precondition 'valid' got status valid.
+tests/non-free/memchr.c:461:[value] function memchr: precondition 'initialization' got status valid.
+tests/non-free/memchr.c:461:[value] function memchr: precondition 'danglingness' got status valid.
+tests/non-free/memchr.c:461:[value] Call to builtin Frama_C_memchr(({{ &a + [3..30] }},{0},[10..20]))
+tests/non-free/memchr.c:461:[value] builtin Frama_C_memchr:
     range too large and/or imprecise, approximating
     possible uninitialized values
     possible escaping addresses
     possibly reading indeterminate data
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: [-1..40]
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-tests/non-free/memchr.c:444:[value] assertion got status valid.
-tests/non-free/memchr.c:445:[value] warning: assertion 'refined' got status unknown.
-[value] computing for function my_memchr <- memchr_large_n <- main.
-    Called from tests/non-free/memchr.c:449.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ &a + [3..30] }},{0},[10..20]))
-tests/non-free/memchr.c:50:[value] builtin Frama_C_memchr:
+tests/non-free/memchr.c:461:[value] Frama_C_show_each_mymemchr: [-1..40]
+tests/non-free/memchr.c:462:[value] assertion got status valid.
+tests/non-free/memchr.c:463:[value] warning: assertion 'refined' got status unknown.
+tests/non-free/memchr.c:467:[value] function memchr: precondition 'valid' got status valid.
+tests/non-free/memchr.c:467:[value] function memchr: precondition 'initialization' got status valid.
+tests/non-free/memchr.c:467:[value] function memchr: precondition 'danglingness' got status valid.
+tests/non-free/memchr.c:467:[value] Call to builtin Frama_C_memchr(({{ &a + [3..30] }},{0},[10..20]))
+tests/non-free/memchr.c:467:[value] builtin Frama_C_memchr:
     range too large and/or imprecise, approximating
     possible uninitialized values
     possible escaping addresses
     possibly reading indeterminate data
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: [-1..40]
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-tests/non-free/memchr.c:450:[value] assertion got status valid.
-tests/non-free/memchr.c:451:[value] warning: assertion 'refined' got status unknown.
-[value] computing for function my_memchr <- memchr_large_n <- main.
-    Called from tests/non-free/memchr.c:454.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ &a + [3..30] }},{0},[10..20]))
-tests/non-free/memchr.c:50:[value] builtin Frama_C_memchr:
+tests/non-free/memchr.c:467:[value] Frama_C_show_each_mymemchr: [-1..40]
+tests/non-free/memchr.c:468:[value] assertion got status valid.
+tests/non-free/memchr.c:469:[value] warning: assertion 'refined' got status unknown.
+tests/non-free/memchr.c:472:[value] function memchr: precondition 'valid' got status valid.
+tests/non-free/memchr.c:472:[value] function memchr: precondition 'initialization' got status valid.
+tests/non-free/memchr.c:472:[value] function memchr: precondition 'danglingness' got status valid.
+tests/non-free/memchr.c:472:[value] Call to builtin Frama_C_memchr(({{ &a + [3..30] }},{0},[10..20]))
+tests/non-free/memchr.c:472:[value] builtin Frama_C_memchr:
     range too large and/or imprecise, approximating
     possible uninitialized values
     possible escaping addresses
     possibly reading indeterminate data
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: [-1..29]
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-tests/non-free/memchr.c:455:[value] assertion got status valid.
-tests/non-free/memchr.c:456:[value] warning: assertion 'refined' got status unknown.
+tests/non-free/memchr.c:472:[value] Frama_C_show_each_mymemchr: [-1..29]
+tests/non-free/memchr.c:473:[value] assertion got status valid.
+tests/non-free/memchr.c:474:[value] warning: assertion 'refined' got status unknown.
 [value] computing for function Frama_C_interval <- memchr_large_n <- main.
-    Called from tests/non-free/memchr.c:458.
-tests/non-free/memchr.c:458:[value] function Frama_C_interval: precondition got status valid.
+    Called from tests/non-free/memchr.c:476.
+tests/non-free/memchr.c:476:[value] function Frama_C_interval: precondition got status valid.
 [value] Done for function Frama_C_interval
-[value] computing for function my_memchr <- memchr_large_n <- main.
-    Called from tests/non-free/memchr.c:459.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ &a + [5..17] }},{0},[10..20]))
-tests/non-free/memchr.c:50:[value] builtin Frama_C_memchr:
+tests/non-free/memchr.c:477:[value] function memchr: precondition 'valid' got status valid.
+tests/non-free/memchr.c:477:[value] function memchr: precondition 'initialization' got status valid.
+tests/non-free/memchr.c:477:[value] function memchr: precondition 'danglingness' got status valid.
+tests/non-free/memchr.c:477:[value] Call to builtin Frama_C_memchr(({{ &a + [5..17] }},{0},[10..20]))
+tests/non-free/memchr.c:477:[value] builtin Frama_C_memchr:
     range too large and/or imprecise, approximating
     possible uninitialized values
     possible escaping addresses
     possibly reading indeterminate data
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: [-1..29]
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-tests/non-free/memchr.c:460:[value] assertion got status valid.
-tests/non-free/memchr.c:461:[value] warning: assertion 'refined' got status unknown.
+tests/non-free/memchr.c:477:[value] Frama_C_show_each_mymemchr: [-1..29]
+tests/non-free/memchr.c:478:[value] assertion got status valid.
+tests/non-free/memchr.c:479:[value] warning: assertion 'refined' got status unknown.
 [value] computing for function Frama_C_interval <- memchr_large_n <- main.
-    Called from tests/non-free/memchr.c:463.
-tests/non-free/memchr.c:463:[value] function Frama_C_interval: precondition got status valid.
+    Called from tests/non-free/memchr.c:481.
+tests/non-free/memchr.c:481:[value] function Frama_C_interval: precondition got status valid.
 [value] Done for function Frama_C_interval
-[value] computing for function my_memchr <- memchr_large_n <- main.
-    Called from tests/non-free/memchr.c:464.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ &a + [60..74] }},{0},[10..20]))
-tests/non-free/memchr.c:50:[value] builtin Frama_C_memchr:
+tests/non-free/memchr.c:482:[value] function memchr: precondition 'valid' got status valid.
+tests/non-free/memchr.c:482:[value] function memchr: precondition 'initialization' got status valid.
+tests/non-free/memchr.c:482:[value] function memchr: precondition 'danglingness' got status valid.
+tests/non-free/memchr.c:482:[value] Call to builtin Frama_C_memchr(({{ &a + [60..74] }},{0},[10..20]))
+tests/non-free/memchr.c:482:[value] builtin Frama_C_memchr:
     range too large and/or imprecise, approximating
     possible uninitialized values
     possible escaping addresses
     possibly reading indeterminate data
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: [-1..75]
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-tests/non-free/memchr.c:465:[value] assertion got status valid.
-tests/non-free/memchr.c:466:[value] warning: assertion 'refined' got status unknown.
+tests/non-free/memchr.c:482:[value] Frama_C_show_each_mymemchr: [-1..75]
+tests/non-free/memchr.c:483:[value] assertion got status valid.
+tests/non-free/memchr.c:484:[value] warning: assertion 'refined' got status unknown.
 [value] computing for function Frama_C_interval <- memchr_large_n <- main.
-    Called from tests/non-free/memchr.c:468.
-tests/non-free/memchr.c:468:[value] function Frama_C_interval: precondition got status valid.
+    Called from tests/non-free/memchr.c:486.
+tests/non-free/memchr.c:486:[value] function Frama_C_interval: precondition got status valid.
 [value] Done for function Frama_C_interval
-[value] computing for function my_memchr <- memchr_large_n <- main.
-    Called from tests/non-free/memchr.c:469.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ &a + [63..80] }},{0},[10..20]))
-tests/non-free/memchr.c:50:[value] builtin Frama_C_memchr:
+tests/non-free/memchr.c:487:[value] function memchr: precondition 'valid' got status valid.
+tests/non-free/memchr.c:487:[value] function memchr: precondition 'initialization' got status valid.
+tests/non-free/memchr.c:487:[value] function memchr: precondition 'danglingness' got status valid.
+tests/non-free/memchr.c:487:[value] Call to builtin Frama_C_memchr(({{ &a + [63..80] }},{0},[10..20]))
+tests/non-free/memchr.c:487:[value] builtin Frama_C_memchr:
     range too large and/or imprecise, approximating
     possible uninitialized values
     possible escaping addresses
     possibly reading indeterminate data
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: [-1..79]
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-tests/non-free/memchr.c:470:[value] assertion got status valid.
-tests/non-free/memchr.c:471:[value] warning: assertion 'refined' got status unknown.
+tests/non-free/memchr.c:487:[value] Frama_C_show_each_mymemchr: [-1..79]
+tests/non-free/memchr.c:488:[value] assertion got status valid.
+tests/non-free/memchr.c:489:[value] warning: assertion 'refined' got status unknown.
 [value] computing for function init_array_nondet <- memchr_large_n <- main.
-    Called from tests/non-free/memchr.c:473.
-tests/non-free/memchr.c:184:[value] Call to builtin memset(({{ (void *)&a }},{0; 2},{100}))
+    Called from tests/non-free/memchr.c:491.
+tests/non-free/memchr.c:204:[value] Call to builtin memset(({{ (void *)&a }},{0; 2},{100}))
 [value] Recording results for init_array_nondet
 [value] Done for function init_array_nondet
 [value] computing for function Frama_C_interval <- memchr_large_n <- main.
-    Called from tests/non-free/memchr.c:474.
-tests/non-free/memchr.c:474:[value] function Frama_C_interval: precondition got status valid.
+    Called from tests/non-free/memchr.c:492.
+tests/non-free/memchr.c:492:[value] function Frama_C_interval: precondition got status valid.
 [value] Done for function Frama_C_interval
-[value] computing for function my_memchr <- memchr_large_n <- main.
-    Called from tests/non-free/memchr.c:475.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ &a + [50..70] }},{0},[10..20]))
-tests/non-free/memchr.c:50:[value] builtin Frama_C_memchr:
+tests/non-free/memchr.c:493:[value] function memchr: precondition 'valid' got status valid.
+tests/non-free/memchr.c:493:[value] function memchr: precondition 'initialization' got status valid.
+tests/non-free/memchr.c:493:[value] function memchr: precondition 'danglingness' got status valid.
+tests/non-free/memchr.c:493:[value] Call to builtin Frama_C_memchr(({{ &a + [50..70] }},{0},[10..20]))
+tests/non-free/memchr.c:493:[value] builtin Frama_C_memchr:
     range too large and/or imprecise, approximating
     possible uninitialized values
     possible escaping addresses
     possibly reading indeterminate data
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: [-1..89]
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-tests/non-free/memchr.c:476:[value] assertion got status valid.
+tests/non-free/memchr.c:493:[value] Frama_C_show_each_mymemchr: [-1..89]
+tests/non-free/memchr.c:494:[value] assertion got status valid.
 [value] computing for function Frama_C_interval <- memchr_large_n <- main.
-    Called from tests/non-free/memchr.c:478.
-tests/non-free/memchr.c:478:[value] function Frama_C_interval: precondition got status valid.
+    Called from tests/non-free/memchr.c:496.
+tests/non-free/memchr.c:496:[value] function Frama_C_interval: precondition got status valid.
 [value] Done for function Frama_C_interval
-[value] computing for function my_memchr <- memchr_large_n <- main.
-    Called from tests/non-free/memchr.c:479.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ &a + [50..70] }},{0},[0..100]))
-tests/non-free/memchr.c:50:[value] builtin Frama_C_memchr:
+tests/non-free/memchr.c:497:[value] warning: function memchr: precondition 'valid' got status unknown.
+tests/non-free/memchr.c:497:[value] warning: function memchr: precondition 'initialization' got status unknown.
+tests/non-free/memchr.c:497:[value] warning: function memchr: precondition 'danglingness' got status unknown.
+tests/non-free/memchr.c:497:[value] Call to builtin Frama_C_memchr(({{ &a + [50..70] }},{0},[0..100]))
+tests/non-free/memchr.c:497:[value] builtin Frama_C_memchr:
     range too large and/or imprecise, approximating
     possible uninitialized values
     possible escaping addresses
     possibly reading indeterminate data
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: [-1..99]
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-tests/non-free/memchr.c:480:[value] assertion got status valid.
+tests/non-free/memchr.c:497:[value] Frama_C_show_each_mymemchr: [-1..99]
+tests/non-free/memchr.c:498:[value] assertion got status valid.
 [value] computing for function Frama_C_interval <- memchr_large_n <- main.
-    Called from tests/non-free/memchr.c:482.
-tests/non-free/memchr.c:482:[value] function Frama_C_interval: precondition got status valid.
+    Called from tests/non-free/memchr.c:500.
+tests/non-free/memchr.c:500:[value] function Frama_C_interval: precondition got status valid.
 [value] Done for function Frama_C_interval
 [value] computing for function Frama_C_interval <- memchr_large_n <- main.
-    Called from tests/non-free/memchr.c:483.
-tests/non-free/memchr.c:483:[value] function Frama_C_interval: precondition got status valid.
+    Called from tests/non-free/memchr.c:501.
+tests/non-free/memchr.c:501:[value] function Frama_C_interval: precondition got status valid.
 [value] Done for function Frama_C_interval
-[value] computing for function my_memchr <- memchr_large_n <- main.
-    Called from tests/non-free/memchr.c:484.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ &a + [0..10] }},{0},[0..90]))
-tests/non-free/memchr.c:50:[value] builtin Frama_C_memchr:
+tests/non-free/memchr.c:502:[value] function memchr: precondition 'valid' got status valid.
+tests/non-free/memchr.c:502:[value] function memchr: precondition 'initialization' got status valid.
+tests/non-free/memchr.c:502:[value] function memchr: precondition 'danglingness' got status valid.
+tests/non-free/memchr.c:502:[value] Call to builtin Frama_C_memchr(({{ &a + [0..10] }},{0},[0..90]))
+tests/non-free/memchr.c:502:[value] builtin Frama_C_memchr:
     range too large and/or imprecise, approximating
     possible uninitialized values
     possible escaping addresses
     possibly reading indeterminate data
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: [-1..99]
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-tests/non-free/memchr.c:485:[value] assertion got status valid.
+tests/non-free/memchr.c:502:[value] Frama_C_show_each_mymemchr: [-1..99]
+tests/non-free/memchr.c:503:[value] assertion got status valid.
 [value] Recording results for memchr_large_n
 [value] Done for function memchr_large_n
 [value] computing for function memchr_unbounded_n <- main.
-    Called from tests/non-free/memchr.c:660.
-[value] computing for function my_memchr <- memchr_unbounded_n <- main.
-    Called from tests/non-free/memchr.c:494.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ "abc" }},{0},[0..2147483647]))
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: {-1; 3}
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-tests/non-free/memchr.c:495:[value] assertion got status valid.
-[value] computing for function my_memchr <- memchr_unbounded_n <- main.
-    Called from tests/non-free/memchr.c:497.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ "abc" + {0; 1} }},{0},[0..2147483647]))
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: {-1; 3}
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-tests/non-free/memchr.c:498:[value] assertion got status valid.
-[value] computing for function my_memchr <- memchr_unbounded_n <- main.
-    Called from tests/non-free/memchr.c:500.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ "bcd\000eg" }},{0},[0..2147483647]))
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: {-1; 3}
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-tests/non-free/memchr.c:501:[value] assertion got status valid.
+    Called from tests/non-free/memchr.c:678.
+tests/non-free/memchr.c:512:[value] warning: function memchr: precondition 'valid' got status unknown.
+tests/non-free/memchr.c:512:[value] warning: function memchr: precondition 'initialization' got status unknown.
+tests/non-free/memchr.c:512:[value] warning: function memchr: precondition 'danglingness' got status unknown.
+tests/non-free/memchr.c:512:[value] Call to builtin Frama_C_memchr(({{ "abc" }},{0},[0..2147483647]))
+tests/non-free/memchr.c:512:[value] Frama_C_show_each_mymemchr: {-1; 3}
+tests/non-free/memchr.c:513:[value] assertion got status valid.
+tests/non-free/memchr.c:515:[value] warning: function memchr: precondition 'valid' got status unknown.
+tests/non-free/memchr.c:515:[value] warning: function memchr: precondition 'initialization' got status unknown.
+tests/non-free/memchr.c:515:[value] warning: function memchr: precondition 'danglingness' got status unknown.
+tests/non-free/memchr.c:515:[value] Call to builtin Frama_C_memchr(({{ "abc" + {0; 1} }},{0},[0..2147483647]))
+tests/non-free/memchr.c:515:[value] Frama_C_show_each_mymemchr: {-1; 3}
+tests/non-free/memchr.c:516:[value] assertion got status valid.
+tests/non-free/memchr.c:518:[value] warning: function memchr: precondition 'valid' got status unknown.
+tests/non-free/memchr.c:518:[value] warning: function memchr: precondition 'initialization' got status unknown.
+tests/non-free/memchr.c:518:[value] warning: function memchr: precondition 'danglingness' got status unknown.
+tests/non-free/memchr.c:518:[value] Call to builtin Frama_C_memchr(({{ "bcd\000eg" }},{0},[0..2147483647]))
+tests/non-free/memchr.c:518:[value] Frama_C_show_each_mymemchr: {-1; 3}
+tests/non-free/memchr.c:519:[value] assertion got status valid.
 [value] Recording results for memchr_unbounded_n
 [value] Done for function memchr_unbounded_n
 [value] computing for function memchr_intervals <- main.
-    Called from tests/non-free/memchr.c:661.
+    Called from tests/non-free/memchr.c:679.
 [value] computing for function init_array_nondet <- memchr_intervals <- main.
-    Called from tests/non-free/memchr.c:508.
-tests/non-free/memchr.c:184:[value] Call to builtin memset(({{ (void *)&a }},{0; 1},{10}))
+    Called from tests/non-free/memchr.c:526.
+tests/non-free/memchr.c:204:[value] Call to builtin memset(({{ (void *)&a }},{0; 1},{10}))
 [value] Recording results for init_array_nondet
 [value] Done for function init_array_nondet
 [value] computing for function init_array_nondet <- memchr_intervals <- main.
-    Called from tests/non-free/memchr.c:509.
-tests/non-free/memchr.c:184:[value] Call to builtin memset(({{ (void *)&a[3] }},{1},{4}))
+    Called from tests/non-free/memchr.c:527.
+tests/non-free/memchr.c:204:[value] Call to builtin memset(({{ (void *)&a[3] }},{1},{4}))
 [value] Recording results for init_array_nondet
 [value] Done for function init_array_nondet
 [value] computing for function init_array_nondet <- memchr_intervals <- main.
-    Called from tests/non-free/memchr.c:510.
-tests/non-free/memchr.c:184:[value] Call to builtin memset(({{ (void *)&a[11] }},{0; 1},{1}))
+    Called from tests/non-free/memchr.c:528.
+tests/non-free/memchr.c:204:[value] Call to builtin memset(({{ (void *)&a[11] }},{0; 1},{1}))
 [value] Recording results for init_array_nondet
 [value] Done for function init_array_nondet
 [value] computing for function init_array_nondet <- memchr_intervals <- main.
-    Called from tests/non-free/memchr.c:511.
-tests/non-free/memchr.c:184:[value] Call to builtin memset(({{ (void *)&a[12] }},{1},{4}))
+    Called from tests/non-free/memchr.c:529.
+tests/non-free/memchr.c:204:[value] Call to builtin memset(({{ (void *)&a[12] }},{1},{4}))
 [value] Recording results for init_array_nondet
 [value] Done for function init_array_nondet
 [value] computing for function init_array_nondet <- memchr_intervals <- main.
-    Called from tests/non-free/memchr.c:512.
-tests/non-free/memchr.c:184:[value] Call to builtin memset(({{ (void *)&a[16] }},{0; 1},{4}))
+    Called from tests/non-free/memchr.c:530.
+tests/non-free/memchr.c:204:[value] Call to builtin memset(({{ (void *)&a[16] }},{0; 1},{4}))
 [value] Recording results for init_array_nondet
 [value] Done for function init_array_nondet
 [value] computing for function Frama_C_interval <- memchr_intervals <- main.
-    Called from tests/non-free/memchr.c:514.
-tests/non-free/memchr.c:514:[value] function Frama_C_interval: precondition got status valid.
+    Called from tests/non-free/memchr.c:532.
+tests/non-free/memchr.c:532:[value] function Frama_C_interval: precondition got status valid.
 [value] Done for function Frama_C_interval
 [value] computing for function Frama_C_interval <- memchr_intervals <- main.
-    Called from tests/non-free/memchr.c:515.
-tests/non-free/memchr.c:515:[value] function Frama_C_interval: precondition got status valid.
+    Called from tests/non-free/memchr.c:533.
+tests/non-free/memchr.c:533:[value] function Frama_C_interval: precondition got status valid.
 [value] Done for function Frama_C_interval
-[value] computing for function my_memchr <- memchr_intervals <- main.
-    Called from tests/non-free/memchr.c:516.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ &a + [0..9] }},{0},[0..10]))
-tests/non-free/memchr.c:50:[value] builtin Frama_C_memchr:
+tests/non-free/memchr.c:534:[value] function memchr: precondition 'valid' got status valid.
+tests/non-free/memchr.c:534:[value] warning: function memchr: precondition 'initialization' got status unknown.
+tests/non-free/memchr.c:534:[value] function memchr: precondition 'danglingness' got status valid.
+tests/non-free/memchr.c:534:[value] Call to builtin Frama_C_memchr(({{ &a + [0..9] }},{0},[0..10]))
+tests/non-free/memchr.c:534:[value] builtin Frama_C_memchr:
     range too large and/or imprecise, approximating
     possible uninitialized values
     possible escaping addresses
     possibly reading indeterminate data
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: [-1..9]
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-tests/non-free/memchr.c:517:[value] assertion got status valid.
-tests/non-free/memchr.c:518:[value] warning: assertion 'refined' got status unknown.
+tests/non-free/memchr.c:534:[value] Frama_C_show_each_mymemchr: [-1..9]
+tests/non-free/memchr.c:535:[value] assertion got status valid.
+tests/non-free/memchr.c:536:[value] warning: assertion 'refined' got status unknown.
 [value] computing for function Frama_C_interval <- memchr_intervals <- main.
-    Called from tests/non-free/memchr.c:520.
-tests/non-free/memchr.c:520:[value] function Frama_C_interval: precondition got status valid.
+    Called from tests/non-free/memchr.c:538.
+tests/non-free/memchr.c:538:[value] function Frama_C_interval: precondition got status valid.
 [value] Done for function Frama_C_interval
 [value] computing for function Frama_C_interval <- memchr_intervals <- main.
-    Called from tests/non-free/memchr.c:521.
-tests/non-free/memchr.c:521:[value] function Frama_C_interval: precondition got status valid.
+    Called from tests/non-free/memchr.c:539.
+tests/non-free/memchr.c:539:[value] function Frama_C_interval: precondition got status valid.
 [value] Done for function Frama_C_interval
-[value] computing for function my_memchr <- memchr_intervals <- main.
-    Called from tests/non-free/memchr.c:522.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ (void const *)&a{[3], [4], [5], [6], [7],
+tests/non-free/memchr.c:540:[value] function memchr: precondition 'valid' got status valid.
+tests/non-free/memchr.c:540:[value] warning: function memchr: precondition 'initialization' got status unknown.
+tests/non-free/memchr.c:540:[value] function memchr: precondition 'danglingness' got status valid.
+tests/non-free/memchr.c:540:[value] Call to builtin Frama_C_memchr(({{ (void const *)&a{[3], [4], [5], [6], [7],
                                                         [8], [9]} }},{0},[2..10]))
-tests/non-free/memchr.c:50:[value] builtin Frama_C_memchr: possibly reading indeterminate data
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: {-1; 7; 8; 9}
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-tests/non-free/memchr.c:523:[value] assertion got status valid.
+tests/non-free/memchr.c:540:[value] builtin Frama_C_memchr: possibly reading indeterminate data
+tests/non-free/memchr.c:540:[value] Frama_C_show_each_mymemchr: {-1; 7; 8; 9}
+tests/non-free/memchr.c:541:[value] assertion got status valid.
 [value] computing for function Frama_C_interval <- memchr_intervals <- main.
-    Called from tests/non-free/memchr.c:525.
-tests/non-free/memchr.c:525:[value] function Frama_C_interval: precondition got status valid.
+    Called from tests/non-free/memchr.c:543.
+tests/non-free/memchr.c:543:[value] function Frama_C_interval: precondition got status valid.
 [value] Done for function Frama_C_interval
 [value] computing for function Frama_C_interval <- memchr_intervals <- main.
-    Called from tests/non-free/memchr.c:526.
-tests/non-free/memchr.c:526:[value] function Frama_C_interval: precondition got status valid.
+    Called from tests/non-free/memchr.c:544.
+tests/non-free/memchr.c:544:[value] function Frama_C_interval: precondition got status valid.
 [value] Done for function Frama_C_interval
-[value] computing for function my_memchr <- memchr_intervals <- main.
-    Called from tests/non-free/memchr.c:527.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ (void const *)&a{[3], [4], [5], [6], [7],
+tests/non-free/memchr.c:545:[value] function memchr: precondition 'valid' got status valid.
+tests/non-free/memchr.c:545:[value] warning: function memchr: precondition 'initialization' got status unknown.
+tests/non-free/memchr.c:545:[value] function memchr: precondition 'danglingness' got status valid.
+tests/non-free/memchr.c:545:[value] Call to builtin Frama_C_memchr(({{ (void const *)&a{[3], [4], [5], [6], [7],
                                                         [8], [9]} }},{0},[0..11]))
-tests/non-free/memchr.c:50:[value] builtin Frama_C_memchr: possibly reading indeterminate data
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: {-1; 7; 8; 9}
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-tests/non-free/memchr.c:528:[value] assertion got status valid.
+tests/non-free/memchr.c:545:[value] builtin Frama_C_memchr: possibly reading indeterminate data
+tests/non-free/memchr.c:545:[value] Frama_C_show_each_mymemchr: {-1; 7; 8; 9}
+tests/non-free/memchr.c:546:[value] assertion got status valid.
 [value] computing for function Frama_C_interval <- memchr_intervals <- main.
-    Called from tests/non-free/memchr.c:530.
-tests/non-free/memchr.c:530:[value] function Frama_C_interval: precondition got status valid.
+    Called from tests/non-free/memchr.c:548.
+tests/non-free/memchr.c:548:[value] function Frama_C_interval: precondition got status valid.
 [value] Done for function Frama_C_interval
 [value] computing for function Frama_C_interval <- memchr_intervals <- main.
-    Called from tests/non-free/memchr.c:531.
-tests/non-free/memchr.c:531:[value] function Frama_C_interval: precondition got status valid.
+    Called from tests/non-free/memchr.c:549.
+tests/non-free/memchr.c:549:[value] function Frama_C_interval: precondition got status valid.
 [value] Done for function Frama_C_interval
-[value] computing for function my_memchr <- memchr_intervals <- main.
-    Called from tests/non-free/memchr.c:532.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ (void const *)&a{[3], [4], [5], [6], [7],
+tests/non-free/memchr.c:550:[value] function memchr: precondition 'valid' got status valid.
+tests/non-free/memchr.c:550:[value] warning: function memchr: precondition 'initialization' got status unknown.
+tests/non-free/memchr.c:550:[value] function memchr: precondition 'danglingness' got status valid.
+tests/non-free/memchr.c:550:[value] Call to builtin Frama_C_memchr(({{ (void const *)&a{[3], [4], [5], [6], [7],
                                                         [8], [9], [10]} }},
                                     {0},[0..9]))
-tests/non-free/memchr.c:50:[value] builtin Frama_C_memchr: possibly reading indeterminate data
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: {-1; 7; 8; 9}
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-tests/non-free/memchr.c:533:[value] assertion got status valid.
+tests/non-free/memchr.c:550:[value] builtin Frama_C_memchr: possibly reading indeterminate data
+tests/non-free/memchr.c:550:[value] Frama_C_show_each_mymemchr: {-1; 7; 8; 9}
+tests/non-free/memchr.c:551:[value] assertion got status valid.
 [value] computing for function Frama_C_interval <- memchr_intervals <- main.
-    Called from tests/non-free/memchr.c:535.
-tests/non-free/memchr.c:535:[value] function Frama_C_interval: precondition got status valid.
+    Called from tests/non-free/memchr.c:553.
+tests/non-free/memchr.c:553:[value] function Frama_C_interval: precondition got status valid.
 [value] Done for function Frama_C_interval
 [value] computing for function Frama_C_interval <- memchr_intervals <- main.
-    Called from tests/non-free/memchr.c:536.
-tests/non-free/memchr.c:536:[value] function Frama_C_interval: precondition got status valid.
+    Called from tests/non-free/memchr.c:554.
+tests/non-free/memchr.c:554:[value] function Frama_C_interval: precondition got status valid.
 [value] Done for function Frama_C_interval
-[value] computing for function my_memchr <- memchr_intervals <- main.
-    Called from tests/non-free/memchr.c:537.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ (void const *)&a{[3], [4], [5], [6], [7],
+tests/non-free/memchr.c:555:[value] function memchr: precondition 'valid' got status valid.
+tests/non-free/memchr.c:555:[value] warning: function memchr: precondition 'initialization' got status unknown.
+tests/non-free/memchr.c:555:[value] function memchr: precondition 'danglingness' got status valid.
+tests/non-free/memchr.c:555:[value] Call to builtin Frama_C_memchr(({{ (void const *)&a{[3], [4], [5], [6], [7],
                                                         [8], [9], [10]} }},
                                     {0},[0..10]))
-tests/non-free/memchr.c:50:[value] builtin Frama_C_memchr: possibly reading indeterminate data
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: {-1; 7; 8; 9}
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-tests/non-free/memchr.c:538:[value] assertion got status valid.
+tests/non-free/memchr.c:555:[value] builtin Frama_C_memchr: possibly reading indeterminate data
+tests/non-free/memchr.c:555:[value] Frama_C_show_each_mymemchr: {-1; 7; 8; 9}
+tests/non-free/memchr.c:556:[value] assertion got status valid.
 [value] computing for function Frama_C_interval <- memchr_intervals <- main.
-    Called from tests/non-free/memchr.c:540.
-tests/non-free/memchr.c:540:[value] function Frama_C_interval: precondition got status valid.
+    Called from tests/non-free/memchr.c:558.
+tests/non-free/memchr.c:558:[value] function Frama_C_interval: precondition got status valid.
 [value] Done for function Frama_C_interval
 [value] computing for function Frama_C_interval <- memchr_intervals <- main.
-    Called from tests/non-free/memchr.c:541.
-tests/non-free/memchr.c:541:[value] function Frama_C_interval: precondition got status valid.
+    Called from tests/non-free/memchr.c:559.
+tests/non-free/memchr.c:559:[value] function Frama_C_interval: precondition got status valid.
 [value] Done for function Frama_C_interval
-[value] computing for function my_memchr <- memchr_intervals <- main.
-    Called from tests/non-free/memchr.c:542.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ (void const *)&a{[3], [4], [5], [6], [7],
+tests/non-free/memchr.c:560:[value] function memchr: precondition 'valid' got status valid.
+tests/non-free/memchr.c:560:[value] warning: function memchr: precondition 'initialization' got status unknown.
+tests/non-free/memchr.c:560:[value] function memchr: precondition 'danglingness' got status valid.
+tests/non-free/memchr.c:560:[value] Call to builtin Frama_C_memchr(({{ (void const *)&a{[3], [4], [5], [6], [7],
                                                         [8], [9], [10]} }},
                                     {0},[0..11]))
-tests/non-free/memchr.c:50:[value] builtin Frama_C_memchr: possibly reading indeterminate data
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: {-1; 7; 8; 9}
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-tests/non-free/memchr.c:543:[value] assertion got status valid.
+tests/non-free/memchr.c:560:[value] builtin Frama_C_memchr: possibly reading indeterminate data
+tests/non-free/memchr.c:560:[value] Frama_C_show_each_mymemchr: {-1; 7; 8; 9}
+tests/non-free/memchr.c:561:[value] assertion got status valid.
 [value] computing for function Frama_C_interval <- memchr_intervals <- main.
-    Called from tests/non-free/memchr.c:545.
-tests/non-free/memchr.c:545:[value] function Frama_C_interval: precondition got status valid.
+    Called from tests/non-free/memchr.c:563.
+tests/non-free/memchr.c:563:[value] function Frama_C_interval: precondition got status valid.
 [value] Done for function Frama_C_interval
 [value] computing for function Frama_C_interval <- memchr_intervals <- main.
-    Called from tests/non-free/memchr.c:546.
-tests/non-free/memchr.c:546:[value] function Frama_C_interval: precondition got status valid.
+    Called from tests/non-free/memchr.c:564.
+tests/non-free/memchr.c:564:[value] function Frama_C_interval: precondition got status valid.
 [value] Done for function Frama_C_interval
-[value] computing for function my_memchr <- memchr_intervals <- main.
-    Called from tests/non-free/memchr.c:547.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ &a + [3..11] }},{0},[0..10]))
-tests/non-free/memchr.c:50:[value] builtin Frama_C_memchr:
+tests/non-free/memchr.c:565:[value] function memchr: precondition 'valid' got status valid.
+tests/non-free/memchr.c:565:[value] warning: function memchr: precondition 'initialization' got status unknown.
+tests/non-free/memchr.c:565:[value] function memchr: precondition 'danglingness' got status valid.
+tests/non-free/memchr.c:565:[value] Call to builtin Frama_C_memchr(({{ &a + [3..11] }},{0},[0..10]))
+tests/non-free/memchr.c:565:[value] builtin Frama_C_memchr:
     range too large and/or imprecise, approximating
     possible uninitialized values
     possible escaping addresses
     possibly reading indeterminate data
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: [-1..19]
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-tests/non-free/memchr.c:548:[value] assertion got status valid.
+tests/non-free/memchr.c:565:[value] Frama_C_show_each_mymemchr: [-1..19]
+tests/non-free/memchr.c:566:[value] assertion got status valid.
 [value] computing for function Frama_C_interval <- memchr_intervals <- main.
-    Called from tests/non-free/memchr.c:550.
-tests/non-free/memchr.c:550:[value] function Frama_C_interval: precondition got status valid.
+    Called from tests/non-free/memchr.c:568.
+tests/non-free/memchr.c:568:[value] function Frama_C_interval: precondition got status valid.
 [value] Done for function Frama_C_interval
 [value] computing for function Frama_C_interval <- memchr_intervals <- main.
-    Called from tests/non-free/memchr.c:551.
-tests/non-free/memchr.c:551:[value] function Frama_C_interval: precondition got status valid.
+    Called from tests/non-free/memchr.c:569.
+tests/non-free/memchr.c:569:[value] function Frama_C_interval: precondition got status valid.
 [value] Done for function Frama_C_interval
-[value] computing for function my_memchr <- memchr_intervals <- main.
-    Called from tests/non-free/memchr.c:552.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ &a + [3..11] }},{0},[0..10]))
-tests/non-free/memchr.c:50:[value] builtin Frama_C_memchr:
+tests/non-free/memchr.c:570:[value] function memchr: precondition 'valid' got status valid.
+tests/non-free/memchr.c:570:[value] warning: function memchr: precondition 'initialization' got status unknown.
+tests/non-free/memchr.c:570:[value] function memchr: precondition 'danglingness' got status valid.
+tests/non-free/memchr.c:570:[value] Call to builtin Frama_C_memchr(({{ &a + [3..11] }},{0},[0..10]))
+tests/non-free/memchr.c:570:[value] builtin Frama_C_memchr:
     range too large and/or imprecise, approximating
     possible uninitialized values
     possible escaping addresses
     possibly reading indeterminate data
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: [-1..19]
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-tests/non-free/memchr.c:553:[value] assertion got status valid.
+tests/non-free/memchr.c:570:[value] Frama_C_show_each_mymemchr: [-1..19]
+tests/non-free/memchr.c:571:[value] assertion got status valid.
 [value] computing for function Frama_C_interval <- memchr_intervals <- main.
-    Called from tests/non-free/memchr.c:555.
-tests/non-free/memchr.c:555:[value] function Frama_C_interval: precondition got status valid.
+    Called from tests/non-free/memchr.c:573.
+tests/non-free/memchr.c:573:[value] function Frama_C_interval: precondition got status valid.
 [value] Done for function Frama_C_interval
 [value] computing for function Frama_C_interval <- memchr_intervals <- main.
-    Called from tests/non-free/memchr.c:556.
-tests/non-free/memchr.c:556:[value] function Frama_C_interval: precondition got status valid.
+    Called from tests/non-free/memchr.c:574.
+tests/non-free/memchr.c:574:[value] function Frama_C_interval: precondition got status valid.
 [value] Done for function Frama_C_interval
-[value] computing for function my_memchr <- memchr_intervals <- main.
-    Called from tests/non-free/memchr.c:557.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ &a + [3..11] }},{0},[0..11]))
-tests/non-free/memchr.c:50:[value] builtin Frama_C_memchr:
+tests/non-free/memchr.c:575:[value] function memchr: precondition 'valid' got status valid.
+tests/non-free/memchr.c:575:[value] warning: function memchr: precondition 'initialization' got status unknown.
+tests/non-free/memchr.c:575:[value] function memchr: precondition 'danglingness' got status valid.
+tests/non-free/memchr.c:575:[value] Call to builtin Frama_C_memchr(({{ &a + [3..11] }},{0},[0..11]))
+tests/non-free/memchr.c:575:[value] builtin Frama_C_memchr:
     range too large and/or imprecise, approximating
     possible uninitialized values
     possible escaping addresses
     possibly reading indeterminate data
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: [-1..19]
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-tests/non-free/memchr.c:558:[value] assertion got status valid.
+tests/non-free/memchr.c:575:[value] Frama_C_show_each_mymemchr: [-1..19]
+tests/non-free/memchr.c:576:[value] assertion got status valid.
 [value] Recording results for memchr_intervals
 [value] Done for function memchr_intervals
 [value] computing for function memchr_small_sets_chars <- main.
-    Called from tests/non-free/memchr.c:662.
-tests/non-free/memchr.c:589:[value] Frama_C_show_each_c: {97}
+    Called from tests/non-free/memchr.c:680.
+tests/non-free/memchr.c:607:[value] Frama_C_show_each_c: {97}
 [value] computing for function memchr_small_sets_no_assertions <- 
                             memchr_small_sets_chars <- main.
-    Called from tests/non-free/memchr.c:590.
-[value] computing for function my_memchr <- memchr_small_sets_no_assertions <- 
-                            memchr_small_sets_chars <- main.
-    Called from tests/non-free/memchr.c:566.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ "abc" + {0; 1} }},{97},{4}))
-tests/non-free/memchr.c:50:[value] builtin Frama_C_memchr: possibly reading indeterminate data
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: {0}
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-[value] computing for function my_memchr <- memchr_small_sets_no_assertions <- 
-                            memchr_small_sets_chars <- main.
-    Called from tests/non-free/memchr.c:569.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ "\000bc" + {0; 1} }},{97},{3}))
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: {-1}
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-[value] computing for function my_memchr <- memchr_small_sets_no_assertions <- 
-                            memchr_small_sets_chars <- main.
-    Called from tests/non-free/memchr.c:571.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ "" }},{97},{0}))
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: {-1}
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-[value] computing for function my_memchr <- memchr_small_sets_no_assertions <- 
-                            memchr_small_sets_chars <- main.
-    Called from tests/non-free/memchr.c:574.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ "b\000c" + {0; 2} }},{97},{2}))
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: {-1}
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-[value] computing for function my_memchr <- memchr_small_sets_no_assertions <- 
-                            memchr_small_sets_chars <- main.
-    Called from tests/non-free/memchr.c:578.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ (void const *)&t }},{97},{4}))
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: {-1; 0; 1}
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
+    Called from tests/non-free/memchr.c:608.
+tests/non-free/memchr.c:584:[value] warning: function memchr: precondition 'valid' got status unknown.
+tests/non-free/memchr.c:584:[value] warning: function memchr: precondition 'initialization' got status unknown.
+tests/non-free/memchr.c:584:[value] warning: function memchr: precondition 'danglingness' got status unknown.
+tests/non-free/memchr.c:584:[value] Call to builtin Frama_C_memchr(({{ "abc" + {0; 1} }},{97},{4}))
+tests/non-free/memchr.c:584:[value] builtin Frama_C_memchr: possibly reading indeterminate data
+tests/non-free/memchr.c:584:[value] Frama_C_show_each_mymemchr: {0}
+tests/non-free/memchr.c:587:[value] function memchr: precondition 'valid' got status valid.
+tests/non-free/memchr.c:587:[value] function memchr: precondition 'initialization' got status valid.
+tests/non-free/memchr.c:587:[value] function memchr: precondition 'danglingness' got status valid.
+tests/non-free/memchr.c:587:[value] Call to builtin Frama_C_memchr(({{ "\000bc" + {0; 1} }},{97},{3}))
+tests/non-free/memchr.c:587:[value] Frama_C_show_each_mymemchr: {-1}
+tests/non-free/memchr.c:589:[value] function memchr: precondition 'valid' got status valid.
+tests/non-free/memchr.c:589:[value] function memchr: precondition 'initialization' got status valid.
+tests/non-free/memchr.c:589:[value] function memchr: precondition 'danglingness' got status valid.
+tests/non-free/memchr.c:589:[value] Call to builtin Frama_C_memchr(({{ "" }},{97},{0}))
+tests/non-free/memchr.c:589:[value] Frama_C_show_each_mymemchr: {-1}
+tests/non-free/memchr.c:592:[value] function memchr: precondition 'valid' got status valid.
+tests/non-free/memchr.c:592:[value] function memchr: precondition 'initialization' got status valid.
+tests/non-free/memchr.c:592:[value] function memchr: precondition 'danglingness' got status valid.
+tests/non-free/memchr.c:592:[value] Call to builtin Frama_C_memchr(({{ "b\000c" + {0; 2} }},{97},{2}))
+tests/non-free/memchr.c:592:[value] Frama_C_show_each_mymemchr: {-1}
+tests/non-free/memchr.c:596:[value] function memchr: precondition 'valid' got status valid.
+tests/non-free/memchr.c:596:[value] function memchr: precondition 'initialization' got status valid.
+tests/non-free/memchr.c:596:[value] function memchr: precondition 'danglingness' got status valid.
+tests/non-free/memchr.c:596:[value] Call to builtin Frama_C_memchr(({{ (void const *)&t }},{97},{4}))
+tests/non-free/memchr.c:596:[value] Frama_C_show_each_mymemchr: {-1; 0; 1}
 [value] Recording results for memchr_small_sets_no_assertions
 [value] Done for function memchr_small_sets_no_assertions
-tests/non-free/memchr.c:591:[value] Frama_C_show_each_res: {0}, {-1}, {-1}, {-1}, {-1; 0; 1}
-tests/non-free/memchr.c:592:[value] assertion got status valid.
-tests/non-free/memchr.c:593:[value] assertion got status valid.
-tests/non-free/memchr.c:594:[value] assertion got status valid.
-tests/non-free/memchr.c:595:[value] assertion got status valid.
-tests/non-free/memchr.c:596:[value] assertion got status valid.
-tests/non-free/memchr.c:599:[value] Frama_C_show_each_c: {98}
+tests/non-free/memchr.c:609:[value] Frama_C_show_each_res: {0}, {-1}, {-1}, {-1}, {-1; 0; 1}
+tests/non-free/memchr.c:610:[value] assertion got status valid.
+tests/non-free/memchr.c:611:[value] assertion got status valid.
+tests/non-free/memchr.c:612:[value] assertion got status valid.
+tests/non-free/memchr.c:613:[value] assertion got status valid.
+tests/non-free/memchr.c:614:[value] assertion got status valid.
+tests/non-free/memchr.c:617:[value] Frama_C_show_each_c: {98}
 [value] computing for function memchr_small_sets_no_assertions <- 
                             memchr_small_sets_chars <- main.
-    Called from tests/non-free/memchr.c:600.
-[value] computing for function my_memchr <- memchr_small_sets_no_assertions <- 
-                            memchr_small_sets_chars <- main.
-    Called from tests/non-free/memchr.c:566.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ "abc" + {0; 1} }},{98},{4}))
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: {1}
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-[value] computing for function my_memchr <- memchr_small_sets_no_assertions <- 
-                            memchr_small_sets_chars <- main.
-    Called from tests/non-free/memchr.c:569.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ "\000bc" + {0; 1} }},{98},{3}))
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: {1}
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-[value] computing for function my_memchr <- memchr_small_sets_no_assertions <- 
-                            memchr_small_sets_chars <- main.
-    Called from tests/non-free/memchr.c:571.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ "" }},{98},{0}))
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: {-1}
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-[value] computing for function my_memchr <- memchr_small_sets_no_assertions <- 
-                            memchr_small_sets_chars <- main.
-    Called from tests/non-free/memchr.c:574.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ "b\000c" + {0; 2} }},{98},{2}))
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: {-1; 0}
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-[value] computing for function my_memchr <- memchr_small_sets_no_assertions <- 
-                            memchr_small_sets_chars <- main.
-    Called from tests/non-free/memchr.c:578.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ (void const *)&t }},{98},{4}))
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: {-1; 0; 1}
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
+    Called from tests/non-free/memchr.c:618.
+tests/non-free/memchr.c:584:[value] Call to builtin Frama_C_memchr(({{ "abc" + {0; 1} }},{98},{4}))
+tests/non-free/memchr.c:584:[value] Frama_C_show_each_mymemchr: {1}
+tests/non-free/memchr.c:587:[value] Call to builtin Frama_C_memchr(({{ "\000bc" + {0; 1} }},{98},{3}))
+tests/non-free/memchr.c:587:[value] Frama_C_show_each_mymemchr: {1}
+tests/non-free/memchr.c:589:[value] Call to builtin Frama_C_memchr(({{ "" }},{98},{0}))
+tests/non-free/memchr.c:589:[value] Frama_C_show_each_mymemchr: {-1}
+tests/non-free/memchr.c:592:[value] Call to builtin Frama_C_memchr(({{ "b\000c" + {0; 2} }},{98},{2}))
+tests/non-free/memchr.c:592:[value] Frama_C_show_each_mymemchr: {-1; 0}
+tests/non-free/memchr.c:596:[value] Call to builtin Frama_C_memchr(({{ (void const *)&t }},{98},{4}))
+tests/non-free/memchr.c:596:[value] Frama_C_show_each_mymemchr: {-1; 0; 1}
 [value] Recording results for memchr_small_sets_no_assertions
 [value] Done for function memchr_small_sets_no_assertions
-tests/non-free/memchr.c:601:[value] Frama_C_show_each_res: {1}, {1}, {-1}, {-1; 0}, {-1; 0; 1}
-tests/non-free/memchr.c:602:[value] assertion got status valid.
-tests/non-free/memchr.c:603:[value] assertion got status valid.
-tests/non-free/memchr.c:604:[value] assertion got status valid.
-tests/non-free/memchr.c:605:[value] assertion got status valid.
-tests/non-free/memchr.c:606:[value] assertion got status valid.
-tests/non-free/memchr.c:609:[value] Frama_C_show_each_c: {97; 98}
+tests/non-free/memchr.c:619:[value] Frama_C_show_each_res: {1}, {1}, {-1}, {-1; 0}, {-1; 0; 1}
+tests/non-free/memchr.c:620:[value] assertion got status valid.
+tests/non-free/memchr.c:621:[value] assertion got status valid.
+tests/non-free/memchr.c:622:[value] assertion got status valid.
+tests/non-free/memchr.c:623:[value] assertion got status valid.
+tests/non-free/memchr.c:624:[value] assertion got status valid.
+tests/non-free/memchr.c:627:[value] Frama_C_show_each_c: {97; 98}
 [value] computing for function memchr_small_sets_no_assertions <- 
                             memchr_small_sets_chars <- main.
-    Called from tests/non-free/memchr.c:610.
-[value] computing for function my_memchr <- memchr_small_sets_no_assertions <- 
-                            memchr_small_sets_chars <- main.
-    Called from tests/non-free/memchr.c:566.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ "abc" + {0; 1} }},{97; 98},{4}))
-tests/non-free/memchr.c:50:[value] builtin Frama_C_memchr: possibly reading indeterminate data
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: {-1; 0; 1}
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-[value] computing for function my_memchr <- memchr_small_sets_no_assertions <- 
-                            memchr_small_sets_chars <- main.
-    Called from tests/non-free/memchr.c:569.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ "\000bc" + {0; 1} }},{97; 98},{3}))
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: {-1; 1}
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-[value] computing for function my_memchr <- memchr_small_sets_no_assertions <- 
-                            memchr_small_sets_chars <- main.
-    Called from tests/non-free/memchr.c:571.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ "" }},{97; 98},{0}))
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: {-1}
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-[value] computing for function my_memchr <- memchr_small_sets_no_assertions <- 
-                            memchr_small_sets_chars <- main.
-    Called from tests/non-free/memchr.c:574.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ "b\000c" + {0; 2} }},{97; 98},{2}))
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: {-1; 0}
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-[value] computing for function my_memchr <- memchr_small_sets_no_assertions <- 
-                            memchr_small_sets_chars <- main.
-    Called from tests/non-free/memchr.c:578.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ (void const *)&t }},{97; 98},{4}))
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: {-1; 0; 1}
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
+    Called from tests/non-free/memchr.c:628.
+tests/non-free/memchr.c:584:[value] Call to builtin Frama_C_memchr(({{ "abc" + {0; 1} }},{97; 98},{4}))
+tests/non-free/memchr.c:584:[value] builtin Frama_C_memchr: possibly reading indeterminate data
+tests/non-free/memchr.c:584:[value] Frama_C_show_each_mymemchr: {-1; 0; 1}
+tests/non-free/memchr.c:587:[value] Call to builtin Frama_C_memchr(({{ "\000bc" + {0; 1} }},{97; 98},{3}))
+tests/non-free/memchr.c:587:[value] Frama_C_show_each_mymemchr: {-1; 1}
+tests/non-free/memchr.c:589:[value] Call to builtin Frama_C_memchr(({{ "" }},{97; 98},{0}))
+tests/non-free/memchr.c:589:[value] Frama_C_show_each_mymemchr: {-1}
+tests/non-free/memchr.c:592:[value] Call to builtin Frama_C_memchr(({{ "b\000c" + {0; 2} }},{97; 98},{2}))
+tests/non-free/memchr.c:592:[value] Frama_C_show_each_mymemchr: {-1; 0}
+tests/non-free/memchr.c:596:[value] Call to builtin Frama_C_memchr(({{ (void const *)&t }},{97; 98},{4}))
+tests/non-free/memchr.c:596:[value] Frama_C_show_each_mymemchr: {-1; 0; 1}
 [value] Recording results for memchr_small_sets_no_assertions
 [value] Done for function memchr_small_sets_no_assertions
-tests/non-free/memchr.c:611:[value] Frama_C_show_each_res: {-1; 0; 1}, {-1; 1}, {-1}, {-1; 0}, {-1; 0; 1}
-tests/non-free/memchr.c:612:[value] assertion got status valid.
-tests/non-free/memchr.c:613:[value] warning: assertion 'refined' got status unknown.
-tests/non-free/memchr.c:614:[value] assertion got status valid.
-tests/non-free/memchr.c:615:[value] assertion got status valid.
-tests/non-free/memchr.c:616:[value] assertion got status valid.
-tests/non-free/memchr.c:617:[value] assertion got status valid.
-tests/non-free/memchr.c:620:[value] Frama_C_show_each_c: {98; 99}
+tests/non-free/memchr.c:629:[value] Frama_C_show_each_res: {-1; 0; 1}, {-1; 1}, {-1}, {-1; 0}, {-1; 0; 1}
+tests/non-free/memchr.c:630:[value] assertion got status valid.
+tests/non-free/memchr.c:631:[value] warning: assertion 'refined' got status unknown.
+tests/non-free/memchr.c:632:[value] assertion got status valid.
+tests/non-free/memchr.c:633:[value] assertion got status valid.
+tests/non-free/memchr.c:634:[value] assertion got status valid.
+tests/non-free/memchr.c:635:[value] assertion got status valid.
+tests/non-free/memchr.c:638:[value] Frama_C_show_each_c: {98; 99}
 [value] computing for function memchr_small_sets_no_assertions <- 
                             memchr_small_sets_chars <- main.
-    Called from tests/non-free/memchr.c:621.
-[value] computing for function my_memchr <- memchr_small_sets_no_assertions <- 
-                            memchr_small_sets_chars <- main.
-    Called from tests/non-free/memchr.c:566.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ "abc" + {0; 1} }},{98; 99},{4}))
-tests/non-free/memchr.c:50:[value] builtin Frama_C_memchr: possibly reading indeterminate data
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: {-1; 1; 2}
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-[value] computing for function my_memchr <- memchr_small_sets_no_assertions <- 
-                            memchr_small_sets_chars <- main.
-    Called from tests/non-free/memchr.c:569.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ "\000bc" + {0; 1} }},{98; 99},{3}))
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: {-1; 1; 2}
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-[value] computing for function my_memchr <- memchr_small_sets_no_assertions <- 
-                            memchr_small_sets_chars <- main.
-    Called from tests/non-free/memchr.c:571.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ "" }},{98; 99},{0}))
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: {-1}
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-[value] computing for function my_memchr <- memchr_small_sets_no_assertions <- 
-                            memchr_small_sets_chars <- main.
-    Called from tests/non-free/memchr.c:574.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ "b\000c" + {0; 2} }},{98; 99},{2}))
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: {-1; 0; 2}
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-[value] computing for function my_memchr <- memchr_small_sets_no_assertions <- 
-                            memchr_small_sets_chars <- main.
-    Called from tests/non-free/memchr.c:578.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ (void const *)&t }},{98; 99},{4}))
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: {-1; 0; 1}
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
+    Called from tests/non-free/memchr.c:639.
+tests/non-free/memchr.c:584:[value] Call to builtin Frama_C_memchr(({{ "abc" + {0; 1} }},{98; 99},{4}))
+tests/non-free/memchr.c:584:[value] builtin Frama_C_memchr: possibly reading indeterminate data
+tests/non-free/memchr.c:584:[value] Frama_C_show_each_mymemchr: {-1; 1; 2}
+tests/non-free/memchr.c:587:[value] Call to builtin Frama_C_memchr(({{ "\000bc" + {0; 1} }},{98; 99},{3}))
+tests/non-free/memchr.c:587:[value] Frama_C_show_each_mymemchr: {-1; 1; 2}
+tests/non-free/memchr.c:589:[value] Call to builtin Frama_C_memchr(({{ "" }},{98; 99},{0}))
+tests/non-free/memchr.c:589:[value] Frama_C_show_each_mymemchr: {-1}
+tests/non-free/memchr.c:592:[value] Call to builtin Frama_C_memchr(({{ "b\000c" + {0; 2} }},{98; 99},{2}))
+tests/non-free/memchr.c:592:[value] Frama_C_show_each_mymemchr: {-1; 0; 2}
+tests/non-free/memchr.c:596:[value] Call to builtin Frama_C_memchr(({{ (void const *)&t }},{98; 99},{4}))
+tests/non-free/memchr.c:596:[value] Frama_C_show_each_mymemchr: {-1; 0; 1}
 [value] Recording results for memchr_small_sets_no_assertions
 [value] Done for function memchr_small_sets_no_assertions
-tests/non-free/memchr.c:622:[value] Frama_C_show_each_res: {-1; 1; 2}, {-1; 1; 2}, {-1}, {-1; 0; 2}, {-1; 0; 1}
-tests/non-free/memchr.c:623:[value] assertion got status valid.
-tests/non-free/memchr.c:624:[value] warning: assertion 'refined' got status unknown.
-tests/non-free/memchr.c:625:[value] assertion got status valid.
-tests/non-free/memchr.c:626:[value] warning: assertion 'refined' got status unknown.
-tests/non-free/memchr.c:627:[value] assertion got status valid.
-tests/non-free/memchr.c:628:[value] assertion got status valid.
-tests/non-free/memchr.c:629:[value] assertion got status valid.
-tests/non-free/memchr.c:632:[value] Frama_C_show_each_c: {0; 98; 99}
+tests/non-free/memchr.c:640:[value] Frama_C_show_each_res: {-1; 1; 2}, {-1; 1; 2}, {-1}, {-1; 0; 2}, {-1; 0; 1}
+tests/non-free/memchr.c:641:[value] assertion got status valid.
+tests/non-free/memchr.c:642:[value] warning: assertion 'refined' got status unknown.
+tests/non-free/memchr.c:643:[value] assertion got status valid.
+tests/non-free/memchr.c:644:[value] warning: assertion 'refined' got status unknown.
+tests/non-free/memchr.c:645:[value] assertion got status valid.
+tests/non-free/memchr.c:646:[value] assertion got status valid.
+tests/non-free/memchr.c:647:[value] assertion got status valid.
+tests/non-free/memchr.c:650:[value] Frama_C_show_each_c: {0; 98; 99}
 [value] computing for function memchr_small_sets_no_assertions <- 
                             memchr_small_sets_chars <- main.
-    Called from tests/non-free/memchr.c:633.
-[value] computing for function my_memchr <- memchr_small_sets_no_assertions <- 
-                            memchr_small_sets_chars <- main.
-    Called from tests/non-free/memchr.c:566.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ "abc" + {0; 1} }},{0; 98; 99},{4}))
-tests/non-free/memchr.c:50:[value] builtin Frama_C_memchr: possibly reading indeterminate data
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: {-1; 1; 2; 3}
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-[value] computing for function my_memchr <- memchr_small_sets_no_assertions <- 
-                            memchr_small_sets_chars <- main.
-    Called from tests/non-free/memchr.c:569.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ "\000bc" + {0; 1} }},{0; 98; 99},{3}))
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: {-1; 0; 1; 2; 3}
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-[value] computing for function my_memchr <- memchr_small_sets_no_assertions <- 
-                            memchr_small_sets_chars <- main.
-    Called from tests/non-free/memchr.c:571.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ "" }},{0; 98; 99},{0}))
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: {-1}
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-[value] computing for function my_memchr <- memchr_small_sets_no_assertions <- 
-                            memchr_small_sets_chars <- main.
-    Called from tests/non-free/memchr.c:574.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ "b\000c" + {0; 2} }},{0; 98; 99},{2}))
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: {-1; 0; 1; 2; 3}
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
-[value] computing for function my_memchr <- memchr_small_sets_no_assertions <- 
-                            memchr_small_sets_chars <- main.
-    Called from tests/non-free/memchr.c:578.
-tests/non-free/memchr.c:50:[value] Call to builtin Frama_C_memchr(({{ (void const *)&t }},{0; 98; 99},{4}))
-tests/non-free/memchr.c:57:[value] Frama_C_show_each_mymemchr: {-1; 0; 1}
-[value] Recording results for my_memchr
-[value] Done for function my_memchr
+    Called from tests/non-free/memchr.c:651.
+tests/non-free/memchr.c:584:[value] Call to builtin Frama_C_memchr(({{ "abc" + {0; 1} }},{0; 98; 99},{4}))
+tests/non-free/memchr.c:584:[value] builtin Frama_C_memchr: possibly reading indeterminate data
+tests/non-free/memchr.c:584:[value] Frama_C_show_each_mymemchr: {-1; 1; 2; 3}
+tests/non-free/memchr.c:587:[value] Call to builtin Frama_C_memchr(({{ "\000bc" + {0; 1} }},{0; 98; 99},{3}))
+tests/non-free/memchr.c:587:[value] Frama_C_show_each_mymemchr: {-1; 0; 1; 2; 3}
+tests/non-free/memchr.c:589:[value] Call to builtin Frama_C_memchr(({{ "" }},{0; 98; 99},{0}))
+tests/non-free/memchr.c:589:[value] Frama_C_show_each_mymemchr: {-1}
+tests/non-free/memchr.c:592:[value] Call to builtin Frama_C_memchr(({{ "b\000c" + {0; 2} }},{0; 98; 99},{2}))
+tests/non-free/memchr.c:592:[value] Frama_C_show_each_mymemchr: {-1; 0; 1; 2; 3}
+tests/non-free/memchr.c:596:[value] Call to builtin Frama_C_memchr(({{ (void const *)&t }},{0; 98; 99},{4}))
+tests/non-free/memchr.c:596:[value] Frama_C_show_each_mymemchr: {-1; 0; 1}
 [value] Recording results for memchr_small_sets_no_assertions
 [value] Done for function memchr_small_sets_no_assertions
-tests/non-free/memchr.c:634:[value] Frama_C_show_each_res:
+tests/non-free/memchr.c:652:[value] Frama_C_show_each_res:
     {-1; 1; 2; 3}, {-1; 0; 1; 2; 3}, {-1}, {-1; 0; 1; 2; 3}, {-1; 0; 1}
-tests/non-free/memchr.c:635:[value] assertion got status valid.
-tests/non-free/memchr.c:636:[value] warning: assertion 'refined' got status unknown.
-tests/non-free/memchr.c:637:[value] assertion got status valid.
-tests/non-free/memchr.c:638:[value] warning: assertion 'refined' got status unknown.
-tests/non-free/memchr.c:639:[value] assertion got status valid.
-tests/non-free/memchr.c:640:[value] assertion got status valid.
-tests/non-free/memchr.c:641:[value] assertion got status valid.
+tests/non-free/memchr.c:653:[value] assertion got status valid.
+tests/non-free/memchr.c:654:[value] warning: assertion 'refined' got status unknown.
+tests/non-free/memchr.c:655:[value] assertion got status valid.
+tests/non-free/memchr.c:656:[value] warning: assertion 'refined' got status unknown.
+tests/non-free/memchr.c:657:[value] assertion got status valid.
+tests/non-free/memchr.c:658:[value] assertion got status valid.
+tests/non-free/memchr.c:659:[value] assertion got status valid.
 [value] Recording results for memchr_small_sets_chars
 [value] Done for function memchr_small_sets_chars
 [value] Recording results for main
 [value] done for function main
 [value] ====== VALUES COMPUTED ======
-[value:final-states] Values at end of function memchr_bitfields:
-  c ∈ {0}
-  s.a ∈ {3}
-   .b ∈ {1}
-   .[bits 16 to 31] ∈ UNINITIALIZED
-   .c ∈ {7}
-   .[bits 49 to 63] ∈ UNINITIALIZED
-  p ∈ {{ (char *)&s }}
-[value:final-states] Values at end of function init_array_nondet:
-  from ∈ {-1}
-  to ∈ {-1}
-  val1 ∈ {-1}
-  val2 ∈ {-1}
-  val ∈ {0; 1; 2; 3; 4}
-  a[0..99] ∈ {0; 1; 2}
-  a[0..39] ∈ {1; 2}
-   [40..49] ∈ UNINITIALIZED
-   [50..94] ∈ {3; 4} or UNINITIALIZED
-   [95..99] ∈ UNINITIALIZED
-  a[0..99] ∈ {0; 1; 2}
-  a[0..9] ∈ {0; 1}
-   [10] ∈ UNINITIALIZED
-   [11] ∈ {0; 1} or UNINITIALIZED
-   [12..15] ∈ {1} or UNINITIALIZED
-   [16..19] ∈ {0; 1} or UNINITIALIZED
-   [20..99] ∈ UNINITIALIZED
-[value:final-states] Values at end of function my_memchr:
-  s ∈
-   {{ &t[0] ; &empty_or_non_terminated[0] ; &non_terminated[0] ;
-      &empty_or_uninitialized[0] ; &s[0] ; &t[0] ; (char const *)&s ; 
-      &a[0] ; &a[0] ; &s[0] ; &maybe_init[0] ; (char const *)&u ;
-      (char const *)&r ; (char const *)&t ; &s[0] ; &a[0] ; &a[0] ; &t[0] ;
-      "" ; "a" ; "aa" ; "aaa" ; "aaaa" ; "aaaaa" ; "aaaaaa" ; "aaaaaaaaa" ;
-      "aaaaaaaaaa" ; "aaaaaaaaaaa" ; "aaaaaaaaaaaa" ; "aaaaaaaaaaaaa" ;
-      "abc" ; "\000bc" ; "" ; "b\000c" ; "Hello World\n" ;
-      "abc\000\000\000abc" ; "Bonjour Monde\n" ; "mno\000pqr" ;
-      "MNOP\000QRS" ; "abc" ; "bcd\000eg" ; "abc" ; "\000bc" ; "" ;
-      "b\000c" }}
-  ss ∈
-    {{ NULL ; &t{[0], [1]} ; &empty_or_non_terminated[0] ;
-       &empty_or_uninitialized[0] ; &s[1] ; &t[3] ; &s + {2} ; &a + [0..99] ;
-       &a + [0..79] ; &s[0] ; &maybe_init[1] ; &u + {1} ; &r + {1} ;
-       &t + {1} ; &s[10] ; &a + [0..99] ; &a + [0..19] ; &t{[0], [1]} ; 
-       "" ; "a" + {1} ; "aa" + {2} ; "aaa" + {3} ; "aaaa" + {4} ;
-       "aaaaa" + {5} ; "aaaaaa" + {6} ; "aaaaaaaaa" + {9} ;
-       "aaaaaaaaaa" + {10} ; "aaaaaaaaaaa" + {11} ; "aaaaaaaaaaaa" + {12} ;
-       "aaaaaaaaaaaaa" + {13} ; "abc" + {3} ; "\000bc" + {0; 3} ;
-       "b\000c" + {1; 3} ; "Hello World\n" + {12} ;
-       "abc\000\000\000abc" + {3; 4; 5; 9} ; "Bonjour Monde\n" + {14} ;
-       "mno\000pqr" + {3; 7} ; "MNOP\000QRS" + {4; 8} ; "abc" + {3} ;
-       "bcd\000eg" + {3} ; "abc" + {0; 1; 2; 3} ; "\000bc" + {0; 1; 2; 3} ;
-       "b\000c" + {0; 1; 2; 3} }}
-  res ∈ [-1..99]
 [value:final-states] Values at end of function memchr_big_array:
   c ∈ {0}
   u[0..199] ∈ {270729319} or UNINITIALIZED
@@ -1343,6 +1078,14 @@ tests/non-free/memchr.c:641:[value] assertion got status valid.
   len_u ∈ {1}
   len_r ∈ {1}
   len_t ∈ {1}
+[value:final-states] Values at end of function memchr_bitfields:
+  c ∈ {0}
+  s.a ∈ {3}
+   .b ∈ {1}
+   .[bits 16 to 31] ∈ UNINITIALIZED
+   .c ∈ {7}
+   .[bits 49 to 63] ∈ UNINITIALIZED
+  p ∈ {{ (char *)&s }}
 [value:final-states] Values at end of function memchr_bitfields2:
   c ∈ {0}
   s.a ∈ {3}
@@ -1368,6 +1111,133 @@ tests/non-free/memchr.c:641:[value] assertion got status valid.
    [2] ∈ {10} or UNINITIALIZED
    [3] ∈ {0}
   z3 ∈ {3}
+[value:final-states] Values at end of function memchr_misc:
+  c ∈ {0}
+  loc_str ∈ {{ "Bonjour Monde\n" }}
+  loc_char_array[0..2] ∈ UNINITIALIZED
+                [3] ∈ {0}
+                [4] ∈ UNINITIALIZED
+  x ∈ {-1412567296}
+  str ∈ {{ (char *)&x }}
+  unterminated_string[0] ∈ {117}
+                     [1] ∈ {110}
+                     [2] ∈ {116}
+                     [3] ∈ {101}
+                     [4] ∈ {114}
+                     [5] ∈ {109}
+                     [6] ∈ {105}
+                     [7] ∈ {110}
+                     [8] ∈ {97}
+                     [9] ∈ {116}
+                     [10] ∈ {101}
+                     [11] ∈ {100}
+  sz1 ∈ {12; 14}
+  sz2 ∈ {0}
+  sz4a ∈ {3}
+  sz4b ∈ {4}
+  sz4c ∈ {5}
+  sz4d ∈ {9}
+  static_str ∈ {{ "Hello World\n" }}
+  zero_str ∈ {{ "abc\000\000\000abc" }}
+[value:final-states] Values at end of function memchr_misc2:
+  c ∈ {0}
+  s1 ∈ {{ "mno\000pqr" ; "MNOP\000QRS" }}
+  sz5 ∈ {3; 4}
+  sz6 ∈ {3; 4}
+  maybe_init[0] ∈ {65} or UNINITIALIZED
+            [1] ∈ {0}
+  sz8 ∈ {1}
+[value:final-states] Values at end of function memchr_misc_array:
+  Frama_C_entropy_source ∈ [--..--]
+  c ∈ {0}
+  i ∈ [0..11]
+  sz3 ∈ [0..13]
+[value:final-states] Values at end of function memchr_no_zero_but_ok:
+  c ∈ {0}
+  s[0..9] ∈ {1}
+   [10] ∈ {0}
+   [11..13] ∈ {1}
+   [14..19] ∈ {0; 1}
+  z1 ∈ {-1}
+  z2 ∈ {10}
+  z3 ∈ {10}
+  z4 ∈ {-1; 10; 14}
+  z5 ∈ {10; 18; 19}
+[value:final-states] Values at end of function memchr_small_sets:
+  c ∈ {0}
+  s ∈ {{ "b\000c" }}
+  o ∈ {0; 2}
+  z1 ∈ {3}
+  z2 ∈ {0; 3}
+  z3 ∈ {-1}
+  z4 ∈ {1; 3}
+  t[0..1] ∈ {0; 1}
+   [2..3] ∈ {1}
+  z5 ∈ {-1; 0; 1}
+[value:final-states] Values at end of function memchr_small_sets_n:
+  c ∈ {0}
+  s ∈ {{ "bcd\000efg" }}
+  n ∈ {2; 7}
+  z1 ∈ {-1; 5}
+  z2 ∈ {-1; 0; 6}
+  z3a ∈ {3}
+  z3b ∈ {-1; 3}
+  z3 ∈ {-1; 3}
+  z4 ∈ {-1; 3; 7}
+[value:final-states] Values at end of function memchr_small_sets_no_assertions:
+  s ∈ {{ "b\000c" }}
+  o ∈ {0; 2}
+  t[0..1] ∈ {0; 1; 97; 98; 99}
+   [2..3] ∈ {1}
+  res[0..1] ∈ {-1; 0; 1; 2; 3}
+     [2] ∈ {-1}
+     [3] ∈ {-1; 0; 1; 2; 3}
+     [4] ∈ {-1; 0; 1}
+  __retres ∈ {0}
+[value:final-states] Values at end of function memchr_small_sets_chars:
+  c ∈ {0; 98; 99}
+  res[0] ∈ {1; 2; 3}
+     [1] ∈ {0; 1; 2; 3}
+     [2] ∈ {-1}
+     [3] ∈ {-1; 0; 1; 2; 3}
+     [4] ∈ {-1; 0; 1}
+[value:final-states] Values at end of function memchr_unbounded_n:
+  c ∈ {0}
+  n ∈ [0..2147483647]
+  s ∈ {{ "bcd\000eg" }}
+  zu1 ∈ {-1; 3}
+  o ∈ {0; 1}
+  zu2 ∈ {-1; 3}
+  zu3 ∈ {-1; 3}
+[value:final-states] Values at end of function memchr_zero_termination:
+  c ∈ {0}
+  empty_or_non_terminated[0] ∈ {0; 100}
+  z1 ∈ {-1; 0}
+  non_terminated[0] ∈ {88}
+  z2 ∈ {-1}
+  non_terminated2[0] ∈ {76}
+                 [1] ∈ {0}
+                 [2] ∈ {28}
+                 [3] ∈ {14}
+  o ∈ {2; 3}
+[value:final-states] Values at end of function init_array_nondet:
+  from ∈ {-1}
+  to ∈ {-1}
+  val1 ∈ {-1}
+  val2 ∈ {-1}
+  val ∈ {0; 1; 2; 3; 4}
+  a[0..99] ∈ {0; 1; 2}
+  a[0..39] ∈ {1; 2}
+   [40..49] ∈ UNINITIALIZED
+   [50..94] ∈ {3; 4} or UNINITIALIZED
+   [95..99] ∈ UNINITIALIZED
+  a[0..99] ∈ {0; 1; 2}
+  a[0..9] ∈ {0; 1}
+   [10] ∈ UNINITIALIZED
+   [11] ∈ {0; 1} or UNINITIALIZED
+   [12..15] ∈ {1} or UNINITIALIZED
+   [16..19] ∈ {0; 1} or UNINITIALIZED
+   [20..99] ∈ UNINITIALIZED
 [value:final-states] Values at end of function memchr_intervals:
   Frama_C_entropy_source ∈ [--..--]
   c ∈ {0}
@@ -1432,163 +1302,37 @@ tests/non-free/memchr.c:641:[value] assertion got status valid.
   z1 ∈ {20}
   z2 ∈ {75}
   z3 ∈ {75}
-[value:final-states] Values at end of function memchr_misc_array:
-  Frama_C_entropy_source ∈ [--..--]
-  c ∈ {0}
-  i ∈ [0..11]
-  sz3 ∈ [0..13]
-[value:final-states] Values at end of function memchr_small_sets:
-  c ∈ {0}
-  s ∈ {{ "b\000c" }}
-  o ∈ {0; 2}
-  z1 ∈ {3}
-  z2 ∈ {0; 3}
-  z3 ∈ {-1}
-  z4 ∈ {1; 3}
-  t[0..1] ∈ {0; 1}
-   [2..3] ∈ {1}
-  z5 ∈ {-1; 0; 1}
-[value:final-states] Values at end of function memchr_small_sets_no_assertions:
-  s ∈ {{ "b\000c" }}
-  o ∈ {0; 2}
-  t[0..1] ∈ {0; 1; 97; 98; 99}
-   [2..3] ∈ {1}
-  res[0..1] ∈ {-1; 0; 1; 2; 3}
-     [2] ∈ {-1}
-     [3] ∈ {-1; 0; 1; 2; 3}
-     [4] ∈ {-1; 0; 1}
-  __retres ∈ {0}
-[value:final-states] Values at end of function memchr_small_sets_chars:
-  c ∈ {0; 98; 99}
-  res[0] ∈ {1; 2; 3}
-     [1] ∈ {0; 1; 2; 3}
-     [2] ∈ {-1}
-     [3] ∈ {-1; 0; 1; 2; 3}
-     [4] ∈ {-1; 0; 1}
-[value:final-states] Values at end of function memchr_unbounded_n:
-  c ∈ {0}
-  n ∈ [0..2147483647]
-  s ∈ {{ "bcd\000eg" }}
-  zu1 ∈ {-1; 3}
-  o ∈ {0; 1}
-  zu2 ∈ {-1; 3}
-  zu3 ∈ {-1; 3}
-[value:final-states] Values at end of function memchr_zero_termination:
-  c ∈ {0}
-  empty_or_non_terminated[0] ∈ {0; 100}
-  z1 ∈ {-1; 0}
-  non_terminated[0] ∈ {88}
-  z2 ∈ {-1}
-  non_terminated2[0] ∈ {76}
-                 [1] ∈ {0}
-                 [2] ∈ {28}
-                 [3] ∈ {14}
-  o ∈ {2; 3}
-[value:final-states] Values at end of function my_memchr2:
-  p ∈
-   {{ &x + {0; 3} ; &s{[1], [7], [8], [11], [18]} ; "abc" + {0; 1} ;
-      "ABCD" + {0; 1} ; "efg" + {1; 2} ; "EFGH" + {1; 2} ; "abcde" + {0; 1} ;
-      "\000bcdef" + {0; 1} ; "bcd\000efg" + {0; 2; 4} }}
-  s ∈
-   {{ NULL ; (char *)&x ; &s{[10], [14], [18], [19]} ; "abc" + {3} ;
-      "ABCD" + {4} ; "efg" + {3} ; "EFGH" + {4} ; "abcde" + {5} ;
-      "\000bcdef" + {0; 6} ; "bcd\000efg" + {3; 7} }}
-  res ∈ [-1..19]
-[value:final-states] Values at end of function memchr_misc:
-  c ∈ {0}
-  loc_str ∈ {{ "Bonjour Monde\n" }}
-  loc_char_array[0..2] ∈ UNINITIALIZED
-                [3] ∈ {0}
-                [4] ∈ UNINITIALIZED
-  sz1 ∈ {12; 14}
-  sz2 ∈ {0}
-  sz4a ∈ {3}
-  sz4b ∈ {4}
-  sz4c ∈ {5}
-  sz4d ∈ {9}
-  x ∈ {-1412567296}
-  str ∈ {{ (char *)&x }}
-  unterminated_string[0] ∈ {117}
-                     [1] ∈ {110}
-                     [2] ∈ {116}
-                     [3] ∈ {101}
-                     [4] ∈ {114}
-                     [5] ∈ {109}
-                     [6] ∈ {105}
-                     [7] ∈ {110}
-                     [8] ∈ {97}
-                     [9] ∈ {116}
-                     [10] ∈ {101}
-                     [11] ∈ {100}
-  static_str ∈ {{ "Hello World\n" }}
-  zero_str ∈ {{ "abc\000\000\000abc" }}
-[value:final-states] Values at end of function memchr_misc2:
-  c ∈ {0}
-  sz5 ∈ {3; 4}
-  sz6 ∈ {3; 4}
-  sz7 ∈ {3; 4; 7; 8} or UNINITIALIZED
-  sz8 ∈ {1}
-  s1 ∈ {{ "mno\000pqr" ; "MNOP\000QRS" }}
-  maybe_init[0] ∈ {65} or UNINITIALIZED
-            [1] ∈ {0}
-[value:final-states] Values at end of function memchr_no_zero_but_ok:
-  c ∈ {0}
-  s[0..9] ∈ {1}
-   [10] ∈ {0}
-   [11..13] ∈ {1}
-   [14..19] ∈ {0; 1}
-  z1 ∈ {-1}
-  z2 ∈ {10}
-  z3 ∈ {10}
-  z4 ∈ {-1; 10; 14}
-  z5 ∈ {10; 18; 19}
-[value:final-states] Values at end of function memchr_small_sets_n:
-  c ∈ {0}
-  s ∈ {{ "bcd\000efg" }}
-  n ∈ {2; 7}
-  z1 ∈ {-1; 5}
-  z2 ∈ {-1; 0; 6}
-  z3a ∈ {3}
-  z3b ∈ {-1; 3}
-  z3 ∈ {-1; 3}
-  z4 ∈ {-1; 3; 7}
-[value:final-states] Values at end of function main:
+[value:final-states] Values at end of function main:
   Frama_C_entropy_source ∈ [--..--]
   static_str ∈ {{ "Hello World\n" }}
   zero_str ∈ {{ "abc\000\000\000abc" }}
   __retres ∈ {0}
-[from] Computing for function memchr_bitfields
-[from] Computing for function memchr <-memchr_bitfields
-[from] Done for function memchr
-[from] Done for function memchr_bitfields
-[from] Computing for function init_array_nondet
-[from] Computing for function memset <-init_array_nondet
-[from] Done for function memset
-[from] Done for function init_array_nondet
-[from] Computing for function my_memchr
-[from] Done for function my_memchr
 [from] Computing for function memchr_big_array
+[from] Computing for function memchr <-memchr_big_array
+[from] Done for function memchr
 [from] Done for function memchr_big_array
+[from] Computing for function memchr_bitfields
+[from] Done for function memchr_bitfields
 [from] Computing for function memchr_bitfields2
 [from] Done for function memchr_bitfields2
 [from] Computing for function memchr_escaping
 [from] Done for function memchr_escaping
 [from] Computing for function memchr_initialization
 [from] Done for function memchr_initialization
-[from] Computing for function memchr_intervals
-[from] Computing for function Frama_C_interval <-memchr_intervals
-[from] Done for function Frama_C_interval
-[from] Done for function memchr_intervals
-[from] Computing for function memchr_large
-[from] Done for function memchr_large
-[from] Computing for function memchr_large_n
-[from] Done for function memchr_large_n
-[from] Computing for function memchr_large_uninit
-[from] Done for function memchr_large_uninit
+[from] Computing for function memchr_misc
+[from] Done for function memchr_misc
+[from] Computing for function memchr_misc2
+[from] Done for function memchr_misc2
 [from] Computing for function memchr_misc_array
+[from] Computing for function Frama_C_interval <-memchr_misc_array
+[from] Done for function Frama_C_interval
 [from] Done for function memchr_misc_array
+[from] Computing for function memchr_no_zero_but_ok
+[from] Done for function memchr_no_zero_but_ok
 [from] Computing for function memchr_small_sets
 [from] Done for function memchr_small_sets
+[from] Computing for function memchr_small_sets_n
+[from] Done for function memchr_small_sets_n
 [from] Computing for function memchr_small_sets_no_assertions
 [from] Done for function memchr_small_sets_no_assertions
 [from] Computing for function memchr_small_sets_chars
@@ -1597,16 +1341,18 @@ tests/non-free/memchr.c:641:[value] assertion got status valid.
 [from] Done for function memchr_unbounded_n
 [from] Computing for function memchr_zero_termination
 [from] Done for function memchr_zero_termination
-[from] Computing for function my_memchr2
-[from] Done for function my_memchr2
-[from] Computing for function memchr_misc
-[from] Done for function memchr_misc
-[from] Computing for function memchr_misc2
-[from] Done for function memchr_misc2
-[from] Computing for function memchr_no_zero_but_ok
-[from] Done for function memchr_no_zero_but_ok
-[from] Computing for function memchr_small_sets_n
-[from] Done for function memchr_small_sets_n
+[from] Computing for function init_array_nondet
+[from] Computing for function memset <-init_array_nondet
+[from] Done for function memset
+[from] Done for function init_array_nondet
+[from] Computing for function memchr_intervals
+[from] Done for function memchr_intervals
+[from] Computing for function memchr_large
+[from] Done for function memchr_large
+[from] Computing for function memchr_large_n
+[from] Done for function memchr_large_n
+[from] Computing for function memchr_large_uninit
+[from] Done for function memchr_large_uninit
 [from] Computing for function main
 [from] Done for function main
 [from] ====== DEPENDENCIES COMPUTED ======
@@ -1635,60 +1381,29 @@ tests/non-free/memchr.c:641:[value] assertion got status valid.
                "abcde"[bits 0 to 47]; "\000bcdef"[bits 0 to 55];
                "bcd\000efg"[bits 0 to 63]; "abc"; "bcd\000eg"[bits 0 to 55];
                "abc"; "\000bc"; ""[bits 0 to 7]; "b\000c"
-[from] Function memchr_bitfields:
-  NO EFFECTS
-[from] Function memset:
-  a[0..99] FROM c (and SELF)
-  a[0..99] FROM c (and SELF)
-  a[0..99] FROM c (and SELF)
-  a[0..99] FROM c (and SELF)
-  \result FROM s
-[from] Function init_array_nondet:
-  a[0..99] FROM val1; val2; nondet (and SELF)
-  a[0..99] FROM val1; val2; nondet (and SELF)
-  a[0..99] FROM val1; val2; nondet (and SELF)
-  a[0..99] FROM val1; val2; nondet (and SELF)
-[from] Function my_memchr:
-  \result FROM p; offs; c; t[0..3]; empty_or_non_terminated[0];
-               non_terminated[0]; non_terminated2[2..3];
-               empty_or_uninitialized[0]; uninitialized[0]; s[0..1]; 
-               t[0..3]; s; a[3..99]; a[3..99]; s[0..3]; loc_char_array[0..4];
-               x; unterminated_string[0..11]; maybe_init[0..1]; u[0..199];
-               r[0..200]; t[0..999999]; s[0..19]; a[0..99]; a[0..99];
-               t[0..3]; ""[bits 0 to 7]; "a"[bits 0 to 15];
-               "aa"[bits 0 to 23]; "aaa"; "aaaa"[bits 0 to 39];
-               "aaaaa"[bits 0 to 47]; "aaaaaa"[bits 0 to 55];
-               "aaaaaaaaa"[bits 0 to 79]; "aaaaaaaaaa"[bits 0 to 87];
-               "aaaaaaaaaaa"[bits 0 to 95]; "aaaaaaaaaaaa"[bits 0 to 103];
-               "aaaaaaaaaaaaa"[bits 0 to 111]; "abc"; "\000bc";
-               ""[bits 0 to 7]; "b\000c"; "Hello World\n"[bits 0 to 103];
-               "abc\000\000\000abc"[bits 0 to 79];
-               "Bonjour Monde\n"[bits 0 to 119]; "abc"; "ABCD"[bits 0 to 39];
-               "efg"[bits 8 to 31]; "EFGH"[bits 8 to 39];
-               "mno\000pqr"[bits 0 to 63]; "MNOP\000QRS"[bits 0 to 71];
-               "abcde"[bits 0 to 47]; "\000bcdef"[bits 0 to 55];
-               "bcd\000efg"[bits 0 to 63]; "abc"; "bcd\000eg"[bits 0 to 55];
-               "abc"; "\000bc"; ""[bits 0 to 7]; "b\000c"
 [from] Function memchr_big_array:
   NO EFFECTS
+[from] Function memchr_bitfields:
+  NO EFFECTS
 [from] Function memchr_bitfields2:
   NO EFFECTS
 [from] Function memchr_escaping:
   NO EFFECTS
 [from] Function memchr_initialization:
   NO EFFECTS
-[from] Function memchr_intervals:
-  Frama_C_entropy_source FROM Frama_C_entropy_source (and SELF)
-[from] Function memchr_large:
-  Frama_C_entropy_source FROM Frama_C_entropy_source (and SELF)
-[from] Function memchr_large_n:
-  Frama_C_entropy_source FROM Frama_C_entropy_source (and SELF)
-[from] Function memchr_large_uninit:
-  Frama_C_entropy_source FROM Frama_C_entropy_source (and SELF)
+[from] Function memchr_misc:
+  static_str FROM \nothing
+  zero_str FROM \nothing
+[from] Function memchr_misc2:
+  NO EFFECTS
 [from] Function memchr_misc_array:
   Frama_C_entropy_source FROM Frama_C_entropy_source (and SELF)
+[from] Function memchr_no_zero_but_ok:
+  NO EFFECTS
 [from] Function memchr_small_sets:
   NO EFFECTS
+[from] Function memchr_small_sets_n:
+  NO EFFECTS
 [from] Function memchr_small_sets_no_assertions:
   res{[0..1]; [3..4]}
      FROM c; res; nondet; ""[bits 0 to 7]; "a"[bits 0 to 15];
@@ -1726,290 +1441,144 @@ tests/non-free/memchr.c:641:[value] assertion got status valid.
   NO EFFECTS
 [from] Function memchr_zero_termination:
   NO EFFECTS
-[from] Function my_memchr2:
-  \result FROM base; offs1; offs2; c; loc_char_array[0..4]; x;
-               unterminated_string[0..11]; maybe_init[0..1]; s[0..19];
-               nondet; ""[bits 0 to 7]; "a"[bits 0 to 15];
-               "aa"[bits 0 to 23]; "aaa"; "aaaa"[bits 0 to 39];
-               "aaaaa"[bits 0 to 47]; "aaaaaa"[bits 0 to 55];
-               "aaaaaaaaa"[bits 0 to 79]; "aaaaaaaaaa"[bits 0 to 87];
-               "aaaaaaaaaaa"[bits 0 to 95]; "aaaaaaaaaaaa"[bits 0 to 103];
-               "aaaaaaaaaaaaa"[bits 0 to 111]; "abc"; "\000bc";
-               ""[bits 0 to 7]; "b\000c"; "Hello World\n"[bits 0 to 103];
-               "abc\000\000\000abc"[bits 0 to 79];
-               "Bonjour Monde\n"[bits 0 to 119]; "abc"; "ABCD"[bits 0 to 39];
-               "efg"[bits 8 to 31]; "EFGH"[bits 8 to 39];
-               "mno\000pqr"[bits 0 to 63]; "MNOP\000QRS"[bits 0 to 71];
-               "abcde"[bits 0 to 47]; "\000bcdef"[bits 0 to 55];
-               "bcd\000efg"[bits 0 to 63]; "abc"; "bcd\000eg"[bits 0 to 55];
-               "abc"; "\000bc"; ""[bits 0 to 7]; "b\000c"
-[from] Function memchr_misc:
-  static_str FROM \nothing
-  zero_str FROM \nothing
-[from] Function memchr_misc2:
-  NO EFFECTS
-[from] Function memchr_no_zero_but_ok:
-  NO EFFECTS
-[from] Function memchr_small_sets_n:
-  NO EFFECTS
+[from] Function memset:
+  a[0..99] FROM c (and SELF)
+  a[0..99] FROM c (and SELF)
+  a[0..99] FROM c (and SELF)
+  a[0..99] FROM c (and SELF)
+  \result FROM s
+[from] Function init_array_nondet:
+  a[0..99] FROM val1; val2; nondet (and SELF)
+  a[0..99] FROM val1; val2; nondet (and SELF)
+  a[0..99] FROM val1; val2; nondet (and SELF)
+  a[0..99] FROM val1; val2; nondet (and SELF)
+[from] Function memchr_intervals:
+  Frama_C_entropy_source FROM Frama_C_entropy_source (and SELF)
+[from] Function memchr_large:
+  Frama_C_entropy_source FROM Frama_C_entropy_source (and SELF)
+[from] Function memchr_large_n:
+  Frama_C_entropy_source FROM Frama_C_entropy_source (and SELF)
+[from] Function memchr_large_uninit:
+  Frama_C_entropy_source FROM Frama_C_entropy_source (and SELF)
 [from] Function main:
   Frama_C_entropy_source FROM Frama_C_entropy_source (and SELF)
   static_str FROM \nothing
   zero_str FROM \nothing
   \result FROM \nothing
 [from] ====== END OF DEPENDENCIES ======
+[inout] Out (internal) for function memchr_big_array:
+      c; u[0..199]; r[0..200]; t[0..999999]; p; len_u; len_r; len_t; _s; 
+      _ss; _res; _s_0; _ss_0; _res_0; _s_1; _ss_1; _res_1; _s_2; _ss_2; _res_2;
+      _s_3; _ss_3; _res_3; _s_4; _ss_4; _res_4
+[inout] Inputs for function memchr_big_array:
+      nondet
 [inout] Out (internal) for function memchr_bitfields:
       c; s{{.a; .b}; .c}; p
 [inout] Inputs for function memchr_bitfields:
       nondet
-[inout] Out (internal) for function init_array_nondet:
-      from; to; val1; val2; val; tmp; a[0..99]; a{[0..39]; [50..94]}; a[0..99];
-      a{[0..9]; [11..19]}
-[inout] Inputs for function init_array_nondet:
-      nondet
-[inout] Out (internal) for function my_memchr:
-      s; ss; res
-[inout] Inputs for function my_memchr:
-      t[0..3]; empty_or_non_terminated[0]; non_terminated[0];
-      non_terminated2[0..3]; empty_or_uninitialized[0]; uninitialized[0];
-      s[0..1]; t[0..3]; s; a[0..99]; a[0..99]; s[0..3]; loc_char_array[0..4];
-      unterminated_string[0..11]; maybe_init[0..1]; u[0..199]; r[0..200];
-      t[0..999999]; s[0..19]; a[0..99]; a[0..99]; t[0..3]; ""[bits 0 to 7];
-      "a"[bits 0 to 15]; "aa"[bits 0 to 23]; "aaa"; "aaaa"[bits 0 to 39];
-      "aaaaa"[bits 0 to 47]; "aaaaaa"[bits 0 to 55]; "aaaaaaaaa"[bits 0 to 79];
-      "aaaaaaaaaa"[bits 0 to 87]; "aaaaaaaaaaa"[bits 0 to 95];
-      "aaaaaaaaaaaa"[bits 0 to 103]; "aaaaaaaaaaaaa"[bits 0 to 111]; "abc";
-      "\000bc"; ""[bits 0 to 7]; "b\000c"; "Hello World\n"[bits 0 to 103];
-      "abc\000\000\000abc"[bits 0 to 79]; "Bonjour Monde\n"[bits 0 to 119];
-      "mno\000pqr"[bits 0 to 63]; "MNOP\000QRS"[bits 0 to 71]; "abc";
-      "bcd\000eg"[bits 0 to 55]; "abc"; "\000bc"; ""[bits 0 to 7]; "b\000c"
-[inout] Out (internal) for function memchr_big_array:
-      c; u[0..199]; r[0..200]; t[0..999999]; p; len_u; len_r; len_t
-[inout] Inputs for function memchr_big_array:
-      nondet; ""[bits 0 to 7]; "a"[bits 0 to 15]; "aa"[bits 0 to 23]; "aaa";
-      "aaaa"[bits 0 to 39]; "aaaaa"[bits 0 to 47]; "aaaaaa"[bits 0 to 55];
-      "aaaaaaaaa"[bits 0 to 79]; "aaaaaaaaaa"[bits 0 to 87];
-      "aaaaaaaaaaa"[bits 0 to 95]; "aaaaaaaaaaaa"[bits 0 to 103];
-      "aaaaaaaaaaaaa"[bits 0 to 111]; "abc"; "\000bc"; ""[bits 0 to 7]; "b\000c";
-      "Hello World\n"[bits 0 to 103]; "abc\000\000\000abc"[bits 0 to 79];
-      "Bonjour Monde\n"[bits 0 to 119]; "mno\000pqr"[bits 0 to 63];
-      "MNOP\000QRS"[bits 0 to 71]; "abc"; "bcd\000eg"[bits 0 to 55]; "abc";
-      "\000bc"; ""[bits 0 to 7]; "b\000c"
 [inout] Out (internal) for function memchr_bitfields2:
-      c; s{.a; .b; .c}; p; z1
+      c; s{.a; .b; .c}; p; z1; _s; _ss; _res
 [inout] Inputs for function memchr_bitfields2:
-      ""[bits 0 to 7]; "a"[bits 0 to 15]; "aa"[bits 0 to 23]; "aaa";
-      "aaaa"[bits 0 to 39]; "aaaaa"[bits 0 to 47]; "aaaaaa"[bits 0 to 55];
-      "aaaaaaaaa"[bits 0 to 79]; "aaaaaaaaaa"[bits 0 to 87];
-      "aaaaaaaaaaa"[bits 0 to 95]; "aaaaaaaaaaaa"[bits 0 to 103];
-      "aaaaaaaaaaaaa"[bits 0 to 111]; "abc"; "\000bc"; ""[bits 0 to 7]; "b\000c";
-      "Hello World\n"[bits 0 to 103]; "abc\000\000\000abc"[bits 0 to 79];
-      "Bonjour Monde\n"[bits 0 to 119]; "mno\000pqr"[bits 0 to 63];
-      "MNOP\000QRS"[bits 0 to 71]; "abc"; "bcd\000eg"[bits 0 to 55]; "abc";
-      "\000bc"; ""[bits 0 to 7]; "b\000c"
+      \nothing
 [inout] Out (internal) for function memchr_escaping:
-      c; s[0..3]; z1; z2
+      c; s[0..3]; z1; _s; _ss; _res; z2; _s_0; _ss_0; _res_0
 [inout] Inputs for function memchr_escaping:
-      nondet; ""[bits 0 to 7]; "a"[bits 0 to 15]; "aa"[bits 0 to 23]; "aaa";
-      "aaaa"[bits 0 to 39]; "aaaaa"[bits 0 to 47]; "aaaaaa"[bits 0 to 55];
-      "aaaaaaaaa"[bits 0 to 79]; "aaaaaaaaaa"[bits 0 to 87];
-      "aaaaaaaaaaa"[bits 0 to 95]; "aaaaaaaaaaaa"[bits 0 to 103];
-      "aaaaaaaaaaaaa"[bits 0 to 111]; "abc"; "\000bc"; ""[bits 0 to 7]; "b\000c";
-      "Hello World\n"[bits 0 to 103]; "abc\000\000\000abc"[bits 0 to 79];
-      "Bonjour Monde\n"[bits 0 to 119]; "mno\000pqr"[bits 0 to 63];
-      "MNOP\000QRS"[bits 0 to 71]; "abc"; "bcd\000eg"[bits 0 to 55]; "abc";
-      "\000bc"; ""[bits 0 to 7]; "b\000c"
+      nondet
 [inout] Out (internal) for function memchr_initialization:
-      c; empty_or_uninitialized[0]; z1; s[0..1]; z2; t[0..3]; z3
+      c; empty_or_uninitialized[0]; z1; _s; _ss; _res; s[0..1]; z2; _s_0; 
+      _ss_0; _res_0; t[0..3]; z3; _s_1; _ss_1; _res_1
 [inout] Inputs for function memchr_initialization:
-      nondet; ""[bits 0 to 7]; "a"[bits 0 to 15]; "aa"[bits 0 to 23]; "aaa";
-      "aaaa"[bits 0 to 39]; "aaaaa"[bits 0 to 47]; "aaaaaa"[bits 0 to 55];
-      "aaaaaaaaa"[bits 0 to 79]; "aaaaaaaaaa"[bits 0 to 87];
-      "aaaaaaaaaaa"[bits 0 to 95]; "aaaaaaaaaaaa"[bits 0 to 103];
-      "aaaaaaaaaaaaa"[bits 0 to 111]; "abc"; "\000bc"; ""[bits 0 to 7]; "b\000c";
-      "Hello World\n"[bits 0 to 103]; "abc\000\000\000abc"[bits 0 to 79];
-      "Bonjour Monde\n"[bits 0 to 119]; "mno\000pqr"[bits 0 to 63];
-      "MNOP\000QRS"[bits 0 to 71]; "abc"; "bcd\000eg"[bits 0 to 55]; "abc";
-      "\000bc"; ""[bits 0 to 7]; "b\000c"
-[inout] Out (internal) for function memchr_intervals:
-      Frama_C_entropy_source; c; a{[0..9]; [11..19]}; offset; n; z1; z2; 
-      z3; z4; z5; z6; z7; z8; z9
-[inout] Inputs for function memchr_intervals:
-      Frama_C_entropy_source; nondet; ""[bits 0 to 7]; "a"[bits 0 to 15];
-      "aa"[bits 0 to 23]; "aaa"; "aaaa"[bits 0 to 39]; "aaaaa"[bits 0 to 47];
-      "aaaaaa"[bits 0 to 55]; "aaaaaaaaa"[bits 0 to 79];
-      "aaaaaaaaaa"[bits 0 to 87]; "aaaaaaaaaaa"[bits 0 to 95];
-      "aaaaaaaaaaaa"[bits 0 to 103]; "aaaaaaaaaaaaa"[bits 0 to 111]; "abc";
-      "\000bc"; ""[bits 0 to 7]; "b\000c"; "Hello World\n"[bits 0 to 103];
-      "abc\000\000\000abc"[bits 0 to 79]; "Bonjour Monde\n"[bits 0 to 119];
-      "mno\000pqr"[bits 0 to 63]; "MNOP\000QRS"[bits 0 to 71]; "abc";
-      "bcd\000eg"[bits 0 to 55]; "abc"; "\000bc"; ""[bits 0 to 7]; "b\000c"
-[inout] Out (internal) for function memchr_large:
-      Frama_C_entropy_source; c; a[0..99]; offset; z1; z2; z3; z4; z5
-[inout] Inputs for function memchr_large:
-      Frama_C_entropy_source; nondet; ""[bits 0 to 7]; "a"[bits 0 to 15];
-      "aa"[bits 0 to 23]; "aaa"; "aaaa"[bits 0 to 39]; "aaaaa"[bits 0 to 47];
-      "aaaaaa"[bits 0 to 55]; "aaaaaaaaa"[bits 0 to 79];
-      "aaaaaaaaaa"[bits 0 to 87]; "aaaaaaaaaaa"[bits 0 to 95];
-      "aaaaaaaaaaaa"[bits 0 to 103]; "aaaaaaaaaaaaa"[bits 0 to 111]; "abc";
-      "\000bc"; ""[bits 0 to 7]; "b\000c"; "Hello World\n"[bits 0 to 103];
-      "abc\000\000\000abc"[bits 0 to 79]; "Bonjour Monde\n"[bits 0 to 119];
-      "mno\000pqr"[bits 0 to 63]; "MNOP\000QRS"[bits 0 to 71]; "abc";
-      "bcd\000eg"[bits 0 to 55]; "abc"; "\000bc"; ""[bits 0 to 7]; "b\000c"
-[inout] Out (internal) for function memchr_large_n:
-      Frama_C_entropy_source; c; a[0..99]; offset; n; z1; z2; z3; z4; z5; 
-      z6; z7; z8; z9
-[inout] Inputs for function memchr_large_n:
-      Frama_C_entropy_source; nondet; ""[bits 0 to 7]; "a"[bits 0 to 15];
-      "aa"[bits 0 to 23]; "aaa"; "aaaa"[bits 0 to 39]; "aaaaa"[bits 0 to 47];
-      "aaaaaa"[bits 0 to 55]; "aaaaaaaaa"[bits 0 to 79];
-      "aaaaaaaaaa"[bits 0 to 87]; "aaaaaaaaaaa"[bits 0 to 95];
-      "aaaaaaaaaaaa"[bits 0 to 103]; "aaaaaaaaaaaaa"[bits 0 to 111]; "abc";
-      "\000bc"; ""[bits 0 to 7]; "b\000c"; "Hello World\n"[bits 0 to 103];
-      "abc\000\000\000abc"[bits 0 to 79]; "Bonjour Monde\n"[bits 0 to 119];
-      "mno\000pqr"[bits 0 to 63]; "MNOP\000QRS"[bits 0 to 71]; "abc";
-      "bcd\000eg"[bits 0 to 55]; "abc"; "\000bc"; ""[bits 0 to 7]; "b\000c"
-[inout] Out (internal) for function memchr_large_uninit:
-      Frama_C_entropy_source; c; a{[0..39]; [50..94]; [98]}; offset; z1; z2; z3
-[inout] Inputs for function memchr_large_uninit:
-      Frama_C_entropy_source; nondet; ""[bits 0 to 7]; "a"[bits 0 to 15];
-      "aa"[bits 0 to 23]; "aaa"; "aaaa"[bits 0 to 39]; "aaaaa"[bits 0 to 47];
-      "aaaaaa"[bits 0 to 55]; "aaaaaaaaa"[bits 0 to 79];
-      "aaaaaaaaaa"[bits 0 to 87]; "aaaaaaaaaaa"[bits 0 to 95];
-      "aaaaaaaaaaaa"[bits 0 to 103]; "aaaaaaaaaaaaa"[bits 0 to 111]; "abc";
-      "\000bc"; ""[bits 0 to 7]; "b\000c"; "Hello World\n"[bits 0 to 103];
-      "abc\000\000\000abc"[bits 0 to 79]; "Bonjour Monde\n"[bits 0 to 119];
-      "mno\000pqr"[bits 0 to 63]; "MNOP\000QRS"[bits 0 to 71]; "abc";
-      "bcd\000eg"[bits 0 to 55]; "abc"; "\000bc"; ""[bits 0 to 7]; "b\000c"
+      nondet
+[inout] Out (internal) for function memchr_misc:
+      c; loc_str; loc_char_array[3]; x; str; unterminated_string[0..11]; 
+      sz1; _s; _ss; _res; sz2; _p; tmp_0; _ss_0; _res_0; sz4a; _s_0; _ss_1;
+      _res_1; sz4b; _s_1; _ss_2; _res_2; sz4c; _s_2; _ss_3; _res_3; sz4d; 
+      _s_3; _ss_4; _res_4; static_str; zero_str
+[inout] Inputs for function memchr_misc:
+      nondet; static_str; zero_str; "Hello World\n"[bits 0 to 103];
+      "abc\000\000\000abc"[bits 0 to 79]; "Bonjour Monde\n"[bits 0 to 119]
+[inout] Out (internal) for function memchr_misc2:
+      c; s1; sz5; _p; tmp; _ss; _res; sz6; _p_0; tmp_1; _ss_0; _res_0; j; 
+      sz7; _s; _ss_1; _res_1; maybe_init[0..1]; sz8; _s_0; _ss_2; _res_2
+[inout] Inputs for function memchr_misc2:
+      nondet; "abc"; "ABCD"[bits 0 to 39]; "efg"[bits 8 to 31];
+      "EFGH"[bits 8 to 39]; "mno\000pqr"[bits 0 to 63];
+      "MNOP\000QRS"[bits 0 to 71]
 [inout] Out (internal) for function memchr_misc_array:
-      Frama_C_entropy_source; c; i; sz3
+      Frama_C_entropy_source; c; i; sz3; _s; _ss; _res
 [inout] Inputs for function memchr_misc_array:
       Frama_C_entropy_source; tab_str[0..11]; ""[bits 0 to 7]; "a"[bits 0 to 15];
       "aa"[bits 0 to 23]; "aaa"; "aaaa"[bits 0 to 39]; "aaaaa"[bits 0 to 47];
       "aaaaaa"[bits 0 to 55]; "aaaaaaaaa"[bits 0 to 79];
       "aaaaaaaaaa"[bits 0 to 87]; "aaaaaaaaaaa"[bits 0 to 95];
-      "aaaaaaaaaaaa"[bits 0 to 103]; "aaaaaaaaaaaaa"[bits 0 to 111]; "abc";
-      "\000bc"; ""[bits 0 to 7]; "b\000c"; "Hello World\n"[bits 0 to 103];
-      "abc\000\000\000abc"[bits 0 to 79]; "Bonjour Monde\n"[bits 0 to 119];
-      "mno\000pqr"[bits 0 to 63]; "MNOP\000QRS"[bits 0 to 71]; "abc";
-      "bcd\000eg"[bits 0 to 55]; "abc"; "\000bc"; ""[bits 0 to 7]; "b\000c"
+      "aaaaaaaaaaaa"[bits 0 to 103]; "aaaaaaaaaaaaa"[bits 0 to 111]
+[inout] Out (internal) for function memchr_no_zero_but_ok:
+      c; s[0..19]; z1; _s; _ss; _res; z2; _s_0; _ss_0; _res_0; z3; _p; tmp_1;
+      _ss_1; _res_1; z4; _p_0; tmp_3; _ss_2; _res_2; z5; _p_1; tmp_5; _ss_3;
+      _res_3
+[inout] Inputs for function memchr_no_zero_but_ok:
+      nondet
 [inout] Out (internal) for function memchr_small_sets:
-      c; s; o; tmp; z1; z2; z3; z4; t[0..3]; z5
+      c; s; o; tmp; z1; _s; _ss; _res; z2; _s_0; _ss_0; _res_0; z3; _s_1; 
+      _ss_1; _res_1; z4; _s_2; _ss_2; _res_2; t[0..3]; z5; _s_3; _ss_3; _res_3
 [inout] Inputs for function memchr_small_sets:
-      nondet; ""[bits 0 to 7]; "a"[bits 0 to 15]; "aa"[bits 0 to 23]; "aaa";
-      "aaaa"[bits 0 to 39]; "aaaaa"[bits 0 to 47]; "aaaaaa"[bits 0 to 55];
-      "aaaaaaaaa"[bits 0 to 79]; "aaaaaaaaaa"[bits 0 to 87];
-      "aaaaaaaaaaa"[bits 0 to 95]; "aaaaaaaaaaaa"[bits 0 to 103];
-      "aaaaaaaaaaaaa"[bits 0 to 111]; "abc"; "\000bc"; ""[bits 0 to 7]; "b\000c";
-      "Hello World\n"[bits 0 to 103]; "abc\000\000\000abc"[bits 0 to 79];
-      "Bonjour Monde\n"[bits 0 to 119]; "mno\000pqr"[bits 0 to 63];
-      "MNOP\000QRS"[bits 0 to 71]; "abc"; "bcd\000eg"[bits 0 to 55]; "abc";
-      "\000bc"; ""[bits 0 to 7]; "b\000c"
+      nondet; "abc"; "\000bc"; "b\000c"
+[inout] Out (internal) for function memchr_small_sets_n:
+      c; s; n; tmp; z1; _p; tmp_0; _ss; _res; z2; _p_0; tmp_2; _ss_0; _res_0;
+      z3a; _p_1; tmp_4; _ss_1; _res_1; z3b; _p_2; tmp_6; _ss_2; _res_2; z3; 
+      _p_3; tmp_8; _ss_3; _res_3; z4; _p_4; tmp_10; _ss_4; _res_4
+[inout] Inputs for function memchr_small_sets_n:
+      nondet; "abcde"[bits 0 to 47]; "\000bcdef"[bits 0 to 55];
+      "bcd\000efg"[bits 0 to 63]
 [inout] Out (internal) for function memchr_small_sets_no_assertions:
-      s; o; tmp; t[0..3]; res[0..4]; __retres
+      s; o; tmp; _s; _ss; _res; _s_0; _ss_0; _res_0; _s_1; _ss_1; _res_1; 
+      _s_2; _ss_2; _res_2; t[0..3]; _s_3; _ss_3; _res_3; res[0..4]; __retres
 [inout] Inputs for function memchr_small_sets_no_assertions:
-      nondet; ""[bits 0 to 7]; "a"[bits 0 to 15]; "aa"[bits 0 to 23]; "aaa";
-      "aaaa"[bits 0 to 39]; "aaaaa"[bits 0 to 47]; "aaaaaa"[bits 0 to 55];
-      "aaaaaaaaa"[bits 0 to 79]; "aaaaaaaaaa"[bits 0 to 87];
-      "aaaaaaaaaaa"[bits 0 to 95]; "aaaaaaaaaaaa"[bits 0 to 103];
-      "aaaaaaaaaaaaa"[bits 0 to 111]; "abc"; "\000bc"; ""[bits 0 to 7]; "b\000c";
-      "Hello World\n"[bits 0 to 103]; "abc\000\000\000abc"[bits 0 to 79];
-      "Bonjour Monde\n"[bits 0 to 119]; "mno\000pqr"[bits 0 to 63];
-      "MNOP\000QRS"[bits 0 to 71]; "abc"; "bcd\000eg"[bits 0 to 55]; "abc";
-      "\000bc"; ""[bits 0 to 7]; "b\000c"
+      nondet; "abc"; "\000bc"; "b\000c"
 [inout] Out (internal) for function memchr_small_sets_chars:
       c; res[0..4]
 [inout] Inputs for function memchr_small_sets_chars:
-      nondet; ""[bits 0 to 7]; "a"[bits 0 to 15]; "aa"[bits 0 to 23]; "aaa";
-      "aaaa"[bits 0 to 39]; "aaaaa"[bits 0 to 47]; "aaaaaa"[bits 0 to 55];
-      "aaaaaaaaa"[bits 0 to 79]; "aaaaaaaaaa"[bits 0 to 87];
-      "aaaaaaaaaaa"[bits 0 to 95]; "aaaaaaaaaaaa"[bits 0 to 103];
-      "aaaaaaaaaaaaa"[bits 0 to 111]; "abc"; "\000bc"; ""[bits 0 to 7]; "b\000c";
-      "Hello World\n"[bits 0 to 103]; "abc\000\000\000abc"[bits 0 to 79];
-      "Bonjour Monde\n"[bits 0 to 119]; "mno\000pqr"[bits 0 to 63];
-      "MNOP\000QRS"[bits 0 to 71]; "abc"; "bcd\000eg"[bits 0 to 55]; "abc";
-      "\000bc"; ""[bits 0 to 7]; "b\000c"
+      nondet; "abc"; "\000bc"; "b\000c"
 [inout] Out (internal) for function memchr_unbounded_n:
-      c; n; s; zu1; o; tmp_0; zu2; zu3
+      c; n; s; zu1; _s; _ss; _res; o; tmp_0; zu2; _s_0; _ss_0; _res_0; zu3; 
+      _s_1; _ss_1; _res_1
 [inout] Inputs for function memchr_unbounded_n:
-      nondet; ""[bits 0 to 7]; "a"[bits 0 to 15]; "aa"[bits 0 to 23]; "aaa";
-      "aaaa"[bits 0 to 39]; "aaaaa"[bits 0 to 47]; "aaaaaa"[bits 0 to 55];
-      "aaaaaaaaa"[bits 0 to 79]; "aaaaaaaaaa"[bits 0 to 87];
-      "aaaaaaaaaaa"[bits 0 to 95]; "aaaaaaaaaaaa"[bits 0 to 103];
-      "aaaaaaaaaaaaa"[bits 0 to 111]; "abc"; "\000bc"; ""[bits 0 to 7]; "b\000c";
-      "Hello World\n"[bits 0 to 103]; "abc\000\000\000abc"[bits 0 to 79];
-      "Bonjour Monde\n"[bits 0 to 119]; "mno\000pqr"[bits 0 to 63];
-      "MNOP\000QRS"[bits 0 to 71]; "abc"; "bcd\000eg"[bits 0 to 55]; "abc";
-      "\000bc"; ""[bits 0 to 7]; "b\000c"
+      nondet; "abc"; "bcd\000eg"[bits 0 to 55]
 [inout] Out (internal) for function memchr_zero_termination:
-      c; empty_or_non_terminated[0]; z1; non_terminated[0]; z2;
-      non_terminated2[0..3]; o; tmp_1
+      c; empty_or_non_terminated[0]; z1; _s; _ss; _res; non_terminated[0]; 
+      z2; _s_0; _ss_0; _res_0; non_terminated2[0..3]; o; tmp_1
 [inout] Inputs for function memchr_zero_termination:
-      nondet; ""[bits 0 to 7]; "a"[bits 0 to 15]; "aa"[bits 0 to 23]; "aaa";
-      "aaaa"[bits 0 to 39]; "aaaaa"[bits 0 to 47]; "aaaaaa"[bits 0 to 55];
-      "aaaaaaaaa"[bits 0 to 79]; "aaaaaaaaaa"[bits 0 to 87];
-      "aaaaaaaaaaa"[bits 0 to 95]; "aaaaaaaaaaaa"[bits 0 to 103];
-      "aaaaaaaaaaaaa"[bits 0 to 111]; "abc"; "\000bc"; ""[bits 0 to 7]; "b\000c";
-      "Hello World\n"[bits 0 to 103]; "abc\000\000\000abc"[bits 0 to 79];
-      "Bonjour Monde\n"[bits 0 to 119]; "mno\000pqr"[bits 0 to 63];
-      "MNOP\000QRS"[bits 0 to 71]; "abc"; "bcd\000eg"[bits 0 to 55]; "abc";
-      "\000bc"; ""[bits 0 to 7]; "b\000c"
-[inout] Out (internal) for function my_memchr2:
-      p; tmp; s; res
-[inout] Inputs for function my_memchr2:
-      x; s[1..19]; nondet; "abc"; "ABCD"[bits 0 to 39]; "efg"[bits 8 to 31];
-      "EFGH"[bits 8 to 39]; "abcde"[bits 0 to 47]; "\000bcdef"[bits 0 to 55];
-      "bcd\000efg"[bits 0 to 63]
-[inout] Out (internal) for function memchr_misc:
-      c; loc_str; loc_char_array[3]; sz1; sz2; sz4a; sz4b; sz4c; sz4d; x; 
-      str; unterminated_string[0..11]; static_str; zero_str
-[inout] Inputs for function memchr_misc:
-      nondet; static_str; zero_str; ""[bits 0 to 7]; "a"[bits 0 to 15];
-      "aa"[bits 0 to 23]; "aaa"; "aaaa"[bits 0 to 39]; "aaaaa"[bits 0 to 47];
-      "aaaaaa"[bits 0 to 55]; "aaaaaaaaa"[bits 0 to 79];
-      "aaaaaaaaaa"[bits 0 to 87]; "aaaaaaaaaaa"[bits 0 to 95];
-      "aaaaaaaaaaaa"[bits 0 to 103]; "aaaaaaaaaaaaa"[bits 0 to 111]; "abc";
-      "\000bc"; ""[bits 0 to 7]; "b\000c"; "Hello World\n"[bits 0 to 103];
-      "abc\000\000\000abc"[bits 0 to 79]; "Bonjour Monde\n"[bits 0 to 119];
-      "abc"; "ABCD"[bits 0 to 39]; "efg"[bits 8 to 31]; "EFGH"[bits 8 to 39];
-      "mno\000pqr"[bits 0 to 63]; "MNOP\000QRS"[bits 0 to 71];
-      "abcde"[bits 0 to 47]; "\000bcdef"[bits 0 to 55];
-      "bcd\000efg"[bits 0 to 63]; "abc"; "bcd\000eg"[bits 0 to 55]; "abc";
-      "\000bc"; ""[bits 0 to 7]; "b\000c"
-[inout] Out (internal) for function memchr_misc2:
-      c; sz5; sz6; sz7; sz8; s1; j; maybe_init[0..1]
-[inout] Inputs for function memchr_misc2:
-      nondet; ""[bits 0 to 7]; "a"[bits 0 to 15]; "aa"[bits 0 to 23]; "aaa";
-      "aaaa"[bits 0 to 39]; "aaaaa"[bits 0 to 47]; "aaaaaa"[bits 0 to 55];
-      "aaaaaaaaa"[bits 0 to 79]; "aaaaaaaaaa"[bits 0 to 87];
-      "aaaaaaaaaaa"[bits 0 to 95]; "aaaaaaaaaaaa"[bits 0 to 103];
-      "aaaaaaaaaaaaa"[bits 0 to 111]; "abc"; "\000bc"; ""[bits 0 to 7]; "b\000c";
-      "Hello World\n"[bits 0 to 103]; "abc\000\000\000abc"[bits 0 to 79];
-      "Bonjour Monde\n"[bits 0 to 119]; "abc"; "ABCD"[bits 0 to 39];
-      "efg"[bits 8 to 31]; "EFGH"[bits 8 to 39]; "mno\000pqr"[bits 0 to 63];
-      "MNOP\000QRS"[bits 0 to 71]; "abcde"[bits 0 to 47];
-      "\000bcdef"[bits 0 to 55]; "bcd\000efg"[bits 0 to 63]; "abc";
-      "bcd\000eg"[bits 0 to 55]; "abc"; "\000bc"; ""[bits 0 to 7]; "b\000c"
-[inout] Out (internal) for function memchr_no_zero_but_ok:
-      c; s[0..19]; z1; z2; z3; z4; z5
-[inout] Inputs for function memchr_no_zero_but_ok:
-      nondet; ""[bits 0 to 7]; "a"[bits 0 to 15]; "aa"[bits 0 to 23]; "aaa";
-      "aaaa"[bits 0 to 39]; "aaaaa"[bits 0 to 47]; "aaaaaa"[bits 0 to 55];
-      "aaaaaaaaa"[bits 0 to 79]; "aaaaaaaaaa"[bits 0 to 87];
-      "aaaaaaaaaaa"[bits 0 to 95]; "aaaaaaaaaaaa"[bits 0 to 103];
-      "aaaaaaaaaaaaa"[bits 0 to 111]; "abc"; "\000bc"; ""[bits 0 to 7]; "b\000c";
-      "Hello World\n"[bits 0 to 103]; "abc\000\000\000abc"[bits 0 to 79];
-      "Bonjour Monde\n"[bits 0 to 119]; "abc"; "ABCD"[bits 0 to 39];
-      "efg"[bits 8 to 31]; "EFGH"[bits 8 to 39]; "mno\000pqr"[bits 0 to 63];
-      "MNOP\000QRS"[bits 0 to 71]; "abcde"[bits 0 to 47];
-      "\000bcdef"[bits 0 to 55]; "bcd\000efg"[bits 0 to 63]; "abc";
-      "bcd\000eg"[bits 0 to 55]; "abc"; "\000bc"; ""[bits 0 to 7]; "b\000c"
-[inout] Out (internal) for function memchr_small_sets_n:
-      c; s; n; tmp; z1; z2; z3a; z3b; z3; z4
-[inout] Inputs for function memchr_small_sets_n:
-      nondet; "abc"; "ABCD"[bits 0 to 39]; "efg"[bits 8 to 31];
-      "EFGH"[bits 8 to 39]; "abcde"[bits 0 to 47]; "\000bcdef"[bits 0 to 55];
-      "bcd\000efg"[bits 0 to 63]
+      nondet
+[inout] Out (internal) for function init_array_nondet:
+      from; to; val1; val2; val; tmp; a[0..99]; a{[0..39]; [50..94]}; a[0..99];
+      a{[0..9]; [11..19]}
+[inout] Inputs for function init_array_nondet:
+      nondet
+[inout] Out (internal) for function memchr_intervals:
+      Frama_C_entropy_source; c; a{[0..9]; [11..19]}; offset; n; z1; _s; 
+      _ss; _res; z2; _s_0; _ss_0; _res_0; z3; _s_1; _ss_1; _res_1; z4; _s_2;
+      _ss_2; _res_2; z5; _s_3; _ss_3; _res_3; z6; _s_4; _ss_4; _res_4; z7; 
+      _s_5; _ss_5; _res_5; z8; _s_6; _ss_6; _res_6; z9; _s_7; _ss_7; _res_7
+[inout] Inputs for function memchr_intervals:
+      Frama_C_entropy_source; nondet
+[inout] Out (internal) for function memchr_large:
+      Frama_C_entropy_source; c; a[0..99]; offset; z1; _s; _ss; _res; z2; 
+      _s_0; _ss_0; _res_0; z3; _s_1; _ss_1; _res_1; z4; _s_2; _ss_2; _res_2; 
+      z5; _s_3; _ss_3; _res_3
+[inout] Inputs for function memchr_large:
+      Frama_C_entropy_source; nondet
+[inout] Out (internal) for function memchr_large_n:
+      Frama_C_entropy_source; c; a[0..99]; offset; n; z1; _s; _ss; _res; 
+      z2; _s_0; _ss_0; _res_0; z3; _s_1; _ss_1; _res_1; z4; _s_2; _ss_2; 
+      _res_2; z5; _s_3; _ss_3; _res_3; z6; _s_4; _ss_4; _res_4; z7; _s_5; 
+      _ss_5; _res_5; z8; _s_6; _ss_6; _res_6; z9; _s_7; _ss_7; _res_7
+[inout] Inputs for function memchr_large_n:
+      Frama_C_entropy_source; nondet
+[inout] Out (internal) for function memchr_large_uninit:
+      Frama_C_entropy_source; c; a{[0..39]; [50..94]; [98]}; offset; z1; 
+      _s; _ss; _res; z2; _s_0; _ss_0; _res_0; z3; _s_1; _ss_1; _res_1
+[inout] Inputs for function memchr_large_uninit:
+      Frama_C_entropy_source; nondet
 [inout] Out (internal) for function main:
       Frama_C_entropy_source; static_str; zero_str; __retres
 [inout] Inputs for function main:
@@ -2018,10 +1587,10 @@ tests/non-free/memchr.c:641:[value] assertion got status valid.
       "aaaa"[bits 0 to 39]; "aaaaa"[bits 0 to 47]; "aaaaaa"[bits 0 to 55];
       "aaaaaaaaa"[bits 0 to 79]; "aaaaaaaaaa"[bits 0 to 87];
       "aaaaaaaaaaa"[bits 0 to 95]; "aaaaaaaaaaaa"[bits 0 to 103];
-      "aaaaaaaaaaaaa"[bits 0 to 111]; "abc"; "\000bc"; ""[bits 0 to 7]; "b\000c";
+      "aaaaaaaaaaaaa"[bits 0 to 111]; "abc"; "\000bc"; "b\000c";
       "Hello World\n"[bits 0 to 103]; "abc\000\000\000abc"[bits 0 to 79];
       "Bonjour Monde\n"[bits 0 to 119]; "abc"; "ABCD"[bits 0 to 39];
       "efg"[bits 8 to 31]; "EFGH"[bits 8 to 39]; "mno\000pqr"[bits 0 to 63];
       "MNOP\000QRS"[bits 0 to 71]; "abcde"[bits 0 to 47];
       "\000bcdef"[bits 0 to 55]; "bcd\000efg"[bits 0 to 63]; "abc";
-      "bcd\000eg"[bits 0 to 55]; "abc"; "\000bc"; ""[bits 0 to 7]; "b\000c"
+      "bcd\000eg"[bits 0 to 55]; "abc"; "\000bc"; "b\000c"
diff --git a/tests/non-free/oracle/strchr.res.oracle b/tests/non-free/oracle/strchr.res.oracle
index 605bc13636528332eee0ff10c8feefc329a3ff7e..40dfafa2500c0f10b5f1b182fa0e3a912ed38add 100644
--- a/tests/non-free/oracle/strchr.res.oracle
+++ b/tests/non-free/oracle/strchr.res.oracle
@@ -20,935 +20,664 @@
   static_str ∈ {0}
   zero_str ∈ {0}
 [value] computing for function strchr_small_sets <- main.
-    Called from tests/non-free/strchr.c:538.
-[value] computing for function my_strchr <- strchr_small_sets <- main.
-    Called from tests/non-free/strchr.c:79.
-tests/non-free/strchr.c:49:[value] function strchr: precondition 'valid_string_src' got status valid.
+    Called from tests/non-free/strchr.c:556.
+tests/non-free/strchr.c:98:[value] function strchr: precondition 'valid_string_src' got status valid.
 share/libc/string.h:143:[value] cannot evaluate ACSL term, unsupported ACSL construct: logic function strchr
 share/libc/string.h:150:[value] cannot evaluate ACSL term, unsupported ACSL construct: logic function strchr
-tests/non-free/strchr.c:49:[value] Call to builtin Frama_C_strchr(({{ "abc" + {0; 1} }},{0}))
-tests/non-free/strchr.c:56:[value] Frama_C_show_each_mystrchr: {3}
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
-tests/non-free/strchr.c:80:[value] assertion got status valid.
-[value] computing for function my_strchr <- strchr_small_sets <- main.
-    Called from tests/non-free/strchr.c:83.
-tests/non-free/strchr.c:49:[value] Call to builtin Frama_C_strchr(({{ "\000bc" + {0; 1} }},{0}))
-tests/non-free/strchr.c:56:[value] Frama_C_show_each_mystrchr: {0; 3}
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
-tests/non-free/strchr.c:84:[value] assertion got status valid.
-[value] computing for function my_strchr <- strchr_small_sets <- main.
-    Called from tests/non-free/strchr.c:86.
-tests/non-free/strchr.c:49:[value] Call to builtin Frama_C_strchr(({{ "" }},{0}))
-tests/non-free/strchr.c:56:[value] Frama_C_show_each_mystrchr: {0}
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
-tests/non-free/strchr.c:87:[value] assertion got status valid.
-[value] computing for function my_strchr <- strchr_small_sets <- main.
-    Called from tests/non-free/strchr.c:90.
-tests/non-free/strchr.c:49:[value] Call to builtin Frama_C_strchr(({{ "b\000c" + {0; 2} }},{0}))
-tests/non-free/strchr.c:56:[value] Frama_C_show_each_mystrchr: {1; 3}
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
-tests/non-free/strchr.c:91:[value] assertion got status valid.
-[value] computing for function my_strchr <- strchr_small_sets <- main.
-    Called from tests/non-free/strchr.c:95.
-tests/non-free/strchr.c:49:[value] warning: function strchr: precondition 'valid_string_src' got status unknown.
-tests/non-free/strchr.c:49:[value] Call to builtin Frama_C_strchr(({{ &t[0] }},{0}))
-tests/non-free/strchr.c:49:[value] builtin Frama_C_strchr: possibly reading indeterminate data
-tests/non-free/strchr.c:56:[value] Frama_C_show_each_mystrchr: {0; 1}
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
-tests/non-free/strchr.c:96:[value] assertion got status valid.
+tests/non-free/strchr.c:98:[value] Call to builtin Frama_C_strchr(({{ "abc" + {0; 1} }},{0}))
+tests/non-free/strchr.c:98:[value] Frama_C_show_each_mystrchr: {3}
+tests/non-free/strchr.c:99:[value] assertion got status valid.
+tests/non-free/strchr.c:102:[value] function strchr: precondition 'valid_string_src' got status valid.
+tests/non-free/strchr.c:102:[value] Call to builtin Frama_C_strchr(({{ "\000bc" + {0; 1} }},{0}))
+tests/non-free/strchr.c:102:[value] Frama_C_show_each_mystrchr: {0; 3}
+tests/non-free/strchr.c:103:[value] assertion got status valid.
+tests/non-free/strchr.c:105:[value] function strchr: precondition 'valid_string_src' got status valid.
+tests/non-free/strchr.c:105:[value] Call to builtin Frama_C_strchr(({{ "" }},{0}))
+tests/non-free/strchr.c:105:[value] Frama_C_show_each_mystrchr: {0}
+tests/non-free/strchr.c:106:[value] assertion got status valid.
+tests/non-free/strchr.c:109:[value] function strchr: precondition 'valid_string_src' got status valid.
+tests/non-free/strchr.c:109:[value] Call to builtin Frama_C_strchr(({{ "b\000c" + {0; 2} }},{0}))
+tests/non-free/strchr.c:109:[value] Frama_C_show_each_mystrchr: {1; 3}
+tests/non-free/strchr.c:110:[value] assertion got status valid.
+tests/non-free/strchr.c:114:[value] warning: function strchr: precondition 'valid_string_src' got status unknown.
+tests/non-free/strchr.c:114:[value] Call to builtin Frama_C_strchr(({{ &t[0] }},{0}))
+tests/non-free/strchr.c:114:[value] builtin Frama_C_strchr: possibly reading indeterminate data
+tests/non-free/strchr.c:114:[value] Frama_C_show_each_mystrchr: {0; 1}
+tests/non-free/strchr.c:115:[value] assertion got status valid.
 [value] Recording results for strchr_small_sets
 [value] Done for function strchr_small_sets
 [value] computing for function strchr_zero_termination <- main.
-    Called from tests/non-free/strchr.c:539.
-[value] computing for function my_strchr <- strchr_zero_termination <- main.
-    Called from tests/non-free/strchr.c:104.
-tests/non-free/strchr.c:49:[value] Call to builtin Frama_C_strchr(({{ &empty_or_non_terminated[0] }},{0}))
-tests/non-free/strchr.c:49:[value] builtin Frama_C_strchr: possibly reading indeterminate data
-tests/non-free/strchr.c:56:[value] Frama_C_show_each_mystrchr: {0}
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
-tests/non-free/strchr.c:105:[value] assertion got status valid.
-[value] computing for function my_strchr <- strchr_zero_termination <- main.
-    Called from tests/non-free/strchr.c:109.
-tests/non-free/strchr.c:49:[value] warning: function strchr: precondition 'valid_string_src' got status invalid.
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
-[value] computing for function my_strchr <- strchr_zero_termination <- main.
-    Called from tests/non-free/strchr.c:115.
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
+    Called from tests/non-free/strchr.c:557.
+tests/non-free/strchr.c:123:[value] warning: function strchr: precondition 'valid_string_src' got status unknown.
+tests/non-free/strchr.c:123:[value] Call to builtin Frama_C_strchr(({{ &empty_or_non_terminated[0] }},{0}))
+tests/non-free/strchr.c:123:[value] builtin Frama_C_strchr: possibly reading indeterminate data
+tests/non-free/strchr.c:123:[value] Frama_C_show_each_mystrchr: {0}
+tests/non-free/strchr.c:124:[value] assertion got status valid.
+tests/non-free/strchr.c:128:[value] warning: function strchr: precondition 'valid_string_src' got status invalid.
+tests/non-free/strchr.c:134:[value] warning: function strchr: precondition 'valid_string_src' got status invalid.
 [value] Recording results for strchr_zero_termination
 [value] Done for function strchr_zero_termination
 [value] computing for function strchr_initialization <- main.
-    Called from tests/non-free/strchr.c:540.
-[value] computing for function my_strchr <- strchr_initialization <- main.
-    Called from tests/non-free/strchr.c:123.
-tests/non-free/strchr.c:49:[value] Call to builtin Frama_C_strchr(({{ &empty_or_uninitialized[0] }},{0}))
-tests/non-free/strchr.c:49:[value] builtin Frama_C_strchr: possible uninitialized values
-tests/non-free/strchr.c:56:[value] Frama_C_show_each_mystrchr: {0}
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
-tests/non-free/strchr.c:124:[value] assertion got status valid.
-[value] computing for function my_strchr <- strchr_initialization <- main.
-    Called from tests/non-free/strchr.c:127.
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
-[value] computing for function my_strchr <- strchr_initialization <- main.
-    Called from tests/non-free/strchr.c:132.
-tests/non-free/strchr.c:49:[value] Call to builtin Frama_C_strchr(({{ &s[0] }},{0}))
-tests/non-free/strchr.c:49:[value] builtin Frama_C_strchr: possible uninitialized values
-tests/non-free/strchr.c:56:[value] Frama_C_show_each_mystrchr: {1}
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
-tests/non-free/strchr.c:133:[value] assertion got status valid.
-[value] computing for function my_strchr <- strchr_initialization <- main.
-    Called from tests/non-free/strchr.c:139.
-tests/non-free/strchr.c:49:[value] Call to builtin Frama_C_strchr(({{ &t[0] }},{0}))
-tests/non-free/strchr.c:49:[value] builtin Frama_C_strchr: possible uninitialized values
-tests/non-free/strchr.c:56:[value] Frama_C_show_each_mystrchr: {3}
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
-tests/non-free/strchr.c:140:[value] assertion got status valid.
+    Called from tests/non-free/strchr.c:558.
+tests/non-free/strchr.c:142:[value] warning: function strchr: precondition 'valid_string_src' got status unknown.
+tests/non-free/strchr.c:142:[value] Call to builtin Frama_C_strchr(({{ &empty_or_uninitialized[0] }},{0}))
+tests/non-free/strchr.c:142:[value] builtin Frama_C_strchr: possible uninitialized values
+tests/non-free/strchr.c:142:[value] Frama_C_show_each_mystrchr: {0}
+tests/non-free/strchr.c:143:[value] assertion got status valid.
+tests/non-free/strchr.c:146:[value] warning: function strchr: precondition 'valid_string_src' got status invalid.
+tests/non-free/strchr.c:151:[value] warning: function strchr: precondition 'valid_string_src' got status unknown.
+tests/non-free/strchr.c:151:[value] Call to builtin Frama_C_strchr(({{ &s[0] }},{0}))
+tests/non-free/strchr.c:151:[value] builtin Frama_C_strchr: possible uninitialized values
+tests/non-free/strchr.c:151:[value] Frama_C_show_each_mystrchr: {1}
+tests/non-free/strchr.c:152:[value] assertion got status valid.
+tests/non-free/strchr.c:158:[value] warning: function strchr: precondition 'valid_string_src' got status unknown.
+tests/non-free/strchr.c:158:[value] Call to builtin Frama_C_strchr(({{ &t[0] }},{0}))
+tests/non-free/strchr.c:158:[value] builtin Frama_C_strchr: possible uninitialized values
+tests/non-free/strchr.c:158:[value] Frama_C_show_each_mystrchr: {3}
+tests/non-free/strchr.c:159:[value] assertion got status valid.
 [value] Recording results for strchr_initialization
 [value] Done for function strchr_initialization
 [value] computing for function strchr_large <- main.
-    Called from tests/non-free/strchr.c:541.
+    Called from tests/non-free/strchr.c:559.
 [value] computing for function init_array_nondet <- strchr_large <- main.
-    Called from tests/non-free/strchr.c:188.
-tests/non-free/strchr.c:180:[value] function memset: precondition got status valid.
-tests/non-free/strchr.c:180:[value] Call to builtin memset(({{ (void *)&a }},{1; 2},{100}))
+    Called from tests/non-free/strchr.c:207.
+tests/non-free/strchr.c:199:[value] function memset: precondition got status valid.
+tests/non-free/strchr.c:199:[value] Call to builtin memset(({{ (void *)&a }},{1; 2},{100}))
 [value] Recording results for init_array_nondet
 [value] Done for function init_array_nondet
 [value] computing for function Frama_C_interval <- strchr_large <- main.
-    Called from tests/non-free/strchr.c:191.
+    Called from tests/non-free/strchr.c:210.
 [value] using specification for function Frama_C_interval
-tests/non-free/strchr.c:191:[value] function Frama_C_interval: precondition got status valid.
+tests/non-free/strchr.c:210:[value] function Frama_C_interval: precondition got status valid.
 [value] Done for function Frama_C_interval
-[value] computing for function my_strchr <- strchr_large <- main.
-    Called from tests/non-free/strchr.c:192.
-tests/non-free/strchr.c:49:[value] Call to builtin Frama_C_strchr(({{ &a + [3..30] }},{0}))
-tests/non-free/strchr.c:49:[value] builtin Frama_C_strchr:
+tests/non-free/strchr.c:211:[value] function strchr: precondition 'valid_string_src' got status valid.
+tests/non-free/strchr.c:211:[value] Call to builtin Frama_C_strchr(({{ &a + [3..30] }},{0}))
+tests/non-free/strchr.c:211:[value] builtin Frama_C_strchr:
     range too large and/or imprecise, approximating
     possible uninitialized values
     possible escaping addresses
     possibly reading indeterminate data
-tests/non-free/strchr.c:56:[value] Frama_C_show_each_mystrchr: [-1..75]
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
-tests/non-free/strchr.c:193:[value] assertion got status valid.
+tests/non-free/strchr.c:211:[value] Frama_C_show_each_mystrchr: [-1..75]
+tests/non-free/strchr.c:212:[value] assertion got status valid.
 [value] computing for function Frama_C_interval <- strchr_large <- main.
-    Called from tests/non-free/strchr.c:195.
-tests/non-free/strchr.c:195:[value] function Frama_C_interval: precondition got status valid.
+    Called from tests/non-free/strchr.c:214.
+tests/non-free/strchr.c:214:[value] function Frama_C_interval: precondition got status valid.
 [value] Done for function Frama_C_interval
-[value] computing for function my_strchr <- strchr_large <- main.
-    Called from tests/non-free/strchr.c:196.
-tests/non-free/strchr.c:49:[value] Call to builtin Frama_C_strchr(({{ &a + [5..17] }},{0}))
-tests/non-free/strchr.c:49:[value] builtin Frama_C_strchr:
+tests/non-free/strchr.c:215:[value] function strchr: precondition 'valid_string_src' got status valid.
+tests/non-free/strchr.c:215:[value] Call to builtin Frama_C_strchr(({{ &a + [5..17] }},{0}))
+tests/non-free/strchr.c:215:[value] builtin Frama_C_strchr:
     range too large and/or imprecise, approximating
     possible uninitialized values
     possible escaping addresses
     possibly reading indeterminate data
-tests/non-free/strchr.c:56:[value] Frama_C_show_each_mystrchr: [-1..20]
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
-tests/non-free/strchr.c:197:[value] assertion got status valid.
-tests/non-free/strchr.c:198:[value] warning: assertion 'refined' got status unknown.
+tests/non-free/strchr.c:215:[value] Frama_C_show_each_mystrchr: [-1..20]
+tests/non-free/strchr.c:216:[value] assertion got status valid.
+tests/non-free/strchr.c:217:[value] warning: assertion 'refined' got status unknown.
 [value] computing for function Frama_C_interval <- strchr_large <- main.
-    Called from tests/non-free/strchr.c:200.
-tests/non-free/strchr.c:200:[value] function Frama_C_interval: precondition got status valid.
+    Called from tests/non-free/strchr.c:219.
+tests/non-free/strchr.c:219:[value] function Frama_C_interval: precondition got status valid.
 [value] Done for function Frama_C_interval
-[value] computing for function my_strchr <- strchr_large <- main.
-    Called from tests/non-free/strchr.c:201.
-tests/non-free/strchr.c:49:[value] Call to builtin Frama_C_strchr(({{ &a + [60..74] }},{0}))
-tests/non-free/strchr.c:49:[value] builtin Frama_C_strchr:
+tests/non-free/strchr.c:220:[value] function strchr: precondition 'valid_string_src' got status valid.
+tests/non-free/strchr.c:220:[value] Call to builtin Frama_C_strchr(({{ &a + [60..74] }},{0}))
+tests/non-free/strchr.c:220:[value] builtin Frama_C_strchr:
     range too large and/or imprecise, approximating
     possible uninitialized values
     possible escaping addresses
     possibly reading indeterminate data
-tests/non-free/strchr.c:56:[value] Frama_C_show_each_mystrchr: [-1..75]
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
-tests/non-free/strchr.c:202:[value] assertion got status valid.
-tests/non-free/strchr.c:203:[value] warning: assertion 'refined' got status unknown.
+tests/non-free/strchr.c:220:[value] Frama_C_show_each_mystrchr: [-1..75]
+tests/non-free/strchr.c:221:[value] assertion got status valid.
+tests/non-free/strchr.c:222:[value] warning: assertion 'refined' got status unknown.
 [value] computing for function Frama_C_interval <- strchr_large <- main.
-    Called from tests/non-free/strchr.c:205.
-tests/non-free/strchr.c:205:[value] function Frama_C_interval: precondition got status valid.
+    Called from tests/non-free/strchr.c:224.
+tests/non-free/strchr.c:224:[value] function Frama_C_interval: precondition got status valid.
 [value] Done for function Frama_C_interval
-[value] computing for function my_strchr <- strchr_large <- main.
-    Called from tests/non-free/strchr.c:206.
-tests/non-free/strchr.c:49:[value] Call to builtin Frama_C_strchr(({{ &a + [63..80] }},{0}))
-tests/non-free/strchr.c:49:[value] builtin Frama_C_strchr:
+tests/non-free/strchr.c:225:[value] warning: function strchr: precondition 'valid_string_src' got status unknown.
+tests/non-free/strchr.c:225:[value] Call to builtin Frama_C_strchr(({{ &a + [63..80] }},{0}))
+tests/non-free/strchr.c:225:[value] builtin Frama_C_strchr:
     range too large and/or imprecise, approximating
     possible uninitialized values
     possible escaping addresses
     possibly reading indeterminate data
-tests/non-free/strchr.c:56:[value] Frama_C_show_each_mystrchr: [-1..79]
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
-tests/non-free/strchr.c:207:[value] assertion got status valid.
-tests/non-free/strchr.c:208:[value] warning: assertion 'refined' got status unknown.
+tests/non-free/strchr.c:225:[value] Frama_C_show_each_mystrchr: [-1..79]
+tests/non-free/strchr.c:226:[value] assertion got status valid.
+tests/non-free/strchr.c:227:[value] warning: assertion 'refined' got status unknown.
 [value] computing for function init_array_nondet <- strchr_large <- main.
-    Called from tests/non-free/strchr.c:210.
-tests/non-free/strchr.c:180:[value] Call to builtin memset(({{ (void *)&a }},{0; 2},{100}))
+    Called from tests/non-free/strchr.c:229.
+tests/non-free/strchr.c:199:[value] Call to builtin memset(({{ (void *)&a }},{0; 2},{100}))
 [value] Recording results for init_array_nondet
 [value] Done for function init_array_nondet
 [value] computing for function Frama_C_interval <- strchr_large <- main.
-    Called from tests/non-free/strchr.c:211.
-tests/non-free/strchr.c:211:[value] function Frama_C_interval: precondition got status valid.
+    Called from tests/non-free/strchr.c:230.
+tests/non-free/strchr.c:230:[value] function Frama_C_interval: precondition got status valid.
 [value] Done for function Frama_C_interval
-[value] computing for function my_strchr <- strchr_large <- main.
-    Called from tests/non-free/strchr.c:212.
-tests/non-free/strchr.c:49:[value] Call to builtin Frama_C_strchr(({{ &a + [50..70] }},{0}))
-tests/non-free/strchr.c:49:[value] builtin Frama_C_strchr:
+tests/non-free/strchr.c:231:[value] warning: function strchr: precondition 'valid_string_src' got status unknown.
+tests/non-free/strchr.c:231:[value] Call to builtin Frama_C_strchr(({{ &a + [50..70] }},{0}))
+tests/non-free/strchr.c:231:[value] builtin Frama_C_strchr:
     range too large and/or imprecise, approximating
     possible uninitialized values
     possible escaping addresses
     possibly reading indeterminate data
-tests/non-free/strchr.c:56:[value] Frama_C_show_each_mystrchr: [-1..99]
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
-tests/non-free/strchr.c:213:[value] assertion got status valid.
+tests/non-free/strchr.c:231:[value] Frama_C_show_each_mystrchr: [-1..99]
+tests/non-free/strchr.c:232:[value] assertion got status valid.
 [value] Recording results for strchr_large
 [value] Done for function strchr_large
 [value] computing for function strchr_large_uninit <- main.
-    Called from tests/non-free/strchr.c:542.
+    Called from tests/non-free/strchr.c:560.
 [value] computing for function init_array_nondet <- strchr_large_uninit <- main.
-    Called from tests/non-free/strchr.c:220.
-tests/non-free/strchr.c:180:[value] Call to builtin memset(({{ (void *)&a }},{1; 2},{40}))
+    Called from tests/non-free/strchr.c:239.
+tests/non-free/strchr.c:199:[value] Call to builtin memset(({{ (void *)&a }},{1; 2},{40}))
 [value] Recording results for init_array_nondet
 [value] Done for function init_array_nondet
 [value] computing for function init_array_nondet <- strchr_large_uninit <- main.
-    Called from tests/non-free/strchr.c:221.
-tests/non-free/strchr.c:180:[value] Call to builtin memset(({{ (void *)&a[50] }},{3; 4},{45}))
+    Called from tests/non-free/strchr.c:240.
+tests/non-free/strchr.c:199:[value] Call to builtin memset(({{ (void *)&a[50] }},{3; 4},{45}))
 [value] Recording results for init_array_nondet
 [value] Done for function init_array_nondet
 [value] computing for function Frama_C_interval <- strchr_large_uninit <- main.
-    Called from tests/non-free/strchr.c:225.
-tests/non-free/strchr.c:225:[value] function Frama_C_interval: precondition got status valid.
+    Called from tests/non-free/strchr.c:244.
+tests/non-free/strchr.c:244:[value] function Frama_C_interval: precondition got status valid.
 [value] Done for function Frama_C_interval
-[value] computing for function my_strchr <- strchr_large_uninit <- main.
-    Called from tests/non-free/strchr.c:226.
-tests/non-free/strchr.c:49:[value] Call to builtin Frama_C_strchr(({{ &a + [3..30] }},{0}))
-tests/non-free/strchr.c:49:[value] builtin Frama_C_strchr:
+tests/non-free/strchr.c:245:[value] warning: function strchr: precondition 'valid_string_src' got status unknown.
+tests/non-free/strchr.c:245:[value] Call to builtin Frama_C_strchr(({{ &a + [3..30] }},{0}))
+tests/non-free/strchr.c:245:[value] builtin Frama_C_strchr:
     range too large and/or imprecise, approximating
     possible uninitialized values
     possible escaping addresses
     possibly reading indeterminate data
-tests/non-free/strchr.c:56:[value] Frama_C_show_each_mystrchr: [-1..29]
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
-tests/non-free/strchr.c:227:[value] assertion got status valid.
-tests/non-free/strchr.c:228:[value] warning: assertion 'refined' got status unknown.
+tests/non-free/strchr.c:245:[value] Frama_C_show_each_mystrchr: [-1..29]
+tests/non-free/strchr.c:246:[value] assertion got status valid.
+tests/non-free/strchr.c:247:[value] warning: assertion 'refined' got status unknown.
 [value] computing for function Frama_C_interval <- strchr_large_uninit <- main.
-    Called from tests/non-free/strchr.c:231.
-tests/non-free/strchr.c:231:[value] function Frama_C_interval: precondition got status valid.
+    Called from tests/non-free/strchr.c:250.
+tests/non-free/strchr.c:250:[value] function Frama_C_interval: precondition got status valid.
 [value] Done for function Frama_C_interval
-[value] computing for function my_strchr <- strchr_large_uninit <- main.
-    Called from tests/non-free/strchr.c:232.
-tests/non-free/strchr.c:49:[value] Call to builtin Frama_C_strchr(({{ &a + [63..80] }},{0}))
-tests/non-free/strchr.c:49:[value] builtin Frama_C_strchr:
+tests/non-free/strchr.c:251:[value] warning: function strchr: precondition 'valid_string_src' got status unknown.
+tests/non-free/strchr.c:251:[value] Call to builtin Frama_C_strchr(({{ &a + [63..80] }},{0}))
+tests/non-free/strchr.c:251:[value] builtin Frama_C_strchr:
     range too large and/or imprecise, approximating
     possible uninitialized values
     possible escaping addresses
     possibly reading indeterminate data
-tests/non-free/strchr.c:56:[value] Frama_C_show_each_mystrchr: [-1..79]
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
-tests/non-free/strchr.c:233:[value] assertion got status valid.
-tests/non-free/strchr.c:234:[value] warning: assertion 'refined' got status unknown.
+tests/non-free/strchr.c:251:[value] Frama_C_show_each_mystrchr: [-1..79]
+tests/non-free/strchr.c:252:[value] assertion got status valid.
+tests/non-free/strchr.c:253:[value] warning: assertion 'refined' got status unknown.
 [value] computing for function Frama_C_interval <- strchr_large_uninit <- main.
-    Called from tests/non-free/strchr.c:236.
-tests/non-free/strchr.c:236:[value] function Frama_C_interval: precondition got status valid.
+    Called from tests/non-free/strchr.c:255.
+tests/non-free/strchr.c:255:[value] function Frama_C_interval: precondition got status valid.
 [value] Done for function Frama_C_interval
-[value] computing for function my_strchr <- strchr_large_uninit <- main.
-    Called from tests/non-free/strchr.c:237.
-tests/non-free/strchr.c:49:[value] Call to builtin Frama_C_strchr(({{ &a + [45..55] }},{0}))
-tests/non-free/strchr.c:49:[value] builtin Frama_C_strchr:
+tests/non-free/strchr.c:256:[value] warning: function strchr: precondition 'valid_string_src' got status unknown.
+tests/non-free/strchr.c:256:[value] Call to builtin Frama_C_strchr(({{ &a + [45..55] }},{0}))
+tests/non-free/strchr.c:256:[value] builtin Frama_C_strchr:
     range too large and/or imprecise, approximating
     possible uninitialized values
     possible escaping addresses
     possibly reading indeterminate data
-tests/non-free/strchr.c:56:[value] Frama_C_show_each_mystrchr: [-1..75]
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
-tests/non-free/strchr.c:238:[value] assertion got status valid.
-tests/non-free/strchr.c:239:[value] warning: assertion 'refined' got status unknown.
+tests/non-free/strchr.c:256:[value] Frama_C_show_each_mystrchr: [-1..75]
+tests/non-free/strchr.c:257:[value] assertion got status valid.
+tests/non-free/strchr.c:258:[value] warning: assertion 'refined' got status unknown.
 [value] Recording results for strchr_large_uninit
 [value] Done for function strchr_large_uninit
 [value] computing for function strchr_misc_array <- main.
-    Called from tests/non-free/strchr.c:543.
+    Called from tests/non-free/strchr.c:561.
 [value] computing for function Frama_C_interval <- strchr_misc_array <- main.
-    Called from tests/non-free/strchr.c:261.
-tests/non-free/strchr.c:261:[value] function Frama_C_interval: precondition got status valid.
+    Called from tests/non-free/strchr.c:280.
+tests/non-free/strchr.c:280:[value] function Frama_C_interval: precondition got status valid.
 [value] Done for function Frama_C_interval
-[value] computing for function my_strchr <- strchr_misc_array <- main.
-    Called from tests/non-free/strchr.c:262.
-tests/non-free/strchr.c:49:[value] Call to builtin Frama_C_strchr(({{ "" ; "a" ; "aa" ; "aaa" ; "aaaa" ;
+tests/non-free/strchr.c:281:[value] function strchr: precondition 'valid_string_src' got status valid.
+tests/non-free/strchr.c:281:[value] Call to builtin Frama_C_strchr(({{ "" ; "a" ; "aa" ; "aaa" ; "aaaa" ;
                                        "aaaaa" ; "aaaaaa" ; "aaaaaaaaa" ;
                                        "aaaaaaaaaa" ; "aaaaaaaaaaa" ;
                                        "aaaaaaaaaaaa" ; "aaaaaaaaaaaaa" }},
                                     {0}))
-tests/non-free/strchr.c:54:[value] warning: pointer subtraction. assert \base_addr(ss) ≡ \base_addr(s);
-tests/non-free/strchr.c:56:[value] Frama_C_show_each_mystrchr: [0..13]
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
-tests/non-free/strchr.c:263:[value] assertion got status valid.
+tests/non-free/strchr.c:281:[value] warning: pointer subtraction. assert \base_addr(_ss) ≡ \base_addr(tab_str[i]);
+tests/non-free/strchr.c:281:[value] Frama_C_show_each_mystrchr: [0..13]
+tests/non-free/strchr.c:282:[value] assertion got status valid.
 [value] Recording results for strchr_misc_array
 [value] Done for function strchr_misc_array
 [value] computing for function strchr_misc <- main.
-    Called from tests/non-free/strchr.c:544.
-[value] computing for function my_strchr <- strchr_misc <- main.
-    Called from tests/non-free/strchr.c:293.
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
-[value] computing for function my_strchr <- strchr_misc <- main.
-    Called from tests/non-free/strchr.c:296.
-tests/non-free/strchr.c:49:[value] Call to builtin Frama_C_strchr(({{ "Hello World\n" ; "Bonjour Monde\n" }},
+    Called from tests/non-free/strchr.c:562.
+tests/non-free/strchr.c:311:[value] warning: function strchr: precondition 'valid_string_src' got status invalid.
+tests/non-free/strchr.c:314:[value] function strchr: precondition 'valid_string_src' got status valid.
+tests/non-free/strchr.c:314:[value] Call to builtin Frama_C_strchr(({{ "Hello World\n" ; "Bonjour Monde\n" }},
                                     {0}))
-tests/non-free/strchr.c:56:[value] Frama_C_show_each_mystrchr: {12; 14}
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
-tests/non-free/strchr.c:297:[value] assertion got status valid.
-[value] computing for function my_strchr2 <- strchr_misc <- main.
-    Called from tests/non-free/strchr.c:299.
-tests/non-free/strchr.c:62:[value] warning: function strchr: precondition 'valid_string_src' got status unknown.
-tests/non-free/strchr.c:62:[value] Call to builtin Frama_C_strchr(({{ &x + {0; 3} }},{0}))
-tests/non-free/strchr.c:62:[value] builtin Frama_C_strchr: possibly reading indeterminate data
-tests/non-free/strchr.c:69:[value] Frama_C_show_each_mystrchr2: {0}
-[value] Recording results for my_strchr2
-[value] Done for function my_strchr2
-tests/non-free/strchr.c:300:[value] assertion got status valid.
-[value] computing for function my_strchr <- strchr_misc <- main.
-    Called from tests/non-free/strchr.c:302.
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
-[value] computing for function my_strchr <- strchr_misc <- main.
-    Called from tests/non-free/strchr.c:303.
-tests/non-free/strchr.c:49:[value] Call to builtin Frama_C_strchr(({{ "abc\000\000\000abc" }},{0}))
-tests/non-free/strchr.c:56:[value] Frama_C_show_each_mystrchr: {3}
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
-tests/non-free/strchr.c:304:[value] assertion got status valid.
-[value] computing for function my_strchr <- strchr_misc <- main.
-    Called from tests/non-free/strchr.c:305.
-tests/non-free/strchr.c:49:[value] Call to builtin Frama_C_strchr(({{ "abc\000\000\000abc" + {4} }},{0}))
-tests/non-free/strchr.c:56:[value] Frama_C_show_each_mystrchr: {4}
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
-tests/non-free/strchr.c:306:[value] assertion got status valid.
-[value] computing for function my_strchr <- strchr_misc <- main.
-    Called from tests/non-free/strchr.c:307.
-tests/non-free/strchr.c:49:[value] Call to builtin Frama_C_strchr(({{ "abc\000\000\000abc" + {5} }},{0}))
-tests/non-free/strchr.c:56:[value] Frama_C_show_each_mystrchr: {5}
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
-tests/non-free/strchr.c:308:[value] assertion got status valid.
-[value] computing for function my_strchr <- strchr_misc <- main.
-    Called from tests/non-free/strchr.c:309.
-tests/non-free/strchr.c:49:[value] Call to builtin Frama_C_strchr(({{ "abc\000\000\000abc" + {6} }},{0}))
-tests/non-free/strchr.c:56:[value] Frama_C_show_each_mystrchr: {9}
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
-tests/non-free/strchr.c:310:[value] assertion got status valid.
+tests/non-free/strchr.c:314:[value] warning: pointer subtraction. assert \base_addr(_ss) ≡ \base_addr(str);
+tests/non-free/strchr.c:314:[value] Frama_C_show_each_mystrchr: {12; 14}
+tests/non-free/strchr.c:315:[value] assertion got status valid.
+tests/non-free/strchr.c:317:[value] warning: function strchr: precondition 'valid_string_src' got status unknown.
+tests/non-free/strchr.c:317:[value] Call to builtin Frama_C_strchr(({{ &x + {0; 3} }},{0}))
+tests/non-free/strchr.c:317:[value] builtin Frama_C_strchr: possibly reading indeterminate data
+tests/non-free/strchr.c:317:[value] Frama_C_show_each_mystrchr2: {0}
+tests/non-free/strchr.c:318:[value] assertion got status valid.
+tests/non-free/strchr.c:320:[value] warning: function strchr: precondition 'valid_string_src' got status invalid.
+tests/non-free/strchr.c:321:[value] function strchr: precondition 'valid_string_src' got status valid.
+tests/non-free/strchr.c:321:[value] Call to builtin Frama_C_strchr(({{ "abc\000\000\000abc" }},{0}))
+tests/non-free/strchr.c:321:[value] Frama_C_show_each_mystrchr: {3}
+tests/non-free/strchr.c:322:[value] assertion got status valid.
+tests/non-free/strchr.c:323:[value] function strchr: precondition 'valid_string_src' got status valid.
+tests/non-free/strchr.c:323:[value] Call to builtin Frama_C_strchr(({{ "abc\000\000\000abc" + {4} }},{0}))
+tests/non-free/strchr.c:323:[value] Frama_C_show_each_mystrchr: {4}
+tests/non-free/strchr.c:324:[value] assertion got status valid.
+tests/non-free/strchr.c:325:[value] function strchr: precondition 'valid_string_src' got status valid.
+tests/non-free/strchr.c:325:[value] Call to builtin Frama_C_strchr(({{ "abc\000\000\000abc" + {5} }},{0}))
+tests/non-free/strchr.c:325:[value] Frama_C_show_each_mystrchr: {5}
+tests/non-free/strchr.c:326:[value] assertion got status valid.
+tests/non-free/strchr.c:327:[value] function strchr: precondition 'valid_string_src' got status valid.
+tests/non-free/strchr.c:327:[value] Call to builtin Frama_C_strchr(({{ "abc\000\000\000abc" + {6} }},{0}))
+tests/non-free/strchr.c:327:[value] Frama_C_show_each_mystrchr: {9}
+tests/non-free/strchr.c:328:[value] assertion got status valid.
 [value] Recording results for strchr_misc
 [value] Done for function strchr_misc
 [value] computing for function strchr_misc2 <- main.
-    Called from tests/non-free/strchr.c:545.
-[value] computing for function my_strchr2 <- strchr_misc2 <- main.
-    Called from tests/non-free/strchr.c:319.
-tests/non-free/strchr.c:62:[value] function strchr: precondition 'valid_string_src' got status valid.
-tests/non-free/strchr.c:62:[value] Call to builtin Frama_C_strchr(({{ "abc" + {0; 1} ; "ABCD" + {0; 1} }},{0}))
-tests/non-free/strchr.c:67:[value] warning: pointer subtraction. assert \base_addr(s) ≡ \base_addr((char *)base);
-tests/non-free/strchr.c:69:[value] Frama_C_show_each_mystrchr2: {3; 4}
-[value] Recording results for my_strchr2
-[value] Done for function my_strchr2
-tests/non-free/strchr.c:320:[value] assertion got status valid.
-[value] computing for function my_strchr2 <- strchr_misc2 <- main.
-    Called from tests/non-free/strchr.c:323.
-tests/non-free/strchr.c:62:[value] Call to builtin Frama_C_strchr(({{ "efg" + {1; 2} ; "EFGH" + {1; 2} }},{0}))
-tests/non-free/strchr.c:69:[value] Frama_C_show_each_mystrchr2: {3; 4}
-[value] Recording results for my_strchr2
-[value] Done for function my_strchr2
-tests/non-free/strchr.c:324:[value] assertion got status valid.
-tests/non-free/strchr.c:327:[value] entering loop for the first time
-[value] computing for function my_strchr <- strchr_misc2 <- main.
-    Called from tests/non-free/strchr.c:328.
-tests/non-free/strchr.c:49:[value] Call to builtin Frama_C_strchr(({{ "mno\000pqr" ; "MNOP\000QRS" }},{0}))
-tests/non-free/strchr.c:56:[value] Frama_C_show_each_mystrchr: {3; 4}
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
-tests/non-free/strchr.c:329:[value] assertion got status valid.
-[value] computing for function my_strchr <- strchr_misc2 <- main.
-    Called from tests/non-free/strchr.c:328.
-tests/non-free/strchr.c:49:[value] Call to builtin Frama_C_strchr(({{ "mno\000pqr" + {0; 1} ;
+    Called from tests/non-free/strchr.c:563.
+tests/non-free/strchr.c:336:[value] function strchr: precondition 'valid_string_src' got status valid.
+tests/non-free/strchr.c:336:[value] Call to builtin Frama_C_strchr(({{ "abc" + {0; 1} ; "ABCD" + {0; 1} }},{0}))
+tests/non-free/strchr.c:336:[value] warning: pointer subtraction. assert \base_addr(_s) ≡ \base_addr(s1);
+tests/non-free/strchr.c:336:[value] Frama_C_show_each_mystrchr2: {3; 4}
+tests/non-free/strchr.c:337:[value] assertion got status valid.
+tests/non-free/strchr.c:340:[value] function strchr: precondition 'valid_string_src' got status valid.
+tests/non-free/strchr.c:340:[value] Call to builtin Frama_C_strchr(({{ "efg" + {1; 2} ; "EFGH" + {1; 2} }},{0}))
+tests/non-free/strchr.c:340:[value] warning: pointer subtraction. assert \base_addr(_s_0) ≡ \base_addr(s1);
+tests/non-free/strchr.c:340:[value] Frama_C_show_each_mystrchr2: {3; 4}
+tests/non-free/strchr.c:341:[value] assertion got status valid.
+tests/non-free/strchr.c:344:[value] entering loop for the first time
+tests/non-free/strchr.c:345:[value] function strchr: precondition 'valid_string_src' got status valid.
+tests/non-free/strchr.c:345:[value] Call to builtin Frama_C_strchr(({{ "mno\000pqr" ; "MNOP\000QRS" }},{0}))
+tests/non-free/strchr.c:345:[value] warning: pointer subtraction. assert \base_addr(_ss) ≡ \base_addr(s1);
+tests/non-free/strchr.c:345:[value] Frama_C_show_each_mystrchr: {3; 4}
+tests/non-free/strchr.c:346:[value] assertion got status valid.
+tests/non-free/strchr.c:345:[value] Call to builtin Frama_C_strchr(({{ "mno\000pqr" + {0; 1} ;
                                        "MNOP\000QRS" + {0; 1} }},{0}))
-tests/non-free/strchr.c:56:[value] Frama_C_show_each_mystrchr: {3; 4}
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
-[value] computing for function my_strchr <- strchr_misc2 <- main.
-    Called from tests/non-free/strchr.c:328.
-tests/non-free/strchr.c:49:[value] Call to builtin Frama_C_strchr(({{ "mno\000pqr" + {0; 1; 2} ;
+tests/non-free/strchr.c:345:[value] Frama_C_show_each_mystrchr: {3; 4}
+tests/non-free/strchr.c:345:[value] Call to builtin Frama_C_strchr(({{ "mno\000pqr" + {0; 1; 2} ;
                                        "MNOP\000QRS" + {0; 1; 2} }},{0}))
-tests/non-free/strchr.c:56:[value] Frama_C_show_each_mystrchr: {3; 4}
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
-[value] computing for function my_strchr <- strchr_misc2 <- main.
-    Called from tests/non-free/strchr.c:328.
-tests/non-free/strchr.c:49:[value] Call to builtin Frama_C_strchr(({{ "mno\000pqr" + {0; 1; 2; 3; 4; 5; 6; 7} ;
+tests/non-free/strchr.c:345:[value] Frama_C_show_each_mystrchr: {3; 4}
+tests/non-free/strchr.c:345:[value] Call to builtin Frama_C_strchr(({{ "mno\000pqr" + {0; 1; 2; 3; 4; 5; 6; 7} ;
                                        "MNOP\000QRS" + {0; 1; 2; 3; 4; 5; 6; 7} }},
                                     {0}))
-tests/non-free/strchr.c:56:[value] Frama_C_show_each_mystrchr: {3; 4; 7; 8}
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
-[value] computing for function my_strchr <- strchr_misc2 <- main.
-    Called from tests/non-free/strchr.c:328.
-tests/non-free/strchr.c:49:[value] Call to builtin Frama_C_strchr(({{ "mno\000pqr" + {0; 1; 2; 3; 4; 5; 6; 7} ;
-                                       "MNOP\000QRS" + {0; 1; 2; 3; 4; 5; 6; 7} }},
-                                    {0}))
-tests/non-free/strchr.c:56:[value] Frama_C_show_each_mystrchr: {3; 4; 7; 8}
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
-[value] computing for function my_strchr <- strchr_misc2 <- main.
-    Called from tests/non-free/strchr.c:335.
-tests/non-free/strchr.c:49:[value] Call to builtin Frama_C_strchr(({{ &maybe_init[0] }},{0}))
-tests/non-free/strchr.c:49:[value] builtin Frama_C_strchr: possible uninitialized values
-tests/non-free/strchr.c:56:[value] Frama_C_show_each_mystrchr: {1}
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
-tests/non-free/strchr.c:336:[value] assertion got status valid.
+tests/non-free/strchr.c:345:[value] Frama_C_show_each_mystrchr: {3; 4; 7; 8}
+tests/non-free/strchr.c:352:[value] warning: function strchr: precondition 'valid_string_src' got status unknown.
+tests/non-free/strchr.c:352:[value] Call to builtin Frama_C_strchr(({{ &maybe_init[0] }},{0}))
+tests/non-free/strchr.c:352:[value] builtin Frama_C_strchr: possible uninitialized values
+tests/non-free/strchr.c:352:[value] Frama_C_show_each_mystrchr: {1}
+tests/non-free/strchr.c:353:[value] assertion got status valid.
 [value] Recording results for strchr_misc2
 [value] Done for function strchr_misc2
 [value] computing for function strchr_bitfields <- main.
-    Called from tests/non-free/strchr.c:546.
-tests/non-free/strchr.c:157:[value] warning: function strchr: precondition 'valid_string_src' got status invalid.
+    Called from tests/non-free/strchr.c:564.
+tests/non-free/strchr.c:176:[value] warning: function strchr: precondition 'valid_string_src' got status invalid.
 [value] Recording results for strchr_bitfields
 [value] Done for function strchr_bitfields
 [value] computing for function strchr_bitfields2 <- main.
-    Called from tests/non-free/strchr.c:547.
-[value] computing for function my_strchr <- strchr_bitfields2 <- main.
-    Called from tests/non-free/strchr.c:174.
-tests/non-free/strchr.c:49:[value] Call to builtin Frama_C_strchr(({{ (char const *)&s }},{0}))
-tests/non-free/strchr.c:56:[value] Frama_C_show_each_mystrchr: {2}
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
-tests/non-free/strchr.c:175:[value] assertion got status valid.
+    Called from tests/non-free/strchr.c:565.
+tests/non-free/strchr.c:193:[value] function strchr: precondition 'valid_string_src' got status valid.
+tests/non-free/strchr.c:193:[value] Call to builtin Frama_C_strchr(({{ (char const *)&s }},{0}))
+tests/non-free/strchr.c:193:[value] Frama_C_show_each_mystrchr: {2}
+tests/non-free/strchr.c:194:[value] assertion got status valid.
 [value] Recording results for strchr_bitfields2
 [value] Done for function strchr_bitfields2
 [value] computing for function strchr_escaping <- main.
-    Called from tests/non-free/strchr.c:548.
-tests/non-free/strchr.c:249:[value] warning: locals {x} escaping the scope of a block of strchr_escaping through s
-[value] computing for function my_strchr <- strchr_escaping <- main.
-    Called from tests/non-free/strchr.c:252.
-tests/non-free/strchr.c:49:[value] Call to builtin Frama_C_strchr(({{ &s[0] }},{0}))
-tests/non-free/strchr.c:49:[value] builtin Frama_C_strchr: possible escaping addresses
-tests/non-free/strchr.c:56:[value] Frama_C_show_each_mystrchr: {0}
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
-tests/non-free/strchr.c:253:[value] assertion got status valid.
-[value] computing for function my_strchr <- strchr_escaping <- main.
-    Called from tests/non-free/strchr.c:255.
-tests/non-free/strchr.c:49:[value] Call to builtin Frama_C_strchr(({{ &s[0] }},{0}))
-tests/non-free/strchr.c:56:[value] Frama_C_show_each_mystrchr: {0}
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
-tests/non-free/strchr.c:256:[value] assertion got status valid.
+    Called from tests/non-free/strchr.c:566.
+tests/non-free/strchr.c:268:[value] warning: locals {x} escaping the scope of a block of strchr_escaping through s
+tests/non-free/strchr.c:271:[value] warning: function strchr: precondition 'valid_string_src' got status unknown.
+tests/non-free/strchr.c:271:[value] Call to builtin Frama_C_strchr(({{ &s[0] }},{0}))
+tests/non-free/strchr.c:271:[value] builtin Frama_C_strchr: possible escaping addresses
+tests/non-free/strchr.c:271:[value] Frama_C_show_each_mystrchr: {0}
+tests/non-free/strchr.c:272:[value] assertion got status valid.
+tests/non-free/strchr.c:274:[value] function strchr: precondition 'valid_string_src' got status valid.
+tests/non-free/strchr.c:274:[value] Call to builtin Frama_C_strchr(({{ &s[0] }},{0}))
+tests/non-free/strchr.c:274:[value] Frama_C_show_each_mystrchr: {0}
+tests/non-free/strchr.c:275:[value] assertion got status valid.
 [value] Recording results for strchr_escaping
 [value] Done for function strchr_escaping
 [value] computing for function strchr_big_array <- main.
-    Called from tests/non-free/strchr.c:549.
-tests/non-free/strchr.c:346:[value] warning: out of bounds write. assert \valid(p);
-tests/non-free/strchr.c:348:[value] warning: out of bounds write. assert \valid(p);
-tests/non-free/strchr.c:350:[value] warning: out of bounds write. assert \valid(p);
-[value] computing for function my_strchr <- strchr_big_array <- main.
-    Called from tests/non-free/strchr.c:359.
-tests/non-free/strchr.c:49:[value] Call to builtin Frama_C_strchr(({{ (char const *)&u }},{0}))
-tests/non-free/strchr.c:49:[value] builtin Frama_C_strchr: possible uninitialized values
-tests/non-free/strchr.c:56:[value] Frama_C_show_each_mystrchr: {1}
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
-[value] computing for function my_strchr <- strchr_big_array <- main.
-    Called from tests/non-free/strchr.c:360.
-tests/non-free/strchr.c:49:[kernel] more than 200(201) locations to update in array. Approximating.
-tests/non-free/strchr.c:49:[value] Call to builtin Frama_C_strchr(({{ (char const *)&r }},{0}))
-tests/non-free/strchr.c:49:[value] builtin Frama_C_strchr: possible uninitialized values
-tests/non-free/strchr.c:56:[value] Frama_C_show_each_mystrchr: {1}
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
-[value] computing for function my_strchr <- strchr_big_array <- main.
-    Called from tests/non-free/strchr.c:361.
-tests/non-free/strchr.c:49:[kernel] more than 200(1000000) locations to update in array. Approximating.
-tests/non-free/strchr.c:49:[value] Call to builtin Frama_C_strchr(({{ (char const *)&t }},{0}))
-tests/non-free/strchr.c:49:[value] builtin Frama_C_strchr: possible uninitialized values
-tests/non-free/strchr.c:56:[value] Frama_C_show_each_mystrchr: {1}
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
-tests/non-free/strchr.c:362:[value] Frama_C_show_each: {1}, {1}, {1}
-tests/non-free/strchr.c:363:[value] assertion got status valid.
-tests/non-free/strchr.c:364:[value] assertion got status valid.
-tests/non-free/strchr.c:365:[value] assertion got status valid.
-[value] computing for function my_strchr <- strchr_big_array <- main.
-    Called from tests/non-free/strchr.c:367.
-tests/non-free/strchr.c:49:[value] Call to builtin Frama_C_strchr(({{ &u + [0..4294967295] }},{0}))
-tests/non-free/strchr.c:49:[value] builtin Frama_C_strchr:
+    Called from tests/non-free/strchr.c:567.
+tests/non-free/strchr.c:363:[value] warning: out of bounds write. assert \valid(p);
+tests/non-free/strchr.c:365:[value] warning: out of bounds write. assert \valid(p);
+tests/non-free/strchr.c:367:[value] warning: out of bounds write. assert \valid(p);
+tests/non-free/strchr.c:376:[value] warning: function strchr: precondition 'valid_string_src' got status unknown.
+tests/non-free/strchr.c:376:[value] Call to builtin Frama_C_strchr(({{ (char const *)&u }},{0}))
+tests/non-free/strchr.c:376:[value] builtin Frama_C_strchr: possible uninitialized values
+tests/non-free/strchr.c:376:[value] Frama_C_show_each_mystrchr: {1}
+tests/non-free/strchr.c:377:[kernel] more than 200(201) locations to update in array. Approximating.
+tests/non-free/strchr.c:377:[value] warning: function strchr: precondition 'valid_string_src' got status unknown.
+tests/non-free/strchr.c:377:[value] Call to builtin Frama_C_strchr(({{ (char const *)&r }},{0}))
+tests/non-free/strchr.c:377:[value] builtin Frama_C_strchr: possible uninitialized values
+tests/non-free/strchr.c:377:[value] Frama_C_show_each_mystrchr: {1}
+tests/non-free/strchr.c:378:[kernel] more than 200(1000000) locations to update in array. Approximating.
+tests/non-free/strchr.c:378:[value] warning: function strchr: precondition 'valid_string_src' got status unknown.
+tests/non-free/strchr.c:378:[value] Call to builtin Frama_C_strchr(({{ (char const *)&t }},{0}))
+tests/non-free/strchr.c:378:[value] builtin Frama_C_strchr: possible uninitialized values
+tests/non-free/strchr.c:378:[value] Frama_C_show_each_mystrchr: {1}
+tests/non-free/strchr.c:379:[value] Frama_C_show_each: {1}, {1}, {1}
+tests/non-free/strchr.c:380:[value] assertion got status valid.
+tests/non-free/strchr.c:381:[value] assertion got status valid.
+tests/non-free/strchr.c:382:[value] assertion got status valid.
+tests/non-free/strchr.c:384:[value] warning: function strchr: precondition 'valid_string_src' got status unknown.
+tests/non-free/strchr.c:384:[value] Call to builtin Frama_C_strchr(({{ &u + [-2147483648..2147483647] }},{0}))
+tests/non-free/strchr.c:384:[value] builtin Frama_C_strchr:
     range too large and/or imprecise, approximating
     possible uninitialized values
     possible escaping addresses
     possibly reading indeterminate data
-tests/non-free/strchr.c:56:[value] Frama_C_show_each_mystrchr: [-1..799]
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
-[value] computing for function my_strchr <- strchr_big_array <- main.
-    Called from tests/non-free/strchr.c:368.
-tests/non-free/strchr.c:49:[value] Call to builtin Frama_C_strchr(({{ &r + [0..4294967295] }},{0}))
-tests/non-free/strchr.c:49:[value] builtin Frama_C_strchr:
+tests/non-free/strchr.c:384:[value] Frama_C_show_each_mystrchr: [-1..799]
+tests/non-free/strchr.c:385:[kernel] more than 200(201) locations to update in array. Approximating.
+tests/non-free/strchr.c:385:[value] warning: function strchr: precondition 'valid_string_src' got status unknown.
+tests/non-free/strchr.c:385:[value] Call to builtin Frama_C_strchr(({{ &r + [-2147483648..2147483647] }},{0}))
+tests/non-free/strchr.c:385:[value] builtin Frama_C_strchr:
     range too large and/or imprecise, approximating
     possible uninitialized values
     possible escaping addresses
     possibly reading indeterminate data
-tests/non-free/strchr.c:56:[value] Frama_C_show_each_mystrchr: [-1..803]
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
-[value] computing for function my_strchr <- strchr_big_array <- main.
-    Called from tests/non-free/strchr.c:369.
-tests/non-free/strchr.c:49:[value] Call to builtin Frama_C_strchr(({{ &t + [0..4294967295] }},{0}))
-tests/non-free/strchr.c:49:[value] builtin Frama_C_strchr:
+tests/non-free/strchr.c:385:[value] Frama_C_show_each_mystrchr: [-1..803]
+tests/non-free/strchr.c:386:[kernel] more than 200(1000000) locations to update in array. Approximating.
+tests/non-free/strchr.c:386:[value] warning: function strchr: precondition 'valid_string_src' got status unknown.
+tests/non-free/strchr.c:386:[value] Call to builtin Frama_C_strchr(({{ &t + [-2147483648..2147483647] }},{0}))
+tests/non-free/strchr.c:386:[value] builtin Frama_C_strchr:
     range too large and/or imprecise, approximating
     possible uninitialized values
     possible escaping addresses
     possibly reading indeterminate data
-tests/non-free/strchr.c:56:[value] Frama_C_show_each_mystrchr: [-1..3999999]
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
-tests/non-free/strchr.c:370:[value] Frama_C_show_each: [-1..799], [-1..803], [-1..3999999]
-tests/non-free/strchr.c:371:[value] assertion got status valid.
-tests/non-free/strchr.c:372:[value] assertion got status valid.
-tests/non-free/strchr.c:373:[value] assertion got status valid.
-tests/non-free/strchr.c:374:[value] warning: assertion 'refined' got status unknown.
-tests/non-free/strchr.c:375:[value] warning: assertion 'refined' got status unknown.
-tests/non-free/strchr.c:376:[value] warning: assertion 'refined' got status unknown.
+tests/non-free/strchr.c:386:[value] Frama_C_show_each_mystrchr: [-1..3999999]
+tests/non-free/strchr.c:387:[value] Frama_C_show_each: [-1..799], [-1..803], [-1..3999999]
+tests/non-free/strchr.c:388:[value] assertion got status valid.
+tests/non-free/strchr.c:389:[value] assertion got status valid.
+tests/non-free/strchr.c:390:[value] assertion got status valid.
+tests/non-free/strchr.c:391:[value] warning: assertion 'refined' got status unknown.
+tests/non-free/strchr.c:392:[value] warning: assertion 'refined' got status unknown.
+tests/non-free/strchr.c:393:[value] warning: assertion 'refined' got status unknown.
 [value] computing for function init_array_nondet <- strchr_big_array <- main.
-    Called from tests/non-free/strchr.c:378.
-tests/non-free/strchr.c:180:[value] Call to builtin memset(({{ (void *)&u }},{0; 1},{800}))
+    Called from tests/non-free/strchr.c:395.
+tests/non-free/strchr.c:199:[value] Call to builtin memset(({{ (void *)&u }},{0; 1},{800}))
 [value] Recording results for init_array_nondet
 [value] Done for function init_array_nondet
 [value] computing for function init_array_nondet <- strchr_big_array <- main.
-    Called from tests/non-free/strchr.c:379.
-tests/non-free/strchr.c:180:[value] Call to builtin memset(({{ (void *)&r }},{0; 1},{804}))
+    Called from tests/non-free/strchr.c:396.
+tests/non-free/strchr.c:199:[value] Call to builtin memset(({{ (void *)&r }},{0; 1},{804}))
 [value] Recording results for init_array_nondet
 [value] Done for function init_array_nondet
 [value] computing for function init_array_nondet <- strchr_big_array <- main.
-    Called from tests/non-free/strchr.c:380.
-tests/non-free/strchr.c:180:[value] Call to builtin memset(({{ (void *)&t }},{0; 1},{4000000}))
+    Called from tests/non-free/strchr.c:397.
+tests/non-free/strchr.c:199:[value] Call to builtin memset(({{ (void *)&t }},{0; 1},{4000000}))
 [value] Recording results for init_array_nondet
 [value] Done for function init_array_nondet
-tests/non-free/strchr.c:382:[value] warning: out of bounds write. assert \valid(p);
-tests/non-free/strchr.c:384:[value] warning: out of bounds write. assert \valid(p);
-tests/non-free/strchr.c:386:[value] warning: out of bounds write. assert \valid(p);
-[value] computing for function my_strchr <- strchr_big_array <- main.
-    Called from tests/non-free/strchr.c:387.
-tests/non-free/strchr.c:49:[value] Call to builtin Frama_C_strchr(({{ (char const *)&u }},{0}))
-tests/non-free/strchr.c:49:[value] builtin Frama_C_strchr: possibly reading indeterminate data
-tests/non-free/strchr.c:56:[value] Frama_C_show_each_mystrchr: [0..799]
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
-[value] computing for function my_strchr <- strchr_big_array <- main.
-    Called from tests/non-free/strchr.c:388.
-tests/non-free/strchr.c:49:[value] Call to builtin Frama_C_strchr(({{ (char const *)&r }},{0}))
-tests/non-free/strchr.c:49:[value] builtin Frama_C_strchr: possibly reading indeterminate data
-tests/non-free/strchr.c:56:[value] Frama_C_show_each_mystrchr: [0..803]
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
-[value] computing for function my_strchr <- strchr_big_array <- main.
-    Called from tests/non-free/strchr.c:389.
-tests/non-free/strchr.c:49:[value] Call to builtin Frama_C_strchr(({{ (char const *)&t }},{0}))
-tests/non-free/strchr.c:49:[value] builtin Frama_C_strchr: possibly reading indeterminate data
-tests/non-free/strchr.c:56:[value] Frama_C_show_each_mystrchr: [0..3999999]
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
-tests/non-free/strchr.c:390:[value] Frama_C_show_each: [0..799], [0..803], [0..3999999]
-tests/non-free/strchr.c:391:[value] assertion got status valid.
-tests/non-free/strchr.c:392:[value] assertion got status valid.
-tests/non-free/strchr.c:393:[value] assertion got status valid.
-[value] computing for function my_strchr <- strchr_big_array <- main.
-    Called from tests/non-free/strchr.c:395.
-tests/non-free/strchr.c:49:[value] Call to builtin Frama_C_strchr(({{ &u + [0..4294967295] }},{0}))
-tests/non-free/strchr.c:49:[value] builtin Frama_C_strchr:
+tests/non-free/strchr.c:399:[value] warning: out of bounds write. assert \valid(p);
+tests/non-free/strchr.c:401:[value] warning: out of bounds write. assert \valid(p);
+tests/non-free/strchr.c:403:[value] warning: out of bounds write. assert \valid(p);
+tests/non-free/strchr.c:404:[value] warning: function strchr: precondition 'valid_string_src' got status unknown.
+tests/non-free/strchr.c:404:[value] Call to builtin Frama_C_strchr(({{ (char const *)&u }},{0}))
+tests/non-free/strchr.c:404:[value] builtin Frama_C_strchr: possibly reading indeterminate data
+tests/non-free/strchr.c:404:[value] Frama_C_show_each_mystrchr: [0..799]
+tests/non-free/strchr.c:405:[kernel] more than 200(201) locations to update in array. Approximating.
+tests/non-free/strchr.c:405:[value] warning: function strchr: precondition 'valid_string_src' got status unknown.
+tests/non-free/strchr.c:405:[value] Call to builtin Frama_C_strchr(({{ (char const *)&r }},{0}))
+tests/non-free/strchr.c:405:[value] builtin Frama_C_strchr: possibly reading indeterminate data
+tests/non-free/strchr.c:405:[value] Frama_C_show_each_mystrchr: [0..803]
+tests/non-free/strchr.c:406:[kernel] more than 200(1000000) locations to update in array. Approximating.
+tests/non-free/strchr.c:406:[value] warning: function strchr: precondition 'valid_string_src' got status unknown.
+tests/non-free/strchr.c:406:[value] Call to builtin Frama_C_strchr(({{ (char const *)&t }},{0}))
+tests/non-free/strchr.c:406:[value] builtin Frama_C_strchr: possibly reading indeterminate data
+tests/non-free/strchr.c:406:[value] Frama_C_show_each_mystrchr: [0..3999999]
+tests/non-free/strchr.c:407:[value] Frama_C_show_each: [0..799], [0..803], [0..3999999]
+tests/non-free/strchr.c:408:[value] assertion got status valid.
+tests/non-free/strchr.c:409:[value] assertion got status valid.
+tests/non-free/strchr.c:410:[value] assertion got status valid.
+tests/non-free/strchr.c:412:[value] warning: function strchr: precondition 'valid_string_src' got status unknown.
+tests/non-free/strchr.c:412:[value] Call to builtin Frama_C_strchr(({{ &u + [-2147483648..2147483647] }},{0}))
+tests/non-free/strchr.c:412:[value] builtin Frama_C_strchr:
     range too large and/or imprecise, approximating
     possible uninitialized values
     possible escaping addresses
     possibly reading indeterminate data
-tests/non-free/strchr.c:56:[value] Frama_C_show_each_mystrchr: [-1..799]
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
-[value] computing for function my_strchr <- strchr_big_array <- main.
-    Called from tests/non-free/strchr.c:396.
-tests/non-free/strchr.c:49:[value] Call to builtin Frama_C_strchr(({{ &r + [0..4294967295] }},{0}))
-tests/non-free/strchr.c:49:[value] builtin Frama_C_strchr:
+tests/non-free/strchr.c:412:[value] Frama_C_show_each_mystrchr: [-1..799]
+tests/non-free/strchr.c:413:[kernel] more than 200(201) locations to update in array. Approximating.
+tests/non-free/strchr.c:413:[value] warning: function strchr: precondition 'valid_string_src' got status unknown.
+tests/non-free/strchr.c:413:[value] Call to builtin Frama_C_strchr(({{ &r + [-2147483648..2147483647] }},{0}))
+tests/non-free/strchr.c:413:[value] builtin Frama_C_strchr:
     range too large and/or imprecise, approximating
     possible uninitialized values
     possible escaping addresses
     possibly reading indeterminate data
-tests/non-free/strchr.c:56:[value] Frama_C_show_each_mystrchr: [-1..803]
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
-[value] computing for function my_strchr <- strchr_big_array <- main.
-    Called from tests/non-free/strchr.c:397.
-tests/non-free/strchr.c:49:[value] Call to builtin Frama_C_strchr(({{ &t + [0..4294967295] }},{0}))
-tests/non-free/strchr.c:49:[value] builtin Frama_C_strchr:
+tests/non-free/strchr.c:413:[value] Frama_C_show_each_mystrchr: [-1..803]
+tests/non-free/strchr.c:414:[kernel] more than 200(1000000) locations to update in array. Approximating.
+tests/non-free/strchr.c:414:[value] warning: function strchr: precondition 'valid_string_src' got status unknown.
+tests/non-free/strchr.c:414:[value] Call to builtin Frama_C_strchr(({{ &t + [-2147483648..2147483647] }},{0}))
+tests/non-free/strchr.c:414:[value] builtin Frama_C_strchr:
     range too large and/or imprecise, approximating
     possible uninitialized values
     possible escaping addresses
     possibly reading indeterminate data
-tests/non-free/strchr.c:56:[value] Frama_C_show_each_mystrchr: [-1..3999999]
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
-tests/non-free/strchr.c:398:[value] Frama_C_show_each: [-1..799], [-1..803], [-1..3999999]
-tests/non-free/strchr.c:399:[value] assertion got status valid.
-tests/non-free/strchr.c:400:[value] assertion got status valid.
-tests/non-free/strchr.c:401:[value] assertion got status valid.
-tests/non-free/strchr.c:402:[value] warning: assertion 'refined' got status unknown.
-tests/non-free/strchr.c:403:[value] warning: assertion 'refined' got status unknown.
-tests/non-free/strchr.c:404:[value] warning: assertion 'refined' got status unknown.
+tests/non-free/strchr.c:414:[value] Frama_C_show_each_mystrchr: [-1..3999999]
+tests/non-free/strchr.c:415:[value] Frama_C_show_each: [-1..799], [-1..803], [-1..3999999]
+tests/non-free/strchr.c:416:[value] assertion got status valid.
+tests/non-free/strchr.c:417:[value] assertion got status valid.
+tests/non-free/strchr.c:418:[value] assertion got status valid.
+tests/non-free/strchr.c:419:[value] warning: assertion 'refined' got status unknown.
+tests/non-free/strchr.c:420:[value] warning: assertion 'refined' got status unknown.
+tests/non-free/strchr.c:421:[value] warning: assertion 'refined' got status unknown.
 [value] Recording results for strchr_big_array
 [value] Done for function strchr_big_array
 [value] computing for function strchr_no_zero_but_ok <- main.
-    Called from tests/non-free/strchr.c:550.
-[value] computing for function my_strchr <- strchr_no_zero_but_ok <- main.
-    Called from tests/non-free/strchr.c:415.
-tests/non-free/strchr.c:49:[value] Call to builtin Frama_C_strchr(({{ &s[0] }},{0}))
-tests/non-free/strchr.c:56:[value] Frama_C_show_each_mystrchr: {10}
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
-tests/non-free/strchr.c:416:[value] assertion got status valid.
-[value] computing for function my_strchr <- strchr_no_zero_but_ok <- main.
-    Called from tests/non-free/strchr.c:417.
-tests/non-free/strchr.c:49:[value] Call to builtin Frama_C_strchr(({{ &s[0] }},{0}))
-tests/non-free/strchr.c:56:[value] Frama_C_show_each_mystrchr: {10}
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
-tests/non-free/strchr.c:418:[value] assertion got status valid.
-[value] computing for function my_strchr <- strchr_no_zero_but_ok <- main.
-    Called from tests/non-free/strchr.c:420.
-tests/non-free/strchr.c:49:[value] Call to builtin Frama_C_strchr(({{ &s{[1], [8]} }},{0}))
-tests/non-free/strchr.c:56:[value] Frama_C_show_each_mystrchr: {10}
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
-tests/non-free/strchr.c:421:[value] assertion got status valid.
-[value] computing for function my_strchr <- strchr_no_zero_but_ok <- main.
-    Called from tests/non-free/strchr.c:423.
-tests/non-free/strchr.c:49:[value] Call to builtin Frama_C_strchr(({{ &s{[7], [11]} }},{0}))
-tests/non-free/strchr.c:49:[value] builtin Frama_C_strchr: possibly reading indeterminate data
-tests/non-free/strchr.c:56:[value] Frama_C_show_each_mystrchr: {10; 14; 15; 16; 17; 18; 19}
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
-tests/non-free/strchr.c:424:[value] assertion got status valid.
-[value] computing for function my_strchr <- strchr_no_zero_but_ok <- main.
-    Called from tests/non-free/strchr.c:426.
-tests/non-free/strchr.c:49:[value] Call to builtin Frama_C_strchr(({{ &s{[7], [18]} }},{0}))
-tests/non-free/strchr.c:49:[value] builtin Frama_C_strchr: possibly reading indeterminate data
-tests/non-free/strchr.c:56:[value] Frama_C_show_each_mystrchr: {10; 18; 19}
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
-tests/non-free/strchr.c:427:[value] assertion got status valid.
+    Called from tests/non-free/strchr.c:568.
+tests/non-free/strchr.c:432:[value] function strchr: precondition 'valid_string_src' got status valid.
+tests/non-free/strchr.c:432:[value] Call to builtin Frama_C_strchr(({{ &s[0] }},{0}))
+tests/non-free/strchr.c:432:[value] Frama_C_show_each_mystrchr: {10}
+tests/non-free/strchr.c:433:[value] assertion got status valid.
+tests/non-free/strchr.c:434:[value] function strchr: precondition 'valid_string_src' got status valid.
+tests/non-free/strchr.c:434:[value] Call to builtin Frama_C_strchr(({{ &s[0] }},{0}))
+tests/non-free/strchr.c:434:[value] Frama_C_show_each_mystrchr: {10}
+tests/non-free/strchr.c:435:[value] assertion got status valid.
+tests/non-free/strchr.c:437:[value] function strchr: precondition 'valid_string_src' got status valid.
+tests/non-free/strchr.c:437:[value] Call to builtin Frama_C_strchr(({{ &s{[1], [8]} }},{0}))
+tests/non-free/strchr.c:437:[value] Frama_C_show_each_mystrchr: {10}
+tests/non-free/strchr.c:438:[value] assertion got status valid.
+tests/non-free/strchr.c:440:[value] warning: function strchr: precondition 'valid_string_src' got status unknown.
+tests/non-free/strchr.c:440:[value] Call to builtin Frama_C_strchr(({{ &s{[7], [11]} }},{0}))
+tests/non-free/strchr.c:440:[value] builtin Frama_C_strchr: possibly reading indeterminate data
+tests/non-free/strchr.c:440:[value] Frama_C_show_each_mystrchr: {10; 14; 15; 16; 17; 18; 19}
+tests/non-free/strchr.c:441:[value] assertion got status valid.
+tests/non-free/strchr.c:443:[value] warning: function strchr: precondition 'valid_string_src' got status unknown.
+tests/non-free/strchr.c:443:[value] Call to builtin Frama_C_strchr(({{ &s{[7], [18]} }},{0}))
+tests/non-free/strchr.c:443:[value] builtin Frama_C_strchr: possibly reading indeterminate data
+tests/non-free/strchr.c:443:[value] Frama_C_show_each_mystrchr: {10; 18; 19}
+tests/non-free/strchr.c:444:[value] assertion got status valid.
 [value] Recording results for strchr_no_zero_but_ok
 [value] Done for function strchr_no_zero_but_ok
 [value] computing for function strchr_small_sets_chars <- main.
-    Called from tests/non-free/strchr.c:551.
-tests/non-free/strchr.c:455:[value] Frama_C_show_each_c: {97}
+    Called from tests/non-free/strchr.c:569.
+tests/non-free/strchr.c:473:[value] Frama_C_show_each_c: {97}
 [value] computing for function strchr_small_sets_no_assertions <- 
                             strchr_small_sets_chars <- main.
-    Called from tests/non-free/strchr.c:456.
-[value] computing for function my_strchr <- strchr_small_sets_no_assertions <- 
-                            strchr_small_sets_chars <- main.
-    Called from tests/non-free/strchr.c:435.
-tests/non-free/strchr.c:49:[value] Call to builtin Frama_C_strchr(({{ "abc" + {0; 1} }},{97}))
-tests/non-free/strchr.c:56:[value] Frama_C_show_each_mystrchr: {-1; 0}
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
-[value] computing for function my_strchr <- strchr_small_sets_no_assertions <- 
-                            strchr_small_sets_chars <- main.
-    Called from tests/non-free/strchr.c:438.
-tests/non-free/strchr.c:49:[value] Call to builtin Frama_C_strchr(({{ "\000bc" + {0; 1} }},{97}))
-tests/non-free/strchr.c:49:[value] builtin Frama_C_strchr: reading indeterminate data
-tests/non-free/strchr.c:56:[value] Frama_C_show_each_mystrchr: {-1}
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
-[value] computing for function my_strchr <- strchr_small_sets_no_assertions <- 
-                            strchr_small_sets_chars <- main.
-    Called from tests/non-free/strchr.c:440.
-tests/non-free/strchr.c:49:[value] Call to builtin Frama_C_strchr(({{ "" }},{97}))
-tests/non-free/strchr.c:49:[value] builtin Frama_C_strchr: reading indeterminate data
-tests/non-free/strchr.c:56:[value] Frama_C_show_each_mystrchr: {-1}
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
-[value] computing for function my_strchr <- strchr_small_sets_no_assertions <- 
-                            strchr_small_sets_chars <- main.
-    Called from tests/non-free/strchr.c:443.
-tests/non-free/strchr.c:49:[value] Call to builtin Frama_C_strchr(({{ "b\000c" + {0; 2} }},{97}))
-tests/non-free/strchr.c:49:[value] builtin Frama_C_strchr: reading indeterminate data
-tests/non-free/strchr.c:56:[value] Frama_C_show_each_mystrchr: {-1}
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
+    Called from tests/non-free/strchr.c:474.
+tests/non-free/strchr.c:452:[value] function strchr: precondition 'valid_string_src' got status valid.
+tests/non-free/strchr.c:452:[value] Call to builtin Frama_C_strchr(({{ "abc" + {0; 1} }},{97}))
+tests/non-free/strchr.c:452:[value] Frama_C_show_each_mystrchr: {-1; 0}
+tests/non-free/strchr.c:455:[value] function strchr: precondition 'valid_string_src' got status valid.
+tests/non-free/strchr.c:455:[value] Call to builtin Frama_C_strchr(({{ "\000bc" + {0; 1} }},{97}))
+tests/non-free/strchr.c:455:[value] builtin Frama_C_strchr: reading indeterminate data
+tests/non-free/strchr.c:455:[value] Frama_C_show_each_mystrchr: {-1}
+tests/non-free/strchr.c:457:[value] function strchr: precondition 'valid_string_src' got status valid.
+tests/non-free/strchr.c:457:[value] Call to builtin Frama_C_strchr(({{ "" }},{97}))
+tests/non-free/strchr.c:457:[value] builtin Frama_C_strchr: reading indeterminate data
+tests/non-free/strchr.c:457:[value] Frama_C_show_each_mystrchr: {-1}
+tests/non-free/strchr.c:460:[value] function strchr: precondition 'valid_string_src' got status valid.
+tests/non-free/strchr.c:460:[value] Call to builtin Frama_C_strchr(({{ "b\000c" + {0; 2} }},{97}))
+tests/non-free/strchr.c:460:[value] builtin Frama_C_strchr: reading indeterminate data
+tests/non-free/strchr.c:460:[value] Frama_C_show_each_mystrchr: {-1}
+tests/non-free/strchr.c:465:[value] function strchr: precondition 'valid_string_src' got status valid.
+tests/non-free/strchr.c:465:[value] Call to builtin Frama_C_strchr(({{ &t[0] }},{97}))
+tests/non-free/strchr.c:465:[value] Frama_C_show_each_mystrchr: {-1; 0; 1}
 [value] Recording results for strchr_small_sets_no_assertions
 [value] Done for function strchr_small_sets_no_assertions
-tests/non-free/strchr.c:457:[value] Frama_C_show_each_res: {-1; 0}, {-1}, {-1}, {-1}, Bottom
-tests/non-free/strchr.c:458:[value] assertion got status valid.
-tests/non-free/strchr.c:459:[value] assertion got status valid.
-tests/non-free/strchr.c:460:[value] assertion got status valid.
-tests/non-free/strchr.c:461:[value] assertion got status valid.
-tests/non-free/strchr.c:462:[value] warning: assertion got status unknown.
+tests/non-free/strchr.c:475:[value] Frama_C_show_each_res: {-1; 0}, {-1}, {-1}, {-1}, {-1; 0; 1}
+tests/non-free/strchr.c:476:[value] assertion got status valid.
+tests/non-free/strchr.c:477:[value] assertion got status valid.
+tests/non-free/strchr.c:478:[value] assertion got status valid.
+tests/non-free/strchr.c:479:[value] assertion got status valid.
+tests/non-free/strchr.c:480:[value] warning: assertion got status unknown.
 [value] computing for function strchr_small_sets_no_assertions <- 
                             strchr_small_sets_chars <- main.
-    Called from tests/non-free/strchr.c:465.
-[value] computing for function my_strchr <- strchr_small_sets_no_assertions <- 
-                            strchr_small_sets_chars <- main.
-    Called from tests/non-free/strchr.c:435.
-tests/non-free/strchr.c:49:[value] Call to builtin Frama_C_strchr(({{ "abc" + {0; 1} }},{98}))
-tests/non-free/strchr.c:56:[value] Frama_C_show_each_mystrchr: {1}
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
-[value] computing for function my_strchr <- strchr_small_sets_no_assertions <- 
-                            strchr_small_sets_chars <- main.
-    Called from tests/non-free/strchr.c:438.
-tests/non-free/strchr.c:49:[value] Call to builtin Frama_C_strchr(({{ "\000bc" + {0; 1} }},{98}))
-tests/non-free/strchr.c:56:[value] Frama_C_show_each_mystrchr: {-1; 1}
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
-[value] computing for function my_strchr <- strchr_small_sets_no_assertions <- 
-                            strchr_small_sets_chars <- main.
-    Called from tests/non-free/strchr.c:440.
-tests/non-free/strchr.c:49:[value] Call to builtin Frama_C_strchr(({{ "" }},{98}))
-tests/non-free/strchr.c:49:[value] builtin Frama_C_strchr: reading indeterminate data
-tests/non-free/strchr.c:56:[value] Frama_C_show_each_mystrchr: {-1}
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
-[value] computing for function my_strchr <- strchr_small_sets_no_assertions <- 
-                            strchr_small_sets_chars <- main.
-    Called from tests/non-free/strchr.c:443.
-tests/non-free/strchr.c:49:[value] Call to builtin Frama_C_strchr(({{ "b\000c" + {0; 2} }},{98}))
-tests/non-free/strchr.c:56:[value] Frama_C_show_each_mystrchr: {-1; 0}
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
+    Called from tests/non-free/strchr.c:483.
+tests/non-free/strchr.c:452:[value] Call to builtin Frama_C_strchr(({{ "abc" + {0; 1} }},{98}))
+tests/non-free/strchr.c:452:[value] Frama_C_show_each_mystrchr: {1}
+tests/non-free/strchr.c:455:[value] Call to builtin Frama_C_strchr(({{ "\000bc" + {0; 1} }},{98}))
+tests/non-free/strchr.c:455:[value] Frama_C_show_each_mystrchr: {-1; 1}
+tests/non-free/strchr.c:457:[value] Call to builtin Frama_C_strchr(({{ "" }},{98}))
+tests/non-free/strchr.c:457:[value] builtin Frama_C_strchr: reading indeterminate data
+tests/non-free/strchr.c:457:[value] Frama_C_show_each_mystrchr: {-1}
+tests/non-free/strchr.c:460:[value] Call to builtin Frama_C_strchr(({{ "b\000c" + {0; 2} }},{98}))
+tests/non-free/strchr.c:460:[value] Frama_C_show_each_mystrchr: {-1; 0}
+tests/non-free/strchr.c:465:[value] Call to builtin Frama_C_strchr(({{ &t[0] }},{98}))
+tests/non-free/strchr.c:465:[value] Frama_C_show_each_mystrchr: {-1; 0; 1}
 [value] Recording results for strchr_small_sets_no_assertions
 [value] Done for function strchr_small_sets_no_assertions
-tests/non-free/strchr.c:466:[value] Frama_C_show_each_res: {1}, {-1; 1}, {-1}, {-1; 0}, Bottom
-tests/non-free/strchr.c:467:[value] assertion got status valid.
-tests/non-free/strchr.c:468:[value] assertion got status valid.
-tests/non-free/strchr.c:469:[value] assertion got status valid.
-tests/non-free/strchr.c:470:[value] assertion got status valid.
-tests/non-free/strchr.c:471:[value] warning: assertion got status unknown.
-tests/non-free/strchr.c:474:[value] Frama_C_show_each_c: {97; 98}
+tests/non-free/strchr.c:484:[value] Frama_C_show_each_res: {1}, {-1; 1}, {-1}, {-1; 0}, {-1; 0; 1}
+tests/non-free/strchr.c:485:[value] assertion got status valid.
+tests/non-free/strchr.c:486:[value] assertion got status valid.
+tests/non-free/strchr.c:487:[value] assertion got status valid.
+tests/non-free/strchr.c:488:[value] assertion got status valid.
+tests/non-free/strchr.c:489:[value] warning: assertion got status unknown.
+tests/non-free/strchr.c:492:[value] Frama_C_show_each_c: {97; 98}
 [value] computing for function strchr_small_sets_no_assertions <- 
                             strchr_small_sets_chars <- main.
-    Called from tests/non-free/strchr.c:475.
-[value] computing for function my_strchr <- strchr_small_sets_no_assertions <- 
-                            strchr_small_sets_chars <- main.
-    Called from tests/non-free/strchr.c:435.
-tests/non-free/strchr.c:49:[value] Call to builtin Frama_C_strchr(({{ "abc" + {0; 1} }},{97; 98}))
-tests/non-free/strchr.c:56:[value] Frama_C_show_each_mystrchr: {-1; 0; 1}
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
-[value] computing for function my_strchr <- strchr_small_sets_no_assertions <- 
-                            strchr_small_sets_chars <- main.
-    Called from tests/non-free/strchr.c:438.
-tests/non-free/strchr.c:49:[value] Call to builtin Frama_C_strchr(({{ "\000bc" + {0; 1} }},{97; 98}))
-tests/non-free/strchr.c:56:[value] Frama_C_show_each_mystrchr: {-1; 1}
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
-[value] computing for function my_strchr <- strchr_small_sets_no_assertions <- 
-                            strchr_small_sets_chars <- main.
-    Called from tests/non-free/strchr.c:440.
-tests/non-free/strchr.c:49:[value] Call to builtin Frama_C_strchr(({{ "" }},{97; 98}))
-tests/non-free/strchr.c:49:[value] builtin Frama_C_strchr: reading indeterminate data
-tests/non-free/strchr.c:56:[value] Frama_C_show_each_mystrchr: {-1}
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
-[value] computing for function my_strchr <- strchr_small_sets_no_assertions <- 
-                            strchr_small_sets_chars <- main.
-    Called from tests/non-free/strchr.c:443.
-tests/non-free/strchr.c:49:[value] Call to builtin Frama_C_strchr(({{ "b\000c" + {0; 2} }},{97; 98}))
-tests/non-free/strchr.c:56:[value] Frama_C_show_each_mystrchr: {-1; 0}
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
+    Called from tests/non-free/strchr.c:493.
+tests/non-free/strchr.c:452:[value] Call to builtin Frama_C_strchr(({{ "abc" + {0; 1} }},{97; 98}))
+tests/non-free/strchr.c:452:[value] Frama_C_show_each_mystrchr: {-1; 0; 1}
+tests/non-free/strchr.c:455:[value] Call to builtin Frama_C_strchr(({{ "\000bc" + {0; 1} }},{97; 98}))
+tests/non-free/strchr.c:455:[value] Frama_C_show_each_mystrchr: {-1; 1}
+tests/non-free/strchr.c:457:[value] Call to builtin Frama_C_strchr(({{ "" }},{97; 98}))
+tests/non-free/strchr.c:457:[value] builtin Frama_C_strchr: reading indeterminate data
+tests/non-free/strchr.c:457:[value] Frama_C_show_each_mystrchr: {-1}
+tests/non-free/strchr.c:460:[value] Call to builtin Frama_C_strchr(({{ "b\000c" + {0; 2} }},{97; 98}))
+tests/non-free/strchr.c:460:[value] Frama_C_show_each_mystrchr: {-1; 0}
+tests/non-free/strchr.c:465:[value] Call to builtin Frama_C_strchr(({{ &t[0] }},{97; 98}))
+tests/non-free/strchr.c:465:[value] Frama_C_show_each_mystrchr: {-1; 0; 1}
 [value] Recording results for strchr_small_sets_no_assertions
 [value] Done for function strchr_small_sets_no_assertions
-tests/non-free/strchr.c:476:[value] Frama_C_show_each_res: {-1; 0; 1}, {-1; 1}, {-1}, {-1; 0}, Bottom
-tests/non-free/strchr.c:478:[value] assertion got status valid.
-tests/non-free/strchr.c:479:[value] assertion got status valid.
-tests/non-free/strchr.c:480:[value] assertion got status valid.
-tests/non-free/strchr.c:481:[value] assertion got status valid.
-tests/non-free/strchr.c:482:[value] warning: assertion got status unknown.
-tests/non-free/strchr.c:485:[value] Frama_C_show_each_c: {98; 99}
+tests/non-free/strchr.c:494:[value] Frama_C_show_each_res: {-1; 0; 1}, {-1; 1}, {-1}, {-1; 0}, {-1; 0; 1}
+tests/non-free/strchr.c:496:[value] assertion got status valid.
+tests/non-free/strchr.c:497:[value] assertion got status valid.
+tests/non-free/strchr.c:498:[value] assertion got status valid.
+tests/non-free/strchr.c:499:[value] assertion got status valid.
+tests/non-free/strchr.c:500:[value] warning: assertion got status unknown.
+tests/non-free/strchr.c:503:[value] Frama_C_show_each_c: {98; 99}
 [value] computing for function strchr_small_sets_no_assertions <- 
                             strchr_small_sets_chars <- main.
-    Called from tests/non-free/strchr.c:486.
-[value] computing for function my_strchr <- strchr_small_sets_no_assertions <- 
-                            strchr_small_sets_chars <- main.
-    Called from tests/non-free/strchr.c:435.
-tests/non-free/strchr.c:49:[value] Call to builtin Frama_C_strchr(({{ "abc" + {0; 1} }},{98; 99}))
-tests/non-free/strchr.c:56:[value] Frama_C_show_each_mystrchr: {-1; 1; 2}
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
-[value] computing for function my_strchr <- strchr_small_sets_no_assertions <- 
-                            strchr_small_sets_chars <- main.
-    Called from tests/non-free/strchr.c:438.
-tests/non-free/strchr.c:49:[value] Call to builtin Frama_C_strchr(({{ "\000bc" + {0; 1} }},{98; 99}))
-tests/non-free/strchr.c:56:[value] Frama_C_show_each_mystrchr: {-1; 1; 2}
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
-[value] computing for function my_strchr <- strchr_small_sets_no_assertions <- 
-                            strchr_small_sets_chars <- main.
-    Called from tests/non-free/strchr.c:440.
-tests/non-free/strchr.c:49:[value] Call to builtin Frama_C_strchr(({{ "" }},{98; 99}))
-tests/non-free/strchr.c:49:[value] builtin Frama_C_strchr: reading indeterminate data
-tests/non-free/strchr.c:56:[value] Frama_C_show_each_mystrchr: {-1}
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
-[value] computing for function my_strchr <- strchr_small_sets_no_assertions <- 
-                            strchr_small_sets_chars <- main.
-    Called from tests/non-free/strchr.c:443.
-tests/non-free/strchr.c:49:[value] Call to builtin Frama_C_strchr(({{ "b\000c" + {0; 2} }},{98; 99}))
-tests/non-free/strchr.c:56:[value] Frama_C_show_each_mystrchr: {-1; 0; 2}
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
+    Called from tests/non-free/strchr.c:504.
+tests/non-free/strchr.c:452:[value] Call to builtin Frama_C_strchr(({{ "abc" + {0; 1} }},{98; 99}))
+tests/non-free/strchr.c:452:[value] Frama_C_show_each_mystrchr: {-1; 1; 2}
+tests/non-free/strchr.c:455:[value] Call to builtin Frama_C_strchr(({{ "\000bc" + {0; 1} }},{98; 99}))
+tests/non-free/strchr.c:455:[value] Frama_C_show_each_mystrchr: {-1; 1; 2}
+tests/non-free/strchr.c:457:[value] Call to builtin Frama_C_strchr(({{ "" }},{98; 99}))
+tests/non-free/strchr.c:457:[value] builtin Frama_C_strchr: reading indeterminate data
+tests/non-free/strchr.c:457:[value] Frama_C_show_each_mystrchr: {-1}
+tests/non-free/strchr.c:460:[value] Call to builtin Frama_C_strchr(({{ "b\000c" + {0; 2} }},{98; 99}))
+tests/non-free/strchr.c:460:[value] Frama_C_show_each_mystrchr: {-1; 0; 2}
+tests/non-free/strchr.c:465:[value] Call to builtin Frama_C_strchr(({{ &t[0] }},{98; 99}))
+tests/non-free/strchr.c:465:[value] Frama_C_show_each_mystrchr: {-1; 0; 1}
 [value] Recording results for strchr_small_sets_no_assertions
 [value] Done for function strchr_small_sets_no_assertions
-tests/non-free/strchr.c:487:[value] Frama_C_show_each_res: {-1; 1; 2}, {-1; 1; 2}, {-1}, {-1; 0; 2}, Bottom
-tests/non-free/strchr.c:488:[value] assertion got status valid.
-tests/non-free/strchr.c:489:[value] warning: assertion 'refined' got status unknown.
-tests/non-free/strchr.c:490:[value] assertion got status valid.
-tests/non-free/strchr.c:491:[value] assertion got status valid.
-tests/non-free/strchr.c:492:[value] assertion got status valid.
-tests/non-free/strchr.c:493:[value] warning: assertion got status unknown.
-tests/non-free/strchr.c:496:[value] Frama_C_show_each_c: {0; 98; 99}
+tests/non-free/strchr.c:505:[value] Frama_C_show_each_res: {-1; 1; 2}, {-1; 1; 2}, {-1}, {-1; 0; 2}, {-1; 0; 1}
+tests/non-free/strchr.c:506:[value] assertion got status valid.
+tests/non-free/strchr.c:507:[value] warning: assertion 'refined' got status unknown.
+tests/non-free/strchr.c:508:[value] assertion got status valid.
+tests/non-free/strchr.c:509:[value] assertion got status valid.
+tests/non-free/strchr.c:510:[value] assertion got status valid.
+tests/non-free/strchr.c:511:[value] warning: assertion got status unknown.
+tests/non-free/strchr.c:514:[value] Frama_C_show_each_c: {0; 98; 99}
 [value] computing for function strchr_small_sets_no_assertions <- 
                             strchr_small_sets_chars <- main.
-    Called from tests/non-free/strchr.c:497.
-[value] computing for function my_strchr <- strchr_small_sets_no_assertions <- 
-                            strchr_small_sets_chars <- main.
-    Called from tests/non-free/strchr.c:435.
-tests/non-free/strchr.c:49:[value] Call to builtin Frama_C_strchr(({{ "abc" + {0; 1} }},{0; 98; 99}))
-tests/non-free/strchr.c:56:[value] Frama_C_show_each_mystrchr: {-1; 1; 2; 3}
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
-[value] computing for function my_strchr <- strchr_small_sets_no_assertions <- 
-                            strchr_small_sets_chars <- main.
-    Called from tests/non-free/strchr.c:438.
-tests/non-free/strchr.c:49:[value] Call to builtin Frama_C_strchr(({{ "\000bc" + {0; 1} }},{0; 98; 99}))
-tests/non-free/strchr.c:56:[value] Frama_C_show_each_mystrchr: {-1; 0; 1; 2; 3}
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
-[value] computing for function my_strchr <- strchr_small_sets_no_assertions <- 
-                            strchr_small_sets_chars <- main.
-    Called from tests/non-free/strchr.c:440.
-tests/non-free/strchr.c:49:[value] Call to builtin Frama_C_strchr(({{ "" }},{0; 98; 99}))
-tests/non-free/strchr.c:56:[value] Frama_C_show_each_mystrchr: {-1; 0}
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
-[value] computing for function my_strchr <- strchr_small_sets_no_assertions <- 
-                            strchr_small_sets_chars <- main.
-    Called from tests/non-free/strchr.c:443.
-tests/non-free/strchr.c:49:[value] Call to builtin Frama_C_strchr(({{ "b\000c" + {0; 2} }},{0; 98; 99}))
-tests/non-free/strchr.c:56:[value] Frama_C_show_each_mystrchr: {-1; 0; 1; 2; 3}
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
+    Called from tests/non-free/strchr.c:515.
+tests/non-free/strchr.c:452:[value] Call to builtin Frama_C_strchr(({{ "abc" + {0; 1} }},{0; 98; 99}))
+tests/non-free/strchr.c:452:[value] Frama_C_show_each_mystrchr: {-1; 1; 2; 3}
+tests/non-free/strchr.c:455:[value] Call to builtin Frama_C_strchr(({{ "\000bc" + {0; 1} }},{0; 98; 99}))
+tests/non-free/strchr.c:455:[value] Frama_C_show_each_mystrchr: {-1; 0; 1; 2; 3}
+tests/non-free/strchr.c:457:[value] Call to builtin Frama_C_strchr(({{ "" }},{0; 98; 99}))
+tests/non-free/strchr.c:457:[value] Frama_C_show_each_mystrchr: {-1; 0}
+tests/non-free/strchr.c:460:[value] Call to builtin Frama_C_strchr(({{ "b\000c" + {0; 2} }},{0; 98; 99}))
+tests/non-free/strchr.c:460:[value] Frama_C_show_each_mystrchr: {-1; 0; 1; 2; 3}
+tests/non-free/strchr.c:465:[value] Call to builtin Frama_C_strchr(({{ &t[0] }},{0; 98; 99}))
+tests/non-free/strchr.c:465:[value] Frama_C_show_each_mystrchr: {-1; 0; 1; 2; 3}
 [value] Recording results for strchr_small_sets_no_assertions
 [value] Done for function strchr_small_sets_no_assertions
-tests/non-free/strchr.c:498:[value] Frama_C_show_each_res:
-    {-1; 1; 2; 3}, {-1; 0; 1; 2; 3}, {-1; 0}, {-1; 0; 1; 2; 3}, Bottom
-tests/non-free/strchr.c:499:[value] assertion got status valid.
-tests/non-free/strchr.c:500:[value] warning: assertion 'refined' got status unknown.
-tests/non-free/strchr.c:501:[value] assertion got status valid.
-tests/non-free/strchr.c:502:[value] assertion got status valid.
-tests/non-free/strchr.c:503:[value] assertion got status valid.
-tests/non-free/strchr.c:504:[value] warning: assertion got status unknown.
+tests/non-free/strchr.c:516:[value] Frama_C_show_each_res:
+    {-1; 1; 2; 3}, {-1; 0; 1; 2; 3}, {-1; 0}, {-1; 0; 1; 2; 3}, {-1; 0; 1; 2; 3}
+tests/non-free/strchr.c:517:[value] assertion got status valid.
+tests/non-free/strchr.c:518:[value] warning: assertion 'refined' got status unknown.
+tests/non-free/strchr.c:519:[value] assertion got status valid.
+tests/non-free/strchr.c:520:[value] assertion got status valid.
+tests/non-free/strchr.c:521:[value] assertion got status valid.
+tests/non-free/strchr.c:522:[value] warning: assertion got status unknown.
 [value] Recording results for strchr_small_sets_chars
 [value] Done for function strchr_small_sets_chars
 [value] computing for function strchr_unbounded <- main.
-    Called from tests/non-free/strchr.c:552.
-[value] computing for function my_strchr <- strchr_unbounded <- main.
-    Called from tests/non-free/strchr.c:511.
-tests/non-free/strchr.c:49:[value] Call to builtin Frama_C_strchr(({{ "abcd" }},[-128..127]))
-tests/non-free/strchr.c:56:[value] Frama_C_show_each_mystrchr: {-1; 0; 1; 2; 3; 4}
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
-tests/non-free/strchr.c:512:[value] assertion got status valid.
-[value] computing for function my_strchr <- strchr_unbounded <- main.
-    Called from tests/non-free/strchr.c:516.
-tests/non-free/strchr.c:49:[value] Call to builtin Frama_C_strchr(({{ &t[0] ; "ABCDEFGHIJKLMNOPQRSTUVWXYZ" }},
+    Called from tests/non-free/strchr.c:570.
+tests/non-free/strchr.c:529:[value] function strchr: precondition 'valid_string_src' got status valid.
+tests/non-free/strchr.c:529:[value] Call to builtin Frama_C_strchr(({{ "abcd" }},[-128..127]))
+tests/non-free/strchr.c:529:[value] Frama_C_show_each_mystrchr: {-1; 0; 1; 2; 3; 4}
+tests/non-free/strchr.c:530:[value] assertion got status valid.
+tests/non-free/strchr.c:534:[value] warning: function strchr: precondition 'valid_string_src' got status unknown.
+tests/non-free/strchr.c:534:[value] Call to builtin Frama_C_strchr(({{ &t[0] ; "ABCDEFGHIJKLMNOPQRSTUVWXYZ" }},
                                     [-128..127]))
-tests/non-free/strchr.c:49:[value] builtin Frama_C_strchr: reading indeterminate data
-tests/non-free/strchr.c:56:[value] Frama_C_show_each_mystrchr: [-1..26]
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
-tests/non-free/strchr.c:517:[value] assertion got status valid.
+tests/non-free/strchr.c:534:[value] builtin Frama_C_strchr: reading indeterminate data
+tests/non-free/strchr.c:534:[value] warning: pointer subtraction. assert \base_addr(_ss_0) ≡ \base_addr(s);
+tests/non-free/strchr.c:534:[value] Frama_C_show_each_mystrchr: [-1..26]
+tests/non-free/strchr.c:535:[value] assertion got status valid.
 [value] computing for function init_array_nondet <- strchr_unbounded <- main.
-    Called from tests/non-free/strchr.c:518.
-tests/non-free/strchr.c:180:[value] Call to builtin memset(({{ (void *)&t }},{0; 1},{30}))
+    Called from tests/non-free/strchr.c:536.
+tests/non-free/strchr.c:199:[value] Call to builtin memset(({{ (void *)&t }},{0; 1},{30}))
 [value] Recording results for init_array_nondet
 [value] Done for function init_array_nondet
-[value] computing for function my_strchr <- strchr_unbounded <- main.
-    Called from tests/non-free/strchr.c:519.
-tests/non-free/strchr.c:49:[value] Call to builtin Frama_C_strchr(({{ &t[0] ; "ABCDEFGHIJKLMNOPQRSTUVWXYZ" }},
+tests/non-free/strchr.c:537:[value] warning: function strchr: precondition 'valid_string_src' got status unknown.
+tests/non-free/strchr.c:537:[value] Call to builtin Frama_C_strchr(({{ &t[0] ; "ABCDEFGHIJKLMNOPQRSTUVWXYZ" }},
                                     [-128..127]))
-tests/non-free/strchr.c:49:[value] builtin Frama_C_strchr: possibly reading indeterminate data
-tests/non-free/strchr.c:56:[value] Frama_C_show_each_mystrchr: [-1..29]
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
-tests/non-free/strchr.c:520:[value] assertion got status valid.
-[value] computing for function my_strchr <- strchr_unbounded <- main.
-    Called from tests/non-free/strchr.c:521.
-tests/non-free/strchr.c:49:[value] Call to builtin Frama_C_strchr(({{ &t + [0..4294967295] ;
+tests/non-free/strchr.c:537:[value] builtin Frama_C_strchr: possibly reading indeterminate data
+tests/non-free/strchr.c:537:[value] warning: pointer subtraction. assert \base_addr(_ss_1) ≡ \base_addr(s);
+tests/non-free/strchr.c:537:[value] Frama_C_show_each_mystrchr: [-1..29]
+tests/non-free/strchr.c:538:[value] assertion got status valid.
+tests/non-free/strchr.c:539:[value] warning: function strchr: precondition 'valid_string_src' got status unknown.
+tests/non-free/strchr.c:539:[value] Call to builtin Frama_C_strchr(({{ &t + [-2147483648..2147483647] ;
                                        "ABCDEFGHIJKLMNOPQRSTUVWXYZ" +
-                                       [0..4294967295] }},[-128..127]))
-tests/non-free/strchr.c:49:[value] builtin Frama_C_strchr:
+                                       [-2147483648..2147483647] }},[-128..127]))
+tests/non-free/strchr.c:539:[value] builtin Frama_C_strchr:
     range too large and/or imprecise, approximating
     possible uninitialized values
     possible escaping addresses
     possibly reading indeterminate data
-tests/non-free/strchr.c:56:[value] Frama_C_show_each_mystrchr: [-1..29]
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
-tests/non-free/strchr.c:522:[value] assertion got status valid.
+tests/non-free/strchr.c:539:[value] warning: pointer subtraction. assert \base_addr(_ss_2) ≡ \base_addr(s);
+tests/non-free/strchr.c:539:[value] Frama_C_show_each_mystrchr: [-1..29]
+tests/non-free/strchr.c:540:[value] assertion got status valid.
 [value] Recording results for strchr_unbounded
 [value] Done for function strchr_unbounded
 [value] computing for function strchr_invalid <- main.
-    Called from tests/non-free/strchr.c:553.
-[value] computing for function my_strchr <- strchr_invalid <- main.
-    Called from tests/non-free/strchr.c:528.
-tests/non-free/strchr.c:49:[value] Call to builtin Frama_C_strchr(({{ garbled mix of &{s; "hello"}
+    Called from tests/non-free/strchr.c:571.
+tests/non-free/strchr.c:546:[value] warning: function strchr: precondition 'valid_string_src' got status unknown.
+tests/non-free/strchr.c:546:[value] Call to builtin Frama_C_strchr(({{ garbled mix of &{s; "hello"}
                                     (origin: Arithmetic
-                                    {tests/non-free/strchr.c:49}) }},{1}))
-tests/non-free/strchr.c:49:[value] builtin Frama_C_strchr:
+                                    {tests/non-free/strchr.c:546}) }},{1}))
+tests/non-free/strchr.c:546:[value] builtin Frama_C_strchr:
     string argument is too imprecise, cannot compute a useful result.
-tests/non-free/strchr.c:56:[value] Frama_C_show_each_mystrchr: {-1}
-[value] Recording results for my_strchr
-[value] Done for function my_strchr
+tests/non-free/strchr.c:546:[value] warning: pointer subtraction. assert \base_addr(_ss) ≡ \base_addr(s);
+tests/non-free/strchr.c:546:[value] Frama_C_show_each_mystrchr: {-1}
 [value] Recording results for strchr_invalid
 [value] Done for function strchr_invalid
 [value] computing for function strchr_garbled_mix_in_char <- main.
-    Called from tests/non-free/strchr.c:554.
-tests/non-free/strchr.c:533:[value] Assigning imprecise value to garbled.
-    The imprecision originates from Arithmetic {tests/non-free/strchr.c:533}
-tests/non-free/strchr.c:534:[value] warning: function strchr: precondition 'valid_string_src' got status unknown.
-tests/non-free/strchr.c:534:[value] Call to builtin Frama_C_strchr(({{ garbled mix of &{x}
+    Called from tests/non-free/strchr.c:572.
+tests/non-free/strchr.c:551:[value] Assigning imprecise value to garbled.
+    The imprecision originates from Arithmetic {tests/non-free/strchr.c:551}
+tests/non-free/strchr.c:552:[value] warning: function strchr: precondition 'valid_string_src' got status unknown.
+tests/non-free/strchr.c:552:[value] Call to builtin Frama_C_strchr(({{ garbled mix of &{x}
                                     (origin: Arithmetic
-                                    {tests/non-free/strchr.c:533}) }},
+                                    {tests/non-free/strchr.c:551}) }},
                                     {{ garbled mix of &{x}
                                     (origin: Arithmetic
-                                    {tests/non-free/strchr.c:533}) }}))
-tests/non-free/strchr.c:534:[value] builtin Frama_C_strchr:
+                                    {tests/non-free/strchr.c:551}) }}))
+tests/non-free/strchr.c:552:[value] builtin Frama_C_strchr:
     assert(no address in second argument of Frama_C_strchr)
 [value] Recording results for strchr_garbled_mix_in_char
 [value] Done for function strchr_garbled_mix_in_char
 [value] Recording results for main
 [value] done for function main
-[scope:rm_asserts] removing 3 assertion(s)
+tests/non-free/strchr.c:546:[value] assertion 'Value,differing_blocks' got final status invalid.
 [value] ====== VALUES COMPUTED ======
 [value:final-states] Values at end of function init_array_nondet:
   from ∈ {-1}
@@ -965,31 +694,6 @@ tests/non-free/strchr.c:534:[value] builtin Frama_C_strchr:
   r[0..200] ∈ {0; 16843009; 270729319} or UNINITIALIZED
   t[0..999999] ∈ {0; 16843009; 270729319} or UNINITIALIZED
   t[0..29] ∈ {0; 1}
-[value:final-states] Values at end of function my_strchr:
-  ss ∈
-    {{ NULL ; &t{[0], [1]} ; &empty_or_non_terminated[0] ;
-       &empty_or_uninitialized[0] ; &s[1] ; &t[3] ; &s + {2} ; &a + [0..99] ;
-       &a + [0..79] ; &s[0] ; &maybe_init[1] ; &u + [0..799] ;
-       &r + [0..803] ; &t + [0..3999999] ;
-       &s{[10], [14], [15], [16], [17], [18], [19]} ; &t + [0..29] ; 
-       "" ; "a" + {1} ; "aa" + {2} ; "aaa" + {3} ; "aaaa" + {4} ;
-       "aaaaa" + {5} ; "aaaaaa" + {6} ; "aaaaaaaaa" + {9} ;
-       "aaaaaaaaaa" + {10} ; "aaaaaaaaaaa" + {11} ; "aaaaaaaaaaaa" + {12} ;
-       "aaaaaaaaaaaaa" + {13} ; "abc" + {3} ; "\000bc" + {0; 3} ; "" ;
-       "b\000c" + {1; 3} ; "Hello World\n" + {12} ;
-       "abc\000\000\000abc" + {3; 4; 5; 9} ; "Bonjour Monde\n" + {14} ;
-       "mno\000pqr" + {3; 7} ; "MNOP\000QRS" + {4; 8} ;
-       "abc" + {0; 1; 2; 3} ; "\000bc" + {0; 1; 2; 3} ; "" ;
-       "b\000c" + {0; 1; 2; 3} ; "abcd" + {0; 1; 2; 3; 4} ;
-       "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + [0..26] }}
-  res ∈ [-1..3999999]
-[value:final-states] Values at end of function my_strchr2:
-  p ∈
-   {{ &x + {0; 3} ; "abc" + {0; 1} ; "ABCD" + {0; 1} ; "efg" + {1; 2} ;
-      "EFGH" + {1; 2} }}
-  s ∈
-   {{ (char *)&x ; "abc" + {3} ; "ABCD" + {4} ; "efg" + {3} ; "EFGH" + {4} }}
-  res ∈ {0; 3; 4}
 [value:final-states] Values at end of function strchr_big_array:
   c ∈ {0}
   u[0..199] ∈ {0; 16843009; 270729319}
@@ -1024,7 +728,7 @@ tests/non-free/strchr.c:534:[value] builtin Frama_C_strchr:
 [value:final-states] Values at end of function strchr_garbled_mix_in_char:
   garbled ∈
          {{ garbled mix of &{x}
-          (origin: Arithmetic {tests/non-free/strchr.c:533}) }}
+          (origin: Arithmetic {tests/non-free/strchr.c:551}) }}
 [value:final-states] Values at end of function strchr_initialization:
   c ∈ {0}
   empty_or_uninitialized[0] ∈ {0} or UNINITIALIZED
@@ -1038,6 +742,7 @@ tests/non-free/strchr.c:534:[value] builtin Frama_C_strchr:
   z3 ∈ {3}
 [value:final-states] Values at end of function strchr_invalid:
   s ∈ {{ "hello" }}
+  unused ∈ {-1}
 [value:final-states] Values at end of function strchr_large:
   Frama_C_entropy_source ∈ [--..--]
   c ∈ {0}
@@ -1071,12 +776,6 @@ tests/non-free/strchr.c:534:[value] builtin Frama_C_strchr:
   loc_char_array[0..2] ∈ UNINITIALIZED
                 [3] ∈ {0}
                 [4] ∈ UNINITIALIZED
-  sz1 ∈ {12; 14}
-  sz2 ∈ {0}
-  sz4a ∈ {3}
-  sz4b ∈ {4}
-  sz4c ∈ {5}
-  sz4d ∈ {9}
   x ∈ {-1412567296}
   str ∈ {{ (char *)&x }}
   unterminated_string[0] ∈ {117}
@@ -1091,17 +790,22 @@ tests/non-free/strchr.c:534:[value] builtin Frama_C_strchr:
                      [9] ∈ {116}
                      [10] ∈ {101}
                      [11] ∈ {100}
+  sz1 ∈ {12; 14}
+  sz2 ∈ {0}
+  sz4a ∈ {3}
+  sz4b ∈ {4}
+  sz4c ∈ {5}
+  sz4d ∈ {9}
   static_str ∈ {{ "Hello World\n" }}
   zero_str ∈ {{ "abc\000\000\000abc" }}
 [value:final-states] Values at end of function strchr_misc2:
   c ∈ {0}
+  s1 ∈ {{ "mno\000pqr" ; "MNOP\000QRS" }}
   sz5 ∈ {3; 4}
   sz6 ∈ {3; 4}
-  sz7 ∈ {3; 4; 7; 8} or UNINITIALIZED
-  sz8 ∈ {1}
-  s1 ∈ {{ "mno\000pqr" ; "MNOP\000QRS" }}
   maybe_init[0] ∈ {65} or UNINITIALIZED
             [1] ∈ {0}
+  sz8 ∈ {1}
 [value:final-states] Values at end of function strchr_misc_array:
   Frama_C_entropy_source ∈ [--..--]
   c ∈ {0}
@@ -1134,11 +838,11 @@ tests/non-free/strchr.c:534:[value] builtin Frama_C_strchr:
   s ∈ {{ "b\000c" }}
   o ∈ {0; 2}
   t[0..1] ∈ {0; 1; 97; 98; 99}
-   [2..3] ∈ {1}
+   [2] ∈ {1}
+   [3] ∈ {0}
   res[0..1] ∈ {-1; 0; 1; 2; 3}
      [2] ∈ {-1; 0}
-     [3] ∈ {-1; 0; 1; 2; 3}
-     [4] ∈ UNINITIALIZED
+     [3..4] ∈ {-1; 0; 1; 2; 3}
   __retres ∈ {0}
 [value:final-states] Values at end of function strchr_small_sets_chars:
   c ∈ {0; 98; 99}
@@ -1146,7 +850,7 @@ tests/non-free/strchr.c:534:[value] builtin Frama_C_strchr:
      [1] ∈ {-1; 0; 1; 2; 3}
      [2] ∈ {-1; 0}
      [3] ∈ {-1; 0; 1; 2; 3}
-     [4] ∈ UNINITIALIZED
+     [4] ∈ {-1; 0; 1; 3}
 [value:final-states] Values at end of function strchr_unbounded:
   c ∈ [--..--]
   s ∈ {{ &t[0] ; "ABCDEFGHIJKLMNOPQRSTUVWXYZ" }}
@@ -1174,13 +878,9 @@ tests/non-free/strchr.c:534:[value] builtin Frama_C_strchr:
 [from] Computing for function memset <-init_array_nondet
 [from] Done for function memset
 [from] Done for function init_array_nondet
-[from] Computing for function my_strchr
-[from] Computing for function strchr <-my_strchr
-[from] Done for function strchr
-[from] Done for function my_strchr
-[from] Computing for function my_strchr2
-[from] Done for function my_strchr2
 [from] Computing for function strchr_big_array
+[from] Computing for function strchr <-strchr_big_array
+[from] Done for function strchr
 [from] Done for function strchr_big_array
 [from] Computing for function strchr_bitfields
 [from] Done for function strchr_bitfields
@@ -1246,46 +946,9 @@ tests/non-free/strchr.c:534:[value] builtin Frama_C_strchr:
                uninitialized[0]; s[0..1]; t[0..3]; s; s; a[0..99]; a[0..99];
                s[0..3]; loc_char_array[0..4]; x; unterminated_string[0..11];
                maybe_init[0..1]; u[0..199]; r[0..200]; t[0..999999];
-               s[0..19]; t[0..29]; s; x; ""[bits 0 to 7]; "a"[bits 0 to 15];
-               "aa"[bits 0 to 23]; "aaa"; "aaaa"[bits 0 to 39];
-               "aaaaa"[bits 0 to 47]; "aaaaaa"[bits 0 to 55];
-               "aaaaaaaaa"[bits 0 to 79]; "aaaaaaaaaa"[bits 0 to 87];
-               "aaaaaaaaaaa"[bits 0 to 95]; "aaaaaaaaaaaa"[bits 0 to 103];
-               "aaaaaaaaaaaaa"[bits 0 to 111]; "abc"; "\000bc";
-               ""[bits 0 to 7]; "b\000c"; "Hello World\n"[bits 0 to 103];
-               "abc\000\000\000abc"[bits 0 to 79];
-               "Bonjour Monde\n"[bits 0 to 119]; "abc"; "ABCD"[bits 0 to 39];
-               "efg"; "EFGH"[bits 0 to 39]; "mno\000pqr"[bits 0 to 63];
-               "MNOP\000QRS"[bits 0 to 71]; "abc"; "\000bc"; ""[bits 0 to 7];
-               "b\000c"; "abcd"[bits 0 to 39];
-               "ABCDEFGHIJKLMNOPQRSTUVWXYZ"[bits 0 to 215];
-               "hello"[bits 0 to 47]
-[from] Function my_strchr:
-  \result FROM s; offs; c; t[0..3]; empty_or_non_terminated[0];
-               non_terminated[0]; non_terminated2[0..3];
-               empty_or_uninitialized[0]; uninitialized[0]; s[0..1]; 
-               t[0..3]; s; a[0..99]; a[0..99]; s[0..3]; loc_char_array[0..4];
-               x; unterminated_string[0..11]; maybe_init[0..1]; u[0..199];
-               r[0..200]; t[0..999999]; s[0..19]; t[0..29]; s;
-               ""[bits 0 to 7]; "a"[bits 0 to 15]; "aa"[bits 0 to 23]; 
-               "aaa"; "aaaa"[bits 0 to 39]; "aaaaa"[bits 0 to 47];
-               "aaaaaa"[bits 0 to 55]; "aaaaaaaaa"[bits 0 to 79];
-               "aaaaaaaaaa"[bits 0 to 87]; "aaaaaaaaaaa"[bits 0 to 95];
-               "aaaaaaaaaaaa"[bits 0 to 103]; "aaaaaaaaaaaaa"[bits 0 to 111];
-               "abc"; "\000bc"; ""[bits 0 to 7]; "b\000c";
-               "Hello World\n"[bits 0 to 103];
-               "abc\000\000\000abc"[bits 0 to 79];
-               "Bonjour Monde\n"[bits 0 to 119]; "abc"; "ABCD"[bits 0 to 39];
-               "efg"; "EFGH"[bits 0 to 39]; "mno\000pqr"[bits 0 to 63];
-               "MNOP\000QRS"[bits 0 to 71]; "abc"; "\000bc"; ""[bits 0 to 7];
-               "b\000c"; "abcd"[bits 0 to 39];
-               "ABCDEFGHIJKLMNOPQRSTUVWXYZ"[bits 0 to 215];
-               "hello"[bits 0 to 47]
-[from] Function my_strchr2:
-  \result FROM base; offs1; offs2; c; loc_char_array[0..4]; x;
-               unterminated_string[0..11]; maybe_init[0..1]; nondet;
-               ""[bits 0 to 7]; "a"[bits 0 to 15]; "aa"[bits 0 to 23]; 
-               "aaa"; "aaaa"[bits 0 to 39]; "aaaaa"[bits 0 to 47];
+               s[0..19]; t[0..3]; t[0..29]; s; x; ""[bits 0 to 7];
+               "a"[bits 0 to 15]; "aa"[bits 0 to 23]; "aaa";
+               "aaaa"[bits 0 to 39]; "aaaaa"[bits 0 to 47];
                "aaaaaa"[bits 0 to 55]; "aaaaaaaaa"[bits 0 to 79];
                "aaaaaaaaaa"[bits 0 to 87]; "aaaaaaaaaaa"[bits 0 to 95];
                "aaaaaaaaaaaa"[bits 0 to 103]; "aaaaaaaaaaaaa"[bits 0 to 111];
@@ -1328,7 +991,7 @@ tests/non-free/strchr.c:534:[value] builtin Frama_C_strchr:
 [from] Function strchr_small_sets:
   NO EFFECTS
 [from] Function strchr_small_sets_no_assertions:
-  res{[0..1]; [3]}
+  res{[0..1]; [3..4]}
      FROM c; res; nondet; ""[bits 0 to 7]; "a"[bits 0 to 15];
           "aa"[bits 0 to 23]; "aaa"; "aaaa"[bits 0 to 39];
           "aaaaa"[bits 0 to 47]; "aaaaaa"[bits 0 to 55];
@@ -1373,248 +1036,100 @@ tests/non-free/strchr.c:534:[value] builtin Frama_C_strchr:
       r[0..200]; t[0..999999]; t[0..29]
 [inout] Inputs for function init_array_nondet:
       nondet
-[inout] Out (internal) for function my_strchr:
-      ss; res
-[inout] Inputs for function my_strchr:
-      t[0..3]; empty_or_non_terminated[0]; non_terminated[0];
-      non_terminated2[0..3]; empty_or_uninitialized[0]; uninitialized[0];
-      s[0..1]; t[0..3]; s; a[0..99]; a[0..99]; s[0..3]; loc_char_array[0..4];
-      unterminated_string[0..11]; maybe_init[0..1]; u[0..199]; r[0..200];
-      t[0..999999]; s[0..19]; t[0..29]; s; ""[bits 0 to 7]; "a"[bits 0 to 15];
-      "aa"[bits 0 to 23]; "aaa"; "aaaa"[bits 0 to 39]; "aaaaa"[bits 0 to 47];
-      "aaaaaa"[bits 0 to 55]; "aaaaaaaaa"[bits 0 to 79];
-      "aaaaaaaaaa"[bits 0 to 87]; "aaaaaaaaaaa"[bits 0 to 95];
-      "aaaaaaaaaaaa"[bits 0 to 103]; "aaaaaaaaaaaaa"[bits 0 to 111]; "abc";
-      "\000bc"; ""[bits 0 to 7]; "b\000c"; "Hello World\n"[bits 0 to 103];
-      "abc\000\000\000abc"[bits 0 to 79]; "Bonjour Monde\n"[bits 0 to 119];
-      "mno\000pqr"[bits 0 to 63]; "MNOP\000QRS"[bits 0 to 71]; "abc"; "\000bc";
-      ""[bits 0 to 7]; "b\000c"; "abcd"[bits 0 to 39];
-      "ABCDEFGHIJKLMNOPQRSTUVWXYZ"[bits 0 to 215]; "hello"[bits 0 to 47]
-[inout] Out (internal) for function my_strchr2:
-      p; tmp; s; res
-[inout] Inputs for function my_strchr2:
-      x; nondet; "abc"; "ABCD"[bits 0 to 39]; "efg"[bits 8 to 31];
-      "EFGH"[bits 8 to 39]
 [inout] Out (internal) for function strchr_big_array:
-      c; u[0..199]; r[0..200]; t[0..999999]; p; len_u; len_r; len_t
+      c; u[0..199]; r[0..200]; t[0..999999]; p; len_u; len_r; len_t; _ss; 
+      _res; _ss_0; _res_0; _ss_1; _res_1; _ss_2; _res_2; _ss_3; _res_3; _ss_4;
+      _res_4; _ss_5; _res_5; _ss_6; _res_6; _ss_7; _res_7; _ss_8; _res_8; 
+      _ss_9; _res_9; _ss_10; _res_10
 [inout] Inputs for function strchr_big_array:
-      nondet; ""[bits 0 to 7]; "a"[bits 0 to 15]; "aa"[bits 0 to 23]; "aaa";
-      "aaaa"[bits 0 to 39]; "aaaaa"[bits 0 to 47]; "aaaaaa"[bits 0 to 55];
-      "aaaaaaaaa"[bits 0 to 79]; "aaaaaaaaaa"[bits 0 to 87];
-      "aaaaaaaaaaa"[bits 0 to 95]; "aaaaaaaaaaaa"[bits 0 to 103];
-      "aaaaaaaaaaaaa"[bits 0 to 111]; "abc"; "\000bc"; ""[bits 0 to 7]; "b\000c";
-      "Hello World\n"[bits 0 to 103]; "abc\000\000\000abc"[bits 0 to 79];
-      "Bonjour Monde\n"[bits 0 to 119]; "mno\000pqr"[bits 0 to 63];
-      "MNOP\000QRS"[bits 0 to 71]; "abc"; "\000bc"; ""[bits 0 to 7]; "b\000c";
-      "abcd"[bits 0 to 39]; "ABCDEFGHIJKLMNOPQRSTUVWXYZ"[bits 0 to 215];
-      "hello"[bits 0 to 47]
+      nondet
 [inout] Out (internal) for function strchr_bitfields:
       c; s{{.a; .b}; .c}; p
 [inout] Inputs for function strchr_bitfields:
       nondet
 [inout] Out (internal) for function strchr_bitfields2:
-      c; s{.a; .b; .c}; p; z1
+      c; s{.a; .b; .c}; p; z1; _ss; _res
 [inout] Inputs for function strchr_bitfields2:
-      ""[bits 0 to 7]; "a"[bits 0 to 15]; "aa"[bits 0 to 23]; "aaa";
-      "aaaa"[bits 0 to 39]; "aaaaa"[bits 0 to 47]; "aaaaaa"[bits 0 to 55];
-      "aaaaaaaaa"[bits 0 to 79]; "aaaaaaaaaa"[bits 0 to 87];
-      "aaaaaaaaaaa"[bits 0 to 95]; "aaaaaaaaaaaa"[bits 0 to 103];
-      "aaaaaaaaaaaaa"[bits 0 to 111]; "abc"; "\000bc"; ""[bits 0 to 7]; "b\000c";
-      "Hello World\n"[bits 0 to 103]; "abc\000\000\000abc"[bits 0 to 79];
-      "Bonjour Monde\n"[bits 0 to 119]; "mno\000pqr"[bits 0 to 63];
-      "MNOP\000QRS"[bits 0 to 71]; "abc"; "\000bc"; ""[bits 0 to 7]; "b\000c";
-      "abcd"[bits 0 to 39]; "ABCDEFGHIJKLMNOPQRSTUVWXYZ"[bits 0 to 215];
-      "hello"[bits 0 to 47]
+      \nothing
 [inout] Out (internal) for function strchr_escaping:
-      c; s[0..3]; z1; z2
+      c; s[0..3]; z1; _ss; _res; z2; _ss_0; _res_0
 [inout] Inputs for function strchr_escaping:
-      nondet; ""[bits 0 to 7]; "a"[bits 0 to 15]; "aa"[bits 0 to 23]; "aaa";
-      "aaaa"[bits 0 to 39]; "aaaaa"[bits 0 to 47]; "aaaaaa"[bits 0 to 55];
-      "aaaaaaaaa"[bits 0 to 79]; "aaaaaaaaaa"[bits 0 to 87];
-      "aaaaaaaaaaa"[bits 0 to 95]; "aaaaaaaaaaaa"[bits 0 to 103];
-      "aaaaaaaaaaaaa"[bits 0 to 111]; "abc"; "\000bc"; ""[bits 0 to 7]; "b\000c";
-      "Hello World\n"[bits 0 to 103]; "abc\000\000\000abc"[bits 0 to 79];
-      "Bonjour Monde\n"[bits 0 to 119]; "mno\000pqr"[bits 0 to 63];
-      "MNOP\000QRS"[bits 0 to 71]; "abc"; "\000bc"; ""[bits 0 to 7]; "b\000c";
-      "abcd"[bits 0 to 39]; "ABCDEFGHIJKLMNOPQRSTUVWXYZ"[bits 0 to 215];
-      "hello"[bits 0 to 47]
+      nondet
 [inout] Out (internal) for function strchr_garbled_mix_in_char:
       garbled
 [inout] Inputs for function strchr_garbled_mix_in_char:
       \nothing
 [inout] Out (internal) for function strchr_initialization:
-      c; empty_or_uninitialized[0]; z1; s[0..1]; z2; t[0..3]; z3
+      c; empty_or_uninitialized[0]; z1; _ss; _res; s[0..1]; z2; _ss_0; _res_0;
+      t[0..3]; z3; _ss_1; _res_1
 [inout] Inputs for function strchr_initialization:
-      nondet; ""[bits 0 to 7]; "a"[bits 0 to 15]; "aa"[bits 0 to 23]; "aaa";
-      "aaaa"[bits 0 to 39]; "aaaaa"[bits 0 to 47]; "aaaaaa"[bits 0 to 55];
-      "aaaaaaaaa"[bits 0 to 79]; "aaaaaaaaaa"[bits 0 to 87];
-      "aaaaaaaaaaa"[bits 0 to 95]; "aaaaaaaaaaaa"[bits 0 to 103];
-      "aaaaaaaaaaaaa"[bits 0 to 111]; "abc"; "\000bc"; ""[bits 0 to 7]; "b\000c";
-      "Hello World\n"[bits 0 to 103]; "abc\000\000\000abc"[bits 0 to 79];
-      "Bonjour Monde\n"[bits 0 to 119]; "mno\000pqr"[bits 0 to 63];
-      "MNOP\000QRS"[bits 0 to 71]; "abc"; "\000bc"; ""[bits 0 to 7]; "b\000c";
-      "abcd"[bits 0 to 39]; "ABCDEFGHIJKLMNOPQRSTUVWXYZ"[bits 0 to 215];
-      "hello"[bits 0 to 47]
+      nondet
 [inout] Out (internal) for function strchr_invalid:
-      s
+      s; unused; _ss; _res
 [inout] Inputs for function strchr_invalid:
-      ""[bits 0 to 7]; "a"[bits 0 to 15]; "aa"[bits 0 to 23]; "aaa";
-      "aaaa"[bits 0 to 39]; "aaaaa"[bits 0 to 47]; "aaaaaa"[bits 0 to 55];
-      "aaaaaaaaa"[bits 0 to 79]; "aaaaaaaaaa"[bits 0 to 87];
-      "aaaaaaaaaaa"[bits 0 to 95]; "aaaaaaaaaaaa"[bits 0 to 103];
-      "aaaaaaaaaaaaa"[bits 0 to 111]; "abc"; "\000bc"; ""[bits 0 to 7]; "b\000c";
-      "Hello World\n"[bits 0 to 103]; "abc\000\000\000abc"[bits 0 to 79];
-      "Bonjour Monde\n"[bits 0 to 119]; "mno\000pqr"[bits 0 to 63];
-      "MNOP\000QRS"[bits 0 to 71]; "abc"; "\000bc"; ""[bits 0 to 7]; "b\000c";
-      "abcd"[bits 0 to 39]; "ABCDEFGHIJKLMNOPQRSTUVWXYZ"[bits 0 to 215];
       "hello"[bits 0 to 47]
 [inout] Out (internal) for function strchr_large:
-      Frama_C_entropy_source; c; a[0..99]; offset; z1; z2; z3; z4; z5
+      Frama_C_entropy_source; c; a[0..99]; offset; z1; _ss; _res; z2; _ss_0;
+      _res_0; z3; _ss_1; _res_1; z4; _ss_2; _res_2; z5; _ss_3; _res_3
 [inout] Inputs for function strchr_large:
-      Frama_C_entropy_source; nondet; ""[bits 0 to 7]; "a"[bits 0 to 15];
-      "aa"[bits 0 to 23]; "aaa"; "aaaa"[bits 0 to 39]; "aaaaa"[bits 0 to 47];
-      "aaaaaa"[bits 0 to 55]; "aaaaaaaaa"[bits 0 to 79];
-      "aaaaaaaaaa"[bits 0 to 87]; "aaaaaaaaaaa"[bits 0 to 95];
-      "aaaaaaaaaaaa"[bits 0 to 103]; "aaaaaaaaaaaaa"[bits 0 to 111]; "abc";
-      "\000bc"; ""[bits 0 to 7]; "b\000c"; "Hello World\n"[bits 0 to 103];
-      "abc\000\000\000abc"[bits 0 to 79]; "Bonjour Monde\n"[bits 0 to 119];
-      "mno\000pqr"[bits 0 to 63]; "MNOP\000QRS"[bits 0 to 71]; "abc"; "\000bc";
-      ""[bits 0 to 7]; "b\000c"; "abcd"[bits 0 to 39];
-      "ABCDEFGHIJKLMNOPQRSTUVWXYZ"[bits 0 to 215]; "hello"[bits 0 to 47]
+      Frama_C_entropy_source; nondet
 [inout] Out (internal) for function strchr_large_uninit:
-      Frama_C_entropy_source; c; a{[0..39]; [50..94]; [98]}; offset; z1; z2; z3
+      Frama_C_entropy_source; c; a{[0..39]; [50..94]; [98]}; offset; z1; 
+      _ss; _res; z2; _ss_0; _res_0; z3; _ss_1; _res_1
 [inout] Inputs for function strchr_large_uninit:
-      Frama_C_entropy_source; nondet; ""[bits 0 to 7]; "a"[bits 0 to 15];
-      "aa"[bits 0 to 23]; "aaa"; "aaaa"[bits 0 to 39]; "aaaaa"[bits 0 to 47];
-      "aaaaaa"[bits 0 to 55]; "aaaaaaaaa"[bits 0 to 79];
-      "aaaaaaaaaa"[bits 0 to 87]; "aaaaaaaaaaa"[bits 0 to 95];
-      "aaaaaaaaaaaa"[bits 0 to 103]; "aaaaaaaaaaaaa"[bits 0 to 111]; "abc";
-      "\000bc"; ""[bits 0 to 7]; "b\000c"; "Hello World\n"[bits 0 to 103];
-      "abc\000\000\000abc"[bits 0 to 79]; "Bonjour Monde\n"[bits 0 to 119];
-      "mno\000pqr"[bits 0 to 63]; "MNOP\000QRS"[bits 0 to 71]; "abc"; "\000bc";
-      ""[bits 0 to 7]; "b\000c"; "abcd"[bits 0 to 39];
-      "ABCDEFGHIJKLMNOPQRSTUVWXYZ"[bits 0 to 215]; "hello"[bits 0 to 47]
+      Frama_C_entropy_source; nondet
 [inout] Out (internal) for function strchr_misc:
-      c; loc_str; loc_char_array[3]; sz1; sz2; sz4a; sz4b; sz4c; sz4d; x; 
-      str; unterminated_string[0..11]; static_str; zero_str
+      c; loc_str; loc_char_array[3]; x; str; unterminated_string[0..11]; 
+      sz1; _ss; _res; sz2; _p; tmp_0; _s; _res_0; sz4a; _ss_0; _res_1; sz4b;
+      _ss_1; _res_2; sz4c; _ss_2; _res_3; sz4d; _ss_3; _res_4; static_str;
+      zero_str
 [inout] Inputs for function strchr_misc:
-      nondet; static_str; zero_str; ""[bits 0 to 7]; "a"[bits 0 to 15];
-      "aa"[bits 0 to 23]; "aaa"; "aaaa"[bits 0 to 39]; "aaaaa"[bits 0 to 47];
-      "aaaaaa"[bits 0 to 55]; "aaaaaaaaa"[bits 0 to 79];
-      "aaaaaaaaaa"[bits 0 to 87]; "aaaaaaaaaaa"[bits 0 to 95];
-      "aaaaaaaaaaaa"[bits 0 to 103]; "aaaaaaaaaaaaa"[bits 0 to 111]; "abc";
-      "\000bc"; ""[bits 0 to 7]; "b\000c"; "Hello World\n"[bits 0 to 103];
-      "abc\000\000\000abc"[bits 0 to 79]; "Bonjour Monde\n"[bits 0 to 119];
-      "abc"; "ABCD"[bits 0 to 39]; "efg"[bits 8 to 31]; "EFGH"[bits 8 to 39];
-      "mno\000pqr"[bits 0 to 63]; "MNOP\000QRS"[bits 0 to 71]; "abc"; "\000bc";
-      ""[bits 0 to 7]; "b\000c"; "abcd"[bits 0 to 39];
-      "ABCDEFGHIJKLMNOPQRSTUVWXYZ"[bits 0 to 215]; "hello"[bits 0 to 47]
+      nondet; static_str; zero_str; "Hello World\n"[bits 0 to 103];
+      "abc\000\000\000abc"[bits 0 to 79]; "Bonjour Monde\n"[bits 0 to 119]
 [inout] Out (internal) for function strchr_misc2:
-      c; sz5; sz6; sz7; sz8; s1; j; maybe_init[0..1]
+      c; s1; sz5; _p; tmp; _s; _res; sz6; _p_0; tmp_1; _s_0; _res_0; j; sz7; 
+      _ss; _res_1; maybe_init[0..1]; sz8; _ss_0; _res_2
 [inout] Inputs for function strchr_misc2:
-      nondet; ""[bits 0 to 7]; "a"[bits 0 to 15]; "aa"[bits 0 to 23]; "aaa";
-      "aaaa"[bits 0 to 39]; "aaaaa"[bits 0 to 47]; "aaaaaa"[bits 0 to 55];
-      "aaaaaaaaa"[bits 0 to 79]; "aaaaaaaaaa"[bits 0 to 87];
-      "aaaaaaaaaaa"[bits 0 to 95]; "aaaaaaaaaaaa"[bits 0 to 103];
-      "aaaaaaaaaaaaa"[bits 0 to 111]; "abc"; "\000bc"; ""[bits 0 to 7]; "b\000c";
-      "Hello World\n"[bits 0 to 103]; "abc\000\000\000abc"[bits 0 to 79];
-      "Bonjour Monde\n"[bits 0 to 119]; "abc"; "ABCD"[bits 0 to 39];
-      "efg"[bits 8 to 31]; "EFGH"[bits 8 to 39]; "mno\000pqr"[bits 0 to 63];
-      "MNOP\000QRS"[bits 0 to 71]; "abc"; "\000bc"; ""[bits 0 to 7]; "b\000c";
-      "abcd"[bits 0 to 39]; "ABCDEFGHIJKLMNOPQRSTUVWXYZ"[bits 0 to 215];
-      "hello"[bits 0 to 47]
+      nondet; "abc"; "ABCD"[bits 0 to 39]; "efg"[bits 8 to 31];
+      "EFGH"[bits 8 to 39]; "mno\000pqr"[bits 0 to 63];
+      "MNOP\000QRS"[bits 0 to 71]
 [inout] Out (internal) for function strchr_misc_array:
-      Frama_C_entropy_source; c; i; sz3
+      Frama_C_entropy_source; c; i; sz3; _ss; _res
 [inout] Inputs for function strchr_misc_array:
       Frama_C_entropy_source; tab_str[0..11]; ""[bits 0 to 7]; "a"[bits 0 to 15];
       "aa"[bits 0 to 23]; "aaa"; "aaaa"[bits 0 to 39]; "aaaaa"[bits 0 to 47];
       "aaaaaa"[bits 0 to 55]; "aaaaaaaaa"[bits 0 to 79];
       "aaaaaaaaaa"[bits 0 to 87]; "aaaaaaaaaaa"[bits 0 to 95];
-      "aaaaaaaaaaaa"[bits 0 to 103]; "aaaaaaaaaaaaa"[bits 0 to 111]; "abc";
-      "\000bc"; ""[bits 0 to 7]; "b\000c"; "Hello World\n"[bits 0 to 103];
-      "abc\000\000\000abc"[bits 0 to 79]; "Bonjour Monde\n"[bits 0 to 119];
-      "mno\000pqr"[bits 0 to 63]; "MNOP\000QRS"[bits 0 to 71]; "abc"; "\000bc";
-      ""[bits 0 to 7]; "b\000c"; "abcd"[bits 0 to 39];
-      "ABCDEFGHIJKLMNOPQRSTUVWXYZ"[bits 0 to 215]; "hello"[bits 0 to 47]
+      "aaaaaaaaaaaa"[bits 0 to 103]; "aaaaaaaaaaaaa"[bits 0 to 111]
 [inout] Out (internal) for function strchr_no_zero_but_ok:
-      c; s[0..19]; z1; z2; offs; tmp_1; z3; z4; z5
+      c; s[0..19]; z1; _ss; _res; z2; _ss_0; _res_0; offs; tmp_1; z3; _ss_1;
+      _res_1; z4; _ss_2; _res_2; z5; _ss_3; _res_3
 [inout] Inputs for function strchr_no_zero_but_ok:
-      nondet; ""[bits 0 to 7]; "a"[bits 0 to 15]; "aa"[bits 0 to 23]; "aaa";
-      "aaaa"[bits 0 to 39]; "aaaaa"[bits 0 to 47]; "aaaaaa"[bits 0 to 55];
-      "aaaaaaaaa"[bits 0 to 79]; "aaaaaaaaaa"[bits 0 to 87];
-      "aaaaaaaaaaa"[bits 0 to 95]; "aaaaaaaaaaaa"[bits 0 to 103];
-      "aaaaaaaaaaaaa"[bits 0 to 111]; "abc"; "\000bc"; ""[bits 0 to 7]; "b\000c";
-      "Hello World\n"[bits 0 to 103]; "abc\000\000\000abc"[bits 0 to 79];
-      "Bonjour Monde\n"[bits 0 to 119]; "mno\000pqr"[bits 0 to 63];
-      "MNOP\000QRS"[bits 0 to 71]; "abc"; "\000bc"; ""[bits 0 to 7]; "b\000c";
-      "abcd"[bits 0 to 39]; "ABCDEFGHIJKLMNOPQRSTUVWXYZ"[bits 0 to 215];
-      "hello"[bits 0 to 47]
+      nondet
 [inout] Out (internal) for function strchr_small_sets:
-      c; s; o; tmp; z1; z2; z3; z4; t[0..3]; z5
+      c; s; o; tmp; z1; _ss; _res; z2; _ss_0; _res_0; z3; _ss_1; _res_1; 
+      z4; _ss_2; _res_2; t[0..3]; z5; _ss_3; _res_3
 [inout] Inputs for function strchr_small_sets:
-      nondet; ""[bits 0 to 7]; "a"[bits 0 to 15]; "aa"[bits 0 to 23]; "aaa";
-      "aaaa"[bits 0 to 39]; "aaaaa"[bits 0 to 47]; "aaaaaa"[bits 0 to 55];
-      "aaaaaaaaa"[bits 0 to 79]; "aaaaaaaaaa"[bits 0 to 87];
-      "aaaaaaaaaaa"[bits 0 to 95]; "aaaaaaaaaaaa"[bits 0 to 103];
-      "aaaaaaaaaaaaa"[bits 0 to 111]; "abc"; "\000bc"; ""[bits 0 to 7]; "b\000c";
-      "Hello World\n"[bits 0 to 103]; "abc\000\000\000abc"[bits 0 to 79];
-      "Bonjour Monde\n"[bits 0 to 119]; "mno\000pqr"[bits 0 to 63];
-      "MNOP\000QRS"[bits 0 to 71]; "abc"; "\000bc"; ""[bits 0 to 7]; "b\000c";
-      "abcd"[bits 0 to 39]; "ABCDEFGHIJKLMNOPQRSTUVWXYZ"[bits 0 to 215];
-      "hello"[bits 0 to 47]
+      nondet; "abc"; "\000bc"; ""[bits 0 to 7]; "b\000c"
 [inout] Out (internal) for function strchr_small_sets_no_assertions:
-      s; o; tmp; t[0..3]; res[0..3]; __retres
+      s; o; tmp; _ss; _res; _ss_0; _res_0; _ss_1; _res_1; _ss_2; _res_2; 
+      t[0..3]; _ss_3; _res_3; res[0..4]; __retres
 [inout] Inputs for function strchr_small_sets_no_assertions:
-      nondet; ""[bits 0 to 7]; "a"[bits 0 to 15]; "aa"[bits 0 to 23]; "aaa";
-      "aaaa"[bits 0 to 39]; "aaaaa"[bits 0 to 47]; "aaaaaa"[bits 0 to 55];
-      "aaaaaaaaa"[bits 0 to 79]; "aaaaaaaaaa"[bits 0 to 87];
-      "aaaaaaaaaaa"[bits 0 to 95]; "aaaaaaaaaaaa"[bits 0 to 103];
-      "aaaaaaaaaaaaa"[bits 0 to 111]; "abc"; "\000bc"; ""[bits 0 to 7]; "b\000c";
-      "Hello World\n"[bits 0 to 103]; "abc\000\000\000abc"[bits 0 to 79];
-      "Bonjour Monde\n"[bits 0 to 119]; "mno\000pqr"[bits 0 to 63];
-      "MNOP\000QRS"[bits 0 to 71]; "abc"; "\000bc"; ""[bits 0 to 7]; "b\000c";
-      "abcd"[bits 0 to 39]; "ABCDEFGHIJKLMNOPQRSTUVWXYZ"[bits 0 to 215];
-      "hello"[bits 0 to 47]
+      nondet; "abc"; "\000bc"; ""[bits 0 to 7]; "b\000c"
 [inout] Out (internal) for function strchr_small_sets_chars:
-      c; res[0..3]
+      c; res[0..4]
 [inout] Inputs for function strchr_small_sets_chars:
-      nondet; ""[bits 0 to 7]; "a"[bits 0 to 15]; "aa"[bits 0 to 23]; "aaa";
-      "aaaa"[bits 0 to 39]; "aaaaa"[bits 0 to 47]; "aaaaaa"[bits 0 to 55];
-      "aaaaaaaaa"[bits 0 to 79]; "aaaaaaaaaa"[bits 0 to 87];
-      "aaaaaaaaaaa"[bits 0 to 95]; "aaaaaaaaaaaa"[bits 0 to 103];
-      "aaaaaaaaaaaaa"[bits 0 to 111]; "abc"; "\000bc"; ""[bits 0 to 7]; "b\000c";
-      "Hello World\n"[bits 0 to 103]; "abc\000\000\000abc"[bits 0 to 79];
-      "Bonjour Monde\n"[bits 0 to 119]; "mno\000pqr"[bits 0 to 63];
-      "MNOP\000QRS"[bits 0 to 71]; "abc"; "\000bc"; ""[bits 0 to 7]; "b\000c";
-      "abcd"[bits 0 to 39]; "ABCDEFGHIJKLMNOPQRSTUVWXYZ"[bits 0 to 215];
-      "hello"[bits 0 to 47]
+      nondet; "abc"; "\000bc"; ""[bits 0 to 7]; "b\000c"
 [inout] Out (internal) for function strchr_unbounded:
-      c; s; u1; t[0..29]; u2; u3; u4
+      c; s; u1; _ss; _res; t[0..29]; u2; _ss_0; _res_0; u3; _ss_1; _res_1; 
+      u4; _ss_2; _res_2
 [inout] Inputs for function strchr_unbounded:
-      nondet; ""[bits 0 to 7]; "a"[bits 0 to 15]; "aa"[bits 0 to 23]; "aaa";
-      "aaaa"[bits 0 to 39]; "aaaaa"[bits 0 to 47]; "aaaaaa"[bits 0 to 55];
-      "aaaaaaaaa"[bits 0 to 79]; "aaaaaaaaaa"[bits 0 to 87];
-      "aaaaaaaaaaa"[bits 0 to 95]; "aaaaaaaaaaaa"[bits 0 to 103];
-      "aaaaaaaaaaaaa"[bits 0 to 111]; "abc"; "\000bc"; ""[bits 0 to 7]; "b\000c";
-      "Hello World\n"[bits 0 to 103]; "abc\000\000\000abc"[bits 0 to 79];
-      "Bonjour Monde\n"[bits 0 to 119]; "mno\000pqr"[bits 0 to 63];
-      "MNOP\000QRS"[bits 0 to 71]; "abc"; "\000bc"; ""[bits 0 to 7]; "b\000c";
-      "abcd"[bits 0 to 39]; "ABCDEFGHIJKLMNOPQRSTUVWXYZ"[bits 0 to 215];
-      "hello"[bits 0 to 47]
+      nondet; "abcd"[bits 0 to 39]; "ABCDEFGHIJKLMNOPQRSTUVWXYZ"[bits 0 to 215]
 [inout] Out (internal) for function strchr_zero_termination:
-      c; empty_or_non_terminated[0]; z1; non_terminated[0];
+      c; empty_or_non_terminated[0]; z1; _ss; _res; non_terminated[0];
       non_terminated2[0..3]; o; tmp_0
 [inout] Inputs for function strchr_zero_termination:
-      nondet; ""[bits 0 to 7]; "a"[bits 0 to 15]; "aa"[bits 0 to 23]; "aaa";
-      "aaaa"[bits 0 to 39]; "aaaaa"[bits 0 to 47]; "aaaaaa"[bits 0 to 55];
-      "aaaaaaaaa"[bits 0 to 79]; "aaaaaaaaaa"[bits 0 to 87];
-      "aaaaaaaaaaa"[bits 0 to 95]; "aaaaaaaaaaaa"[bits 0 to 103];
-      "aaaaaaaaaaaaa"[bits 0 to 111]; "abc"; "\000bc"; ""[bits 0 to 7]; "b\000c";
-      "Hello World\n"[bits 0 to 103]; "abc\000\000\000abc"[bits 0 to 79];
-      "Bonjour Monde\n"[bits 0 to 119]; "mno\000pqr"[bits 0 to 63];
-      "MNOP\000QRS"[bits 0 to 71]; "abc"; "\000bc"; ""[bits 0 to 7]; "b\000c";
-      "abcd"[bits 0 to 39]; "ABCDEFGHIJKLMNOPQRSTUVWXYZ"[bits 0 to 215];
-      "hello"[bits 0 to 47]
+      nondet
 [inout] Out (internal) for function main:
       Frama_C_entropy_source; static_str; zero_str; __retres
 [inout] Inputs for function main:
diff --git a/tests/non-free/oracle/strlen.res.oracle b/tests/non-free/oracle/strlen.res.oracle
index a6e977055acba6834f78ec067dc05810ac3ced70..ffb4b24f9f459bce6475db55a0056da77ee9afd9 100644
--- a/tests/non-free/oracle/strlen.res.oracle
+++ b/tests/non-free/oracle/strlen.res.oracle
@@ -63,32 +63,18 @@ tests/non-free/strlen.c:97:[value] warning: function strlen: precondition 'valid
 [value] Done for function zero_termination
 [value] computing for function strlen_initialization <- main.
     Called from tests/non-free/strlen.c:336.
-[value] computing for function my_strlen <- strlen_initialization <- main.
-    Called from tests/non-free/strlen.c:105.
-tests/non-free/strlen.c:54:[value] warning: function strlen: precondition 'valid_string_src' got status unknown.
-tests/non-free/strlen.c:54:[value] Call to builtin Frama_C_strlen(({{ &empty_or_uninitialized[0] }}))
-tests/non-free/strlen.c:54:[value] builtin Frama_C_strlen: possible uninitialized values
-[value] Recording results for my_strlen
-[value] Done for function my_strlen
+tests/non-free/strlen.c:105:[value] warning: function strlen: precondition 'valid_string_src' got status unknown.
+tests/non-free/strlen.c:105:[value] Call to builtin Frama_C_strlen(({{ &empty_or_uninitialized[0] }}))
+tests/non-free/strlen.c:105:[value] builtin Frama_C_strlen: possible uninitialized values
 tests/non-free/strlen.c:106:[value] assertion got status valid.
-[value] computing for function my_strlen <- strlen_initialization <- main.
-    Called from tests/non-free/strlen.c:109.
-tests/non-free/strlen.c:54:[value] warning: function strlen: precondition 'valid_string_src' got status invalid.
-[value] Recording results for my_strlen
-[value] Done for function my_strlen
-[value] computing for function my_strlen <- strlen_initialization <- main.
-    Called from tests/non-free/strlen.c:116.
-tests/non-free/strlen.c:54:[value] Call to builtin Frama_C_strlen(({{ &s[0] }}))
-tests/non-free/strlen.c:54:[value] builtin Frama_C_strlen: possible uninitialized values
-[value] Recording results for my_strlen
-[value] Done for function my_strlen
+tests/non-free/strlen.c:109:[value] warning: function strlen: precondition 'valid_string_src' got status invalid.
+tests/non-free/strlen.c:116:[value] warning: function strlen: precondition 'valid_string_src' got status unknown.
+tests/non-free/strlen.c:116:[value] Call to builtin Frama_C_strlen(({{ &s[0] }}))
+tests/non-free/strlen.c:116:[value] builtin Frama_C_strlen: possible uninitialized values
 tests/non-free/strlen.c:117:[value] assertion got status valid.
-[value] computing for function my_strlen <- strlen_initialization <- main.
-    Called from tests/non-free/strlen.c:124.
-tests/non-free/strlen.c:54:[value] Call to builtin Frama_C_strlen(({{ &t[0] }}))
-tests/non-free/strlen.c:54:[value] builtin Frama_C_strlen: possible uninitialized values
-[value] Recording results for my_strlen
-[value] Done for function my_strlen
+tests/non-free/strlen.c:124:[value] warning: function strlen: precondition 'valid_string_src' got status unknown.
+tests/non-free/strlen.c:124:[value] Call to builtin Frama_C_strlen(({{ &t[0] }}))
+tests/non-free/strlen.c:124:[value] builtin Frama_C_strlen: possible uninitialized values
 tests/non-free/strlen.c:125:[value] assertion got status valid.
 [value] Recording results for strlen_initialization
 [value] Done for function strlen_initialization
@@ -105,43 +91,30 @@ tests/non-free/strlen.c:161:[value] Call to builtin memset(({{ (void *)&a }},{1;
 [value] using specification for function Frama_C_interval
 tests/non-free/strlen.c:171:[value] function Frama_C_interval: precondition got status valid.
 [value] Done for function Frama_C_interval
-[value] computing for function my_strlen <- strlen_large <- main.
-    Called from tests/non-free/strlen.c:172.
-tests/non-free/strlen.c:54:[value] function strlen: precondition 'valid_string_src' got status valid.
-tests/non-free/strlen.c:54:[value] Call to builtin Frama_C_strlen(({{ &a + [3..30] }}))
-[value] Recording results for my_strlen
-[value] Done for function my_strlen
+tests/non-free/strlen.c:172:[value] function strlen: precondition 'valid_string_src' got status valid.
+tests/non-free/strlen.c:172:[value] Call to builtin Frama_C_strlen(({{ &a + [3..30] }}))
 tests/non-free/strlen.c:173:[value] assertion got status valid.
 [value] computing for function Frama_C_interval <- strlen_large <- main.
     Called from tests/non-free/strlen.c:175.
 tests/non-free/strlen.c:175:[value] function Frama_C_interval: precondition got status valid.
 [value] Done for function Frama_C_interval
-[value] computing for function my_strlen <- strlen_large <- main.
-    Called from tests/non-free/strlen.c:176.
-tests/non-free/strlen.c:54:[value] Call to builtin Frama_C_strlen(({{ &a + [5..17] }}))
-[value] Recording results for my_strlen
-[value] Done for function my_strlen
+tests/non-free/strlen.c:176:[value] function strlen: precondition 'valid_string_src' got status valid.
+tests/non-free/strlen.c:176:[value] Call to builtin Frama_C_strlen(({{ &a + [5..17] }}))
 tests/non-free/strlen.c:177:[value] assertion got status valid.
 [value] computing for function Frama_C_interval <- strlen_large <- main.
     Called from tests/non-free/strlen.c:179.
 tests/non-free/strlen.c:179:[value] function Frama_C_interval: precondition got status valid.
 [value] Done for function Frama_C_interval
-[value] computing for function my_strlen <- strlen_large <- main.
-    Called from tests/non-free/strlen.c:180.
-tests/non-free/strlen.c:54:[value] Call to builtin Frama_C_strlen(({{ &a + [60..74] }}))
-[value] Recording results for my_strlen
-[value] Done for function my_strlen
+tests/non-free/strlen.c:180:[value] function strlen: precondition 'valid_string_src' got status valid.
+tests/non-free/strlen.c:180:[value] Call to builtin Frama_C_strlen(({{ &a + [60..74] }}))
 tests/non-free/strlen.c:181:[value] assertion got status valid.
 [value] computing for function Frama_C_interval <- strlen_large <- main.
     Called from tests/non-free/strlen.c:183.
 tests/non-free/strlen.c:183:[value] function Frama_C_interval: precondition got status valid.
 [value] Done for function Frama_C_interval
-[value] computing for function my_strlen <- strlen_large <- main.
-    Called from tests/non-free/strlen.c:184.
-tests/non-free/strlen.c:54:[value] Call to builtin Frama_C_strlen(({{ &a + [63..80] }}))
-tests/non-free/strlen.c:54:[value] builtin Frama_C_strlen: possibly reading indeterminate data
-[value] Recording results for my_strlen
-[value] Done for function my_strlen
+tests/non-free/strlen.c:184:[value] warning: function strlen: precondition 'valid_string_src' got status unknown.
+tests/non-free/strlen.c:184:[value] Call to builtin Frama_C_strlen(({{ &a + [63..80] }}))
+tests/non-free/strlen.c:184:[value] builtin Frama_C_strlen: possibly reading indeterminate data
 tests/non-free/strlen.c:185:[value] assertion got status valid.
 [value] computing for function init_array_nondet <- strlen_large <- main.
     Called from tests/non-free/strlen.c:187.
@@ -152,12 +125,9 @@ tests/non-free/strlen.c:161:[value] Call to builtin memset(({{ (void *)&a }},{0;
     Called from tests/non-free/strlen.c:188.
 tests/non-free/strlen.c:188:[value] function Frama_C_interval: precondition got status valid.
 [value] Done for function Frama_C_interval
-[value] computing for function my_strlen <- strlen_large <- main.
-    Called from tests/non-free/strlen.c:189.
-tests/non-free/strlen.c:54:[value] Call to builtin Frama_C_strlen(({{ &a + [50..70] }}))
-tests/non-free/strlen.c:54:[value] builtin Frama_C_strlen: possibly reading indeterminate data
-[value] Recording results for my_strlen
-[value] Done for function my_strlen
+tests/non-free/strlen.c:189:[value] warning: function strlen: precondition 'valid_string_src' got status unknown.
+tests/non-free/strlen.c:189:[value] Call to builtin Frama_C_strlen(({{ &a + [50..70] }}))
+tests/non-free/strlen.c:189:[value] builtin Frama_C_strlen: possibly reading indeterminate data
 tests/non-free/strlen.c:190:[value] assertion got status valid.
 [value] Recording results for strlen_large
 [value] Done for function strlen_large
@@ -177,36 +147,27 @@ tests/non-free/strlen.c:161:[value] Call to builtin memset(({{ (void *)&a[50] }}
     Called from tests/non-free/strlen.c:202.
 tests/non-free/strlen.c:202:[value] function Frama_C_interval: precondition got status valid.
 [value] Done for function Frama_C_interval
-[value] computing for function my_strlen <- strlen_large_uninit <- main.
-    Called from tests/non-free/strlen.c:203.
-tests/non-free/strlen.c:54:[value] Call to builtin Frama_C_strlen(({{ &a + [3..30] }}))
-tests/non-free/strlen.c:54:[value] builtin Frama_C_strlen: possibly reading indeterminate data
-[value] Recording results for my_strlen
-[value] Done for function my_strlen
+tests/non-free/strlen.c:203:[value] warning: function strlen: precondition 'valid_string_src' got status unknown.
+tests/non-free/strlen.c:203:[value] Call to builtin Frama_C_strlen(({{ &a + [3..30] }}))
+tests/non-free/strlen.c:203:[value] builtin Frama_C_strlen: possibly reading indeterminate data
 tests/non-free/strlen.c:204:[value] assertion got status valid.
 [value] computing for function Frama_C_interval <- strlen_large_uninit <- main.
     Called from tests/non-free/strlen.c:207.
 tests/non-free/strlen.c:207:[value] function Frama_C_interval: precondition got status valid.
 [value] Done for function Frama_C_interval
-[value] computing for function my_strlen <- strlen_large_uninit <- main.
-    Called from tests/non-free/strlen.c:208.
-tests/non-free/strlen.c:54:[value] Call to builtin Frama_C_strlen(({{ &a + [63..80] }}))
-tests/non-free/strlen.c:54:[value] builtin Frama_C_strlen: possibly reading indeterminate data
-[value] Recording results for my_strlen
-[value] Done for function my_strlen
+tests/non-free/strlen.c:208:[value] warning: function strlen: precondition 'valid_string_src' got status unknown.
+tests/non-free/strlen.c:208:[value] Call to builtin Frama_C_strlen(({{ &a + [63..80] }}))
+tests/non-free/strlen.c:208:[value] builtin Frama_C_strlen: possibly reading indeterminate data
 tests/non-free/strlen.c:209:[value] assertion got status valid.
 [value] computing for function Frama_C_interval <- strlen_large_uninit <- main.
     Called from tests/non-free/strlen.c:211.
 tests/non-free/strlen.c:211:[value] function Frama_C_interval: precondition got status valid.
 [value] Done for function Frama_C_interval
-[value] computing for function my_strlen <- strlen_large_uninit <- main.
-    Called from tests/non-free/strlen.c:212.
-tests/non-free/strlen.c:54:[value] Call to builtin Frama_C_strlen(({{ &a + [45..55] }}))
-tests/non-free/strlen.c:54:[value] builtin Frama_C_strlen:
+tests/non-free/strlen.c:212:[value] warning: function strlen: precondition 'valid_string_src' got status unknown.
+tests/non-free/strlen.c:212:[value] Call to builtin Frama_C_strlen(({{ &a + [45..55] }}))
+tests/non-free/strlen.c:212:[value] builtin Frama_C_strlen:
     possible uninitialized values
     possibly reading indeterminate data
-[value] Recording results for my_strlen
-[value] Done for function my_strlen
 tests/non-free/strlen.c:213:[value] assertion got status valid.
 [value] Recording results for strlen_large_uninit
 [value] Done for function strlen_large_uninit
@@ -435,8 +396,6 @@ tests/non-free/strlen.c:329:[value] builtin Frama_C_strlen:
   s2 ∈ {{ "efg" + {1; 2} ; "EFGH" + {1; 2} }}
   maybe_init[0] ∈ {65} or UNINITIALIZED
             [1] ∈ {0}
-[value:final-states] Values at end of function my_strlen:
-  __retres ∈ [0..54]
 [value:final-states] Values at end of function negative_offsets:
   Frama_C_entropy_source ∈ [--..--]
   buf[0..98] ∈ {65} or UNINITIALIZED
@@ -528,8 +487,6 @@ tests/non-free/strlen.c:329:[value] builtin Frama_C_strlen:
 [from] Computing for function Frama_C_interval <-misc
 [from] Done for function Frama_C_interval
 [from] Done for function misc
-[from] Computing for function my_strlen
-[from] Done for function my_strlen
 [from] Computing for function negative_offsets
 [from] Done for function negative_offsets
 [from] Computing for function small_sets
@@ -584,20 +541,6 @@ tests/non-free/strlen.c:329:[value] builtin Frama_C_strlen:
   NO EFFECTS
 [from] Function misc:
   Frama_C_entropy_source FROM Frama_C_entropy_source (and SELF)
-[from] Function my_strlen:
-  \result FROM unterminated_string[0..11]; empty_or_uninitialized[0];
-               uninitialized[0]; s[0..1]; t[0..3]; a[3..99]; a[3..99];
-               "Hello World\n"[bits 0 to 103];
-               "abc\000\000\000abc"[bits 0 to 79]; ""[bits 0 to 7];
-               "a"[bits 0 to 15]; "aa"[bits 0 to 23]; "aaa";
-               "aaaa"[bits 0 to 39]; "aaaaa"[bits 0 to 47];
-               "aaaaaa"[bits 0 to 55]; "aaaaaaaaa"[bits 0 to 79];
-               "aaaaaaaaaa"[bits 0 to 87]; "aaaaaaaaaaa"[bits 0 to 95];
-               "aaaaaaaaaaaa"[bits 0 to 103]; "aaaaaaaaaaaaa"[bits 0 to 111];
-               "abc"; "\000bc"; ""[bits 0 to 7]; "b\000c";
-               "Bonjour Monde\n"[bits 0 to 119]; "abc"; "ABCD"[bits 0 to 39];
-               "efg"[bits 8 to 31]; "EFGH"[bits 8 to 39];
-               "mno\000pqr"[bits 0 to 63]; "MNOP\000QRS"[bits 0 to 71]
 [from] Function negative_offsets:
   Frama_C_entropy_source FROM Frama_C_entropy_source; nondet (and SELF)
 [from] Function small_sets:
@@ -649,11 +592,6 @@ tests/non-free/strlen.c:329:[value] builtin Frama_C_strlen:
       "Bonjour Monde\n"[bits 0 to 119]; "abc"; "ABCD"[bits 0 to 39];
       "efg"[bits 8 to 31]; "EFGH"[bits 8 to 39]; "mno\000pqr"[bits 0 to 63];
       "MNOP\000QRS"[bits 0 to 71]
-[inout] Out (internal) for function my_strlen:
-      tmp; __retres
-[inout] Inputs for function my_strlen:
-      empty_or_uninitialized[0]; uninitialized[0]; s[0..1]; t[0..3]; a[0..99];
-      a[0..99]
 [inout] Out (internal) for function negative_offsets:
       Frama_C_entropy_source; buf[0..99]; i; len1; len2; len3; len4; len5; 
       len6; offset1; offset2; offset3; offset4; offset5; offset6; p
@@ -664,15 +602,18 @@ tests/non-free/strlen.c:329:[value] builtin Frama_C_strlen:
 [inout] Inputs for function small_sets:
       nondet; "abc"; "\000bc"; ""[bits 0 to 7]; "b\000c"
 [inout] Out (internal) for function strlen_initialization:
-      empty_or_uninitialized[0]; z1; s[0..1]; p; z2; t[0..3]; z3
+      empty_or_uninitialized[0]; z1; tmp; s[0..1]; p; z2; tmp_0; t[0..3]; 
+      z3; tmp_1
 [inout] Inputs for function strlen_initialization:
       nondet
 [inout] Out (internal) for function strlen_large:
-      Frama_C_entropy_source; a[0..99]; offset; z1; z2; z3; z4; z5
+      Frama_C_entropy_source; a[0..99]; offset; z1; tmp_0; z2; tmp_1; z3; 
+      tmp_2; z4; tmp_3; z5; tmp_4
 [inout] Inputs for function strlen_large:
       Frama_C_entropy_source; nondet
 [inout] Out (internal) for function strlen_large_uninit:
-      Frama_C_entropy_source; a{[0..39]; [50..94]; [98]}; offset; z1; z2; z3
+      Frama_C_entropy_source; a{[0..39]; [50..94]; [98]}; offset; z1; tmp_0; 
+      z2; tmp_1; z3; tmp_2
 [inout] Inputs for function strlen_large_uninit:
       Frama_C_entropy_source; nondet
 [inout] Out (internal) for function zero_termination:
diff --git a/tests/non-free/oracle/wcslen.res.oracle b/tests/non-free/oracle/wcslen.res.oracle
index 1bd97b734e390886162835e36e4d3fa0e85d68ee..50346b1d2ae391b5db037c82f2723e11524201c6 100644
--- a/tests/non-free/oracle/wcslen.res.oracle
+++ b/tests/non-free/oracle/wcslen.res.oracle
@@ -66,32 +66,18 @@ tests/non-free/wcslen.c:97:[value] warning: function wcslen: precondition got st
 [value] Done for function zero_termination
 [value] computing for function wcslen_initialization <- main.
     Called from tests/non-free/wcslen.c:341.
-[value] computing for function my_wcslen <- wcslen_initialization <- main.
-    Called from tests/non-free/wcslen.c:105.
-tests/non-free/wcslen.c:54:[value] warning: function wcslen: precondition got status unknown.
-tests/non-free/wcslen.c:54:[value] Call to builtin Frama_C_wcslen(({{ &empty_or_uninitialized[0] }}))
-tests/non-free/wcslen.c:54:[value] builtin Frama_C_wcslen: possible uninitialized values
-[value] Recording results for my_wcslen
-[value] Done for function my_wcslen
+tests/non-free/wcslen.c:105:[value] warning: function wcslen: precondition got status unknown.
+tests/non-free/wcslen.c:105:[value] Call to builtin Frama_C_wcslen(({{ &empty_or_uninitialized[0] }}))
+tests/non-free/wcslen.c:105:[value] builtin Frama_C_wcslen: possible uninitialized values
 tests/non-free/wcslen.c:106:[value] assertion got status valid.
-[value] computing for function my_wcslen <- wcslen_initialization <- main.
-    Called from tests/non-free/wcslen.c:109.
-tests/non-free/wcslen.c:54:[value] warning: function wcslen: precondition got status invalid.
-[value] Recording results for my_wcslen
-[value] Done for function my_wcslen
-[value] computing for function my_wcslen <- wcslen_initialization <- main.
-    Called from tests/non-free/wcslen.c:116.
-tests/non-free/wcslen.c:54:[value] Call to builtin Frama_C_wcslen(({{ &s[0] }}))
-tests/non-free/wcslen.c:54:[value] builtin Frama_C_wcslen: possible uninitialized values
-[value] Recording results for my_wcslen
-[value] Done for function my_wcslen
+tests/non-free/wcslen.c:109:[value] warning: function wcslen: precondition got status invalid.
+tests/non-free/wcslen.c:116:[value] warning: function wcslen: precondition got status unknown.
+tests/non-free/wcslen.c:116:[value] Call to builtin Frama_C_wcslen(({{ &s[0] }}))
+tests/non-free/wcslen.c:116:[value] builtin Frama_C_wcslen: possible uninitialized values
 tests/non-free/wcslen.c:117:[value] assertion got status valid.
-[value] computing for function my_wcslen <- wcslen_initialization <- main.
-    Called from tests/non-free/wcslen.c:124.
-tests/non-free/wcslen.c:54:[value] Call to builtin Frama_C_wcslen(({{ &t[0] }}))
-tests/non-free/wcslen.c:54:[value] builtin Frama_C_wcslen: possible uninitialized values
-[value] Recording results for my_wcslen
-[value] Done for function my_wcslen
+tests/non-free/wcslen.c:124:[value] warning: function wcslen: precondition got status unknown.
+tests/non-free/wcslen.c:124:[value] Call to builtin Frama_C_wcslen(({{ &t[0] }}))
+tests/non-free/wcslen.c:124:[value] builtin Frama_C_wcslen: possible uninitialized values
 tests/non-free/wcslen.c:125:[value] assertion got status valid.
 [value] Recording results for wcslen_initialization
 [value] Done for function wcslen_initialization
@@ -108,43 +94,30 @@ tests/non-free/wcslen.c:161:[value] Call to builtin memset(({{ (void *)&a }},{1;
 [value] using specification for function Frama_C_interval
 tests/non-free/wcslen.c:171:[value] function Frama_C_interval: precondition got status valid.
 [value] Done for function Frama_C_interval
-[value] computing for function my_wcslen <- wcslen_large <- main.
-    Called from tests/non-free/wcslen.c:172.
-tests/non-free/wcslen.c:54:[value] function wcslen: precondition got status valid.
-tests/non-free/wcslen.c:54:[value] Call to builtin Frama_C_wcslen(({{ &a + [12..120],0%4 }}))
-[value] Recording results for my_wcslen
-[value] Done for function my_wcslen
+tests/non-free/wcslen.c:172:[value] function wcslen: precondition got status valid.
+tests/non-free/wcslen.c:172:[value] Call to builtin Frama_C_wcslen(({{ &a + [12..120],0%4 }}))
 tests/non-free/wcslen.c:173:[value] assertion got status valid.
 [value] computing for function Frama_C_interval <- wcslen_large <- main.
     Called from tests/non-free/wcslen.c:175.
 tests/non-free/wcslen.c:175:[value] function Frama_C_interval: precondition got status valid.
 [value] Done for function Frama_C_interval
-[value] computing for function my_wcslen <- wcslen_large <- main.
-    Called from tests/non-free/wcslen.c:176.
-tests/non-free/wcslen.c:54:[value] Call to builtin Frama_C_wcslen(({{ &a + [20..68],0%4 }}))
-[value] Recording results for my_wcslen
-[value] Done for function my_wcslen
+tests/non-free/wcslen.c:176:[value] function wcslen: precondition got status valid.
+tests/non-free/wcslen.c:176:[value] Call to builtin Frama_C_wcslen(({{ &a + [20..68],0%4 }}))
 tests/non-free/wcslen.c:177:[value] assertion got status valid.
 [value] computing for function Frama_C_interval <- wcslen_large <- main.
     Called from tests/non-free/wcslen.c:179.
 tests/non-free/wcslen.c:179:[value] function Frama_C_interval: precondition got status valid.
 [value] Done for function Frama_C_interval
-[value] computing for function my_wcslen <- wcslen_large <- main.
-    Called from tests/non-free/wcslen.c:180.
-tests/non-free/wcslen.c:54:[value] Call to builtin Frama_C_wcslen(({{ &a + [240..296],0%4 }}))
-[value] Recording results for my_wcslen
-[value] Done for function my_wcslen
+tests/non-free/wcslen.c:180:[value] function wcslen: precondition got status valid.
+tests/non-free/wcslen.c:180:[value] Call to builtin Frama_C_wcslen(({{ &a + [240..296],0%4 }}))
 tests/non-free/wcslen.c:181:[value] assertion got status valid.
 [value] computing for function Frama_C_interval <- wcslen_large <- main.
     Called from tests/non-free/wcslen.c:183.
 tests/non-free/wcslen.c:183:[value] function Frama_C_interval: precondition got status valid.
 [value] Done for function Frama_C_interval
-[value] computing for function my_wcslen <- wcslen_large <- main.
-    Called from tests/non-free/wcslen.c:184.
-tests/non-free/wcslen.c:54:[value] Call to builtin Frama_C_wcslen(({{ &a + [252..320],0%4 }}))
-tests/non-free/wcslen.c:54:[value] builtin Frama_C_wcslen: possibly reading indeterminate data
-[value] Recording results for my_wcslen
-[value] Done for function my_wcslen
+tests/non-free/wcslen.c:184:[value] warning: function wcslen: precondition got status unknown.
+tests/non-free/wcslen.c:184:[value] Call to builtin Frama_C_wcslen(({{ &a + [252..320],0%4 }}))
+tests/non-free/wcslen.c:184:[value] builtin Frama_C_wcslen: possibly reading indeterminate data
 tests/non-free/wcslen.c:185:[value] assertion got status valid.
 [value] computing for function init_array_nondet <- wcslen_large <- main.
     Called from tests/non-free/wcslen.c:187.
@@ -155,12 +128,9 @@ tests/non-free/wcslen.c:161:[value] Call to builtin memset(({{ (void *)&a }},{0;
     Called from tests/non-free/wcslen.c:188.
 tests/non-free/wcslen.c:188:[value] function Frama_C_interval: precondition got status valid.
 [value] Done for function Frama_C_interval
-[value] computing for function my_wcslen <- wcslen_large <- main.
-    Called from tests/non-free/wcslen.c:189.
-tests/non-free/wcslen.c:54:[value] Call to builtin Frama_C_wcslen(({{ &a + [200..280],0%4 }}))
-tests/non-free/wcslen.c:54:[value] builtin Frama_C_wcslen: possibly reading indeterminate data
-[value] Recording results for my_wcslen
-[value] Done for function my_wcslen
+tests/non-free/wcslen.c:189:[value] warning: function wcslen: precondition got status unknown.
+tests/non-free/wcslen.c:189:[value] Call to builtin Frama_C_wcslen(({{ &a + [200..280],0%4 }}))
+tests/non-free/wcslen.c:189:[value] builtin Frama_C_wcslen: possibly reading indeterminate data
 tests/non-free/wcslen.c:190:[value] assertion got status valid.
 [value] Recording results for wcslen_large
 [value] Done for function wcslen_large
@@ -180,36 +150,27 @@ tests/non-free/wcslen.c:161:[value] Call to builtin memset(({{ (void *)&a[50] }}
     Called from tests/non-free/wcslen.c:202.
 tests/non-free/wcslen.c:202:[value] function Frama_C_interval: precondition got status valid.
 [value] Done for function Frama_C_interval
-[value] computing for function my_wcslen <- wcslen_large_uninit <- main.
-    Called from tests/non-free/wcslen.c:203.
-tests/non-free/wcslen.c:54:[value] Call to builtin Frama_C_wcslen(({{ &a + [12..120],0%4 }}))
-tests/non-free/wcslen.c:54:[value] builtin Frama_C_wcslen: possibly reading indeterminate data
-[value] Recording results for my_wcslen
-[value] Done for function my_wcslen
+tests/non-free/wcslen.c:203:[value] warning: function wcslen: precondition got status unknown.
+tests/non-free/wcslen.c:203:[value] Call to builtin Frama_C_wcslen(({{ &a + [12..120],0%4 }}))
+tests/non-free/wcslen.c:203:[value] builtin Frama_C_wcslen: possibly reading indeterminate data
 tests/non-free/wcslen.c:204:[value] assertion got status valid.
 [value] computing for function Frama_C_interval <- wcslen_large_uninit <- main.
     Called from tests/non-free/wcslen.c:207.
 tests/non-free/wcslen.c:207:[value] function Frama_C_interval: precondition got status valid.
 [value] Done for function Frama_C_interval
-[value] computing for function my_wcslen <- wcslen_large_uninit <- main.
-    Called from tests/non-free/wcslen.c:208.
-tests/non-free/wcslen.c:54:[value] Call to builtin Frama_C_wcslen(({{ &a + [252..320],0%4 }}))
-tests/non-free/wcslen.c:54:[value] builtin Frama_C_wcslen: possibly reading indeterminate data
-[value] Recording results for my_wcslen
-[value] Done for function my_wcslen
+tests/non-free/wcslen.c:208:[value] warning: function wcslen: precondition got status unknown.
+tests/non-free/wcslen.c:208:[value] Call to builtin Frama_C_wcslen(({{ &a + [252..320],0%4 }}))
+tests/non-free/wcslen.c:208:[value] builtin Frama_C_wcslen: possibly reading indeterminate data
 tests/non-free/wcslen.c:209:[value] assertion got status valid.
 [value] computing for function Frama_C_interval <- wcslen_large_uninit <- main.
     Called from tests/non-free/wcslen.c:211.
 tests/non-free/wcslen.c:211:[value] function Frama_C_interval: precondition got status valid.
 [value] Done for function Frama_C_interval
-[value] computing for function my_wcslen <- wcslen_large_uninit <- main.
-    Called from tests/non-free/wcslen.c:212.
-tests/non-free/wcslen.c:54:[value] Call to builtin Frama_C_wcslen(({{ &a + [180..220],0%4 }}))
-tests/non-free/wcslen.c:54:[value] builtin Frama_C_wcslen:
+tests/non-free/wcslen.c:212:[value] warning: function wcslen: precondition got status unknown.
+tests/non-free/wcslen.c:212:[value] Call to builtin Frama_C_wcslen(({{ &a + [180..220],0%4 }}))
+tests/non-free/wcslen.c:212:[value] builtin Frama_C_wcslen:
     possible uninitialized values
     possibly reading indeterminate data
-[value] Recording results for my_wcslen
-[value] Done for function my_wcslen
 tests/non-free/wcslen.c:213:[value] assertion got status valid.
 [value] Recording results for wcslen_large_uninit
 [value] Done for function wcslen_large_uninit
@@ -448,8 +409,6 @@ tests/non-free/wcslen.c:333:[value] builtin Frama_C_wcslen:
   s2 ∈ {{ L"efg" + {4; 8} ; L"EFGH" + {4; 8} }}
   maybe_init[0] ∈ {65} or UNINITIALIZED
             [1] ∈ {0}
-[value:final-states] Values at end of function my_wcslen:
-  __retres ∈ [0..54]
 [value:final-states] Values at end of function negative_offsets:
   Frama_C_entropy_source ∈ [--..--]
   buf[0..88] ∈ {65} or UNINITIALIZED
@@ -542,8 +501,6 @@ tests/non-free/wcslen.c:333:[value] builtin Frama_C_wcslen:
 [from] Computing for function Frama_C_interval <-misc
 [from] Done for function Frama_C_interval
 [from] Done for function misc
-[from] Computing for function my_wcslen
-[from] Done for function my_wcslen
 [from] Computing for function negative_offsets
 [from] Done for function negative_offsets
 [from] Computing for function small_sets
@@ -600,22 +557,6 @@ tests/non-free/wcslen.c:333:[value] builtin Frama_C_wcslen:
   NO EFFECTS
 [from] Function misc:
   Frama_C_entropy_source FROM Frama_C_entropy_source (and SELF)
-[from] Function my_wcslen:
-  \result FROM unterminated_string[0..11]; empty_or_uninitialized[0];
-               uninitialized[0]; s[0..1]; t[0..3]; a[3..99]; a[3..99];
-               L"Hello World\n"[bits 0 to 415];
-               L"abc\000\000\000abc"[bits 0 to 319]; L""; L"a"[bits 0 to 63];
-               L"aa"[bits 0 to 95]; L"aaa"[bits 0 to 127];
-               L"aaaa"[bits 0 to 159]; L"aaaaa"[bits 0 to 191];
-               L"aaaaaa"[bits 0 to 223]; L"aaaaaaaaa"[bits 0 to 319];
-               L"aaaaaaaaaa"[bits 0 to 351]; L"aaaaaaaaaaa"[bits 0 to 383];
-               L"aaaaaaaaaaaa"[bits 0 to 415];
-               L"aaaaaaaaaaaaa"[bits 0 to 447]; L"abc"[bits 0 to 127];
-               L"\000bc"[bits 0 to 127]; L""; L"b\000c"[bits 0 to 127];
-               L"Bonjour Monde\n"[bits 0 to 479]; L"abc"[bits 0 to 127];
-               L"ABCD"[bits 0 to 159]; L"efg"[bits 32 to 127];
-               L"EFGH"[bits 32 to 159]; L"mno\000pqr"[bits 0 to 255];
-               L"MNOP\000QRS"[bits 0 to 287]
 [from] Function negative_offsets:
   Frama_C_entropy_source FROM Frama_C_entropy_source; nondet (and SELF)
 [from] Function small_sets:
@@ -668,11 +609,6 @@ tests/non-free/wcslen.c:333:[value] builtin Frama_C_wcslen:
       L"abc"[bits 0 to 127]; L"ABCD"[bits 0 to 159]; L"efg"[bits 32 to 127];
       L"EFGH"[bits 32 to 159]; L"mno\000pqr"[bits 0 to 255];
       L"MNOP\000QRS"[bits 0 to 287]
-[inout] Out (internal) for function my_wcslen:
-      tmp; __retres
-[inout] Inputs for function my_wcslen:
-      empty_or_uninitialized[0]; uninitialized[0]; s[0..1]; t[0..3]; a[0..99];
-      a[0..99]
 [inout] Out (internal) for function negative_offsets:
       Frama_C_entropy_source; buf[0..99]; i; len1; len2; len3; len4; len5; 
       len6; offset1; offset2; offset3; offset4; offset5; offset6; p
@@ -684,15 +620,18 @@ tests/non-free/wcslen.c:333:[value] builtin Frama_C_wcslen:
       nondet; L"abc"[bits 0 to 127]; L"\000bc"[bits 0 to 127]; L"";
       L"b\000c"[bits 0 to 127]
 [inout] Out (internal) for function wcslen_initialization:
-      empty_or_uninitialized[0]; z1; s[0..1]; p; z2; t[0..3]; z3
+      empty_or_uninitialized[0]; z1; tmp; s[0..1]; p; z2; tmp_0; t[0..3]; 
+      z3; tmp_1
 [inout] Inputs for function wcslen_initialization:
       nondet
 [inout] Out (internal) for function wcslen_large:
-      Frama_C_entropy_source; a[0..99]; offset; z1; z2; z3; z4; z5
+      Frama_C_entropy_source; a[0..99]; offset; z1; tmp_0; z2; tmp_1; z3; 
+      tmp_2; z4; tmp_3; z5; tmp_4
 [inout] Inputs for function wcslen_large:
       Frama_C_entropy_source; nondet
 [inout] Out (internal) for function wcslen_large_uninit:
-      Frama_C_entropy_source; a{[0..39]; [50..94]; [98]}; offset; z1; z2; z3
+      Frama_C_entropy_source; a{[0..39]; [50..94]; [98]}; offset; z1; tmp_0; 
+      z2; tmp_1; z3; tmp_2
 [inout] Inputs for function wcslen_large_uninit:
       Frama_C_entropy_source; nondet
 [inout] Out (internal) for function zero_termination:
diff --git a/tests/non-free/strchr.c b/tests/non-free/strchr.c
index 3464a03ff391bd066795e96eea629ea8118e9757..03fc74d4c519ec45e2323e75af0f9d4b8baeaa39 100644
--- a/tests/non-free/strchr.c
+++ b/tests/non-free/strchr.c
@@ -45,30 +45,49 @@ const char* tab_str[TSZ] =
     "aaaaaaaaaaaa" ,
     "aaaaaaaaaaaaa" }; // 13
 
-int my_strchr(const char *s, size_t offs, int c) {
-  char *ss = strchr(s+offs,c);
-  int res;
-  if (ss == 0) {
-    res = -1;
-  } else {
-    res = ss - s;
-  }
-  Frama_C_show_each_mystrchr(res);
-  return res;
-}
-
-int my_strchr2(const void *base, size_t offs1, size_t offs2, int c) {
-  const char *p = ((const char *)base)+NONDET(offs1, offs2);
-  char *s = strchr(p,c);
-  int res;
-  if (s == 0) {
-    res = -1;
-  } else {
-    res = s - (char*)base;
-  }
-  Frama_C_show_each_mystrchr2(res);
-  return res;
-}
+#define STRCHR(lv_type, lv_var, _s, _offs, _c)  \
+  lv_type lv_var;                                  \
+  do {                                             \
+    char *_ss = strchr(_s+_offs,_c);               \
+    int _res;                                      \
+    if (_ss == 0) {                                \
+      _res = -1;                                   \
+    } else {                                       \
+      _res = _ss - _s;                             \
+    }                                              \
+    Frama_C_show_each_mystrchr(_res);              \
+    lv_var = _res;                                 \
+  } while (0)                                      \
+
+#define STRCHR_no_decl(lv_var, _s, _offs, _c)        \
+  do {                                                  \
+    char *_ss = strchr(_s+_offs,_c);                    \
+    int _res;                                           \
+    if (_ss == 0) {                                     \
+      _res = -1;                                        \
+    } else {                                            \
+      _res = _ss - _s;                                  \
+    }                                                   \
+    Frama_C_show_each_mystrchr(_res);                   \
+    lv_var = _res;                                      \
+  } while (0)                                           \
+
+#define STRCHR_bottom(s, offs, c) assert_bottom(strchr(s+offs,c), s)
+
+#define STRCHR2(lv_type, lv_var, _base, _offs1, _offs2, _c)          \
+  lv_type lv_var;                                                       \
+  do {                                                                  \
+    const char *_p = ((const char *)_base)+NONDET(_offs1, _offs2);      \
+    char *_s = strchr(_p,_c);                                           \
+    int _res;                                                           \
+    if (_s == 0) {                                                      \
+      _res = -1;                                                        \
+    } else {                                                            \
+      _res = _s - (char*)_base;                                         \
+    }                                                                   \
+    Frama_C_show_each_mystrchr2(_res);                                  \
+    lv_var = _res;                                                      \
+  } while (0)                                                           \
 
 //DELPHIC_TEST
 void strchr_small_sets() {
@@ -76,23 +95,23 @@ void strchr_small_sets() {
   CHAR_PTR(s);
   STRING(s,"abc");
   Ival o = NONDET(0, 1);
-  RES z1 = my_strchr(s, o, c);
+  STRCHR(RES, z1, s, o, c);
   //@ assert (z1 == 3);
   STRING(s,"\0bc");
   o = NONDET(0,1);
-  RES z2 = my_strchr(s, o, c);
+  STRCHR(RES, z2, s, o, c);
   //@ assert (z2 == 0 || z2 == 3);
   STRING(s,"");
-  RES z3 = my_strchr(s, 0, c);
+  STRCHR(RES, z3, s, 0, c);
   //@ assert (z3 == 0);
   STRING(s,"b\0c");
   o = NONDET(0,2);
-  RES z4 = my_strchr(s, o, c);
+  STRCHR(RES, z4, s, o, c);
   //@ assert (z4 == 1 || z4 == 3);
   CHAR_ARRAY(t, 4);
   t[0] = t[1] = NONDET(0, 1);
   t[2] = t[3] = 1;
-  RES z5 = my_strchr(t, 0, c); // warning
+  STRCHR(RES, z5, t, 0, c); // warning
   //@ assert (z5 == -1 || z5 == 0 || z5 == 1);
 }
 
@@ -101,18 +120,18 @@ void strchr_zero_termination() {
   CHAR c = 0;
   CHAR_ARRAY(empty_or_non_terminated, 1);
   empty_or_non_terminated[0] = NONDET(0, 100);
-  RES z1 = my_strchr(empty_or_non_terminated, 0, c); // alarm
+  STRCHR(RES, z1, empty_or_non_terminated, 0, c); // alarm
   //@ assert (z1 == -1 || z1 == 0);
 
   CHAR_ARRAY(non_terminated, 1);
   non_terminated[0] = 'X';
-  assert_bottom(my_strchr(non_terminated, 0, c), non_terminated);
+  STRCHR_bottom(non_terminated, 0, c);
 
   CHAR_ARRAY(non_terminated2, 4);
   non_terminated2[0] = 76; non_terminated2[1] = 0;
   non_terminated2[2] = 28; non_terminated2[3] = 14;
   Ival o = NONDET(2, 3);
-  assert_bottom(my_strchr(non_terminated2, 2, c), non_terminated2);
+  STRCHR_bottom(non_terminated2, 2, c);
 }
 
 //DELPHIC_TEST
@@ -120,23 +139,23 @@ void strchr_initialization() {
   CHAR c = 0;
   CHAR_ARRAY(empty_or_uninitialized, 1);
   IF_NONDET(empty_or_uninitialized[0], 0);
-  RES z1 = my_strchr(empty_or_uninitialized, 0, c); // alarm
+  STRCHR(RES, z1, empty_or_uninitialized, 0, c); // alarm
   //@ assert (z1 == 0);
 
   CHAR_ARRAY(uninitialized, 1);
-  assert_bottom(my_strchr(uninitialized, 0, c),uninitialized);
+  STRCHR_bottom(uninitialized, 0, c);
 
   CHAR_ARRAY(s, 2);
   IF_NONDET(s[0], 1);
   s[1] = 0;
-  RES z2 = my_strchr(s, 0, c); // alarm
+  STRCHR(RES, z2, s, 0, c); // alarm
   //@ assert (z2 == 1);
 
   CHAR_ARRAY(t,4);
   t[0] = t[1] = 10;
   IF_NONDET(t[2], 10);
   t[3] = 0;
-  RES z3 = my_strchr(t, 0, c); // alarm
+  STRCHR(RES, z3, t, 0, c); // alarm
   //@ assert (z3 == 3);
 }
 
@@ -171,7 +190,7 @@ void strchr_bitfields2() {
   s.c = 7;
   CHAR_PTR(p);
   p = &s;
-  RES z1 = my_strchr(p, 0, c);
+  STRCHR(RES, z1, p, 0, c);
   //@assert (z1 == 2);
 }
 
@@ -189,27 +208,27 @@ void strchr_large() {
   a[20] = 0;
   a[75] = 0;
   Ival offset = RANGE(3, 30);
-  RES z1 = my_strchr(a, offset, c);
+  STRCHR(RES, z1, a, offset, c);
   //@ assert (z1 == 20 || z1 <= 75);
 
   offset = RANGE(5, 17);
-  RES z2 = my_strchr(a, offset, c);
+  STRCHR(RES, z2, a, offset, c);
   //@ assert (z2 >= -1 && z2 <= 20);
   //@ assert refined: (z2 == 20);
 
   offset = RANGE(60, 74);
-  RES z3 = my_strchr(a, offset, c);
+  STRCHR(RES, z3, a, offset, c);
   //@ assert (z3 >= -1 && z3 <= 75);
   //@ assert refined: (z3 == 75);
 
   offset = RANGE(63, 80);
-  RES z4 = my_strchr(a, offset, c);
+  STRCHR(RES, z4, a, offset, c); // alarm
   //@ assert (z4 >= -1 && z4 <= 79);
   //@ assert refined: (z4 == 75);
 
   init_array_nondet(a, 0, 99, 0, 2);
   offset = RANGE(50, 70);
-  RES z5 = my_strchr(a, offset, c);
+  STRCHR(RES, z5, a, offset, c); // alarm
   //@ assert (z5 >= -1 && z5 <= 99);
 }
 
@@ -223,18 +242,18 @@ void strchr_large_uninit() {
   a[75] = 0;
 
   Ival offset = RANGE(3, 30);
-  RES z1 = my_strchr(a, offset, c); // alarm: Uninit
+  STRCHR(RES, z1, a, offset, c); // alarm: Uninit
   //@ assert (z1 >= -1 && z1 <= 29);
   //@ assert refined: (z1 == 20);
 
   a[98] = 0;
   offset = RANGE(63, 80);
-  RES z2 = my_strchr(a, offset, c); // alarm: Uninit
+  STRCHR(RES, z2, a, offset, c); // alarm: Uninit
   //@ assert (z2 >= -1 && z2 <= 79);
   //@ assert refined: (z2 == 75);
 
   offset = RANGE(45, 55);
-  RES z3 = my_strchr(a, offset, c); // alarm: Uninit
+  STRCHR(RES, z3, a, offset, c); // alarm: Uninit
   //@ assert (z3 >= -1 && z3 <= 75);
   //@ assert refined: (z3 == 75);
 
@@ -249,17 +268,17 @@ void strchr_escaping() {
     *((int *)s) = &x;
   }
   IF_NONDET(s[0], 0);
-  RES z1 = my_strchr(s, 0, c); // alarm
+  STRCHR(RES, z1, s, 0, c); // alarm
   //@ assert (z1 == 0);
   s[0] = 0;
-  RES z2 = my_strchr(s, 0, c); // no alarm
+  STRCHR(RES, z2, s, 0, c); // no alarm
   //@ assert (z2 == 0);
 }
 
 void strchr_misc_array() {
   CHAR c = 0;
   Ival i = RANGE(0,TSZ-1);
-  RES sz3 = my_strchr(tab_str[i], 0, c);
+  STRCHR(RES, sz3, tab_str[i], 0, c);
   //@ assert (sz3 >= 0 && sz3 <= 13);
 }
 
@@ -273,7 +292,6 @@ void strchr_misc() {
   CHAR_PTR(loc_str);
   STRING(loc_str, "Bonjour Monde\n");
   CHAR_ARRAY(loc_char_array, 5);
-  RES sz1,sz2,sz4a,sz4b,sz4c,sz4d;
   int x = 0xabcdef00;
   CHAR_PTR(str);
   CHAR_ARRAY(unterminated_string, 12);
@@ -290,49 +308,48 @@ void strchr_misc() {
   unterminated_string[10] = 'e';
   unterminated_string[11] = 'd';
 
-  assert_bottom(my_strchr(unterminated_string, 0, c),unterminated_string);
+  STRCHR_bottom(unterminated_string, 0, c);
 
   str = NONDET_STR2(static_str, loc_str);
-  sz1 = my_strchr(str, 0, c);  
+  STRCHR(RES, sz1, str, 0, c); // false alarm (pointers from 2 bases)
   //@ assert(sz1 == 12 || sz1 == 14);
   str = &x;
-  sz2 = my_strchr2(str, 0, 3, c);
+  STRCHR2(RES, sz2, str, 0, 3, c);
   //@ assert(sz2 == 0); // alarm
   loc_char_array[3] = '\0';
-  assert_bottom(my_strchr(loc_char_array, 0, c),loc_char_array);
-  sz4a = my_strchr(zero_str, 0, c);
+  STRCHR_bottom(loc_char_array, 0, c);
+  STRCHR(RES, sz4a, zero_str, 0, c);
   //@ assert(sz4a == 3);
-  sz4b = my_strchr(zero_str, 4, c);
+  STRCHR(RES, sz4b, zero_str, 4, c);
   //@ assert(sz4b == 4);
-  sz4c = my_strchr(zero_str, 5, c);
+  STRCHR(RES, sz4c, zero_str, 5, c);
   //@ assert(sz4c == 5);
-  sz4d = my_strchr(zero_str, 6, c);
+  STRCHR(RES, sz4d, zero_str, 6, c);
   //@ assert(sz4d == 9);
 }
 
 //DELPHIC_TEST
 void strchr_misc2() {
   CHAR c = 0;
-  RES sz5,sz6,sz7,sz8;
   CHAR_PTR(s1);
   s1 = NONDET_STR("abc", "ABCD");
-  sz5 = my_strchr2(s1, 0, 1, c);
+  STRCHR2(RES, sz5, s1, 0, 1, c);
   //@ assert (sz5 == 3 || sz5 == 4);
 
   s1 = NONDET_STR("efg", "EFGH");
-  sz6 = my_strchr2(s1, 1, 2, c);
+  STRCHR2(RES, sz6, s1, 1, 2, c);
   //@ assert (sz6 == 3 || sz6 == 4);
 
   s1 = NONDET_STR("mno\0pqr", "MNOP\0QRS");
   for (int j = 0; j < 8; j++) {
-    sz7 = my_strchr(s1, j, c);
+    STRCHR(RES, sz7, s1, j, c);
     //@ assert (sz7 == 3 || sz7 == 4 || sz7 == 7 || sz7 == 8);
   }
 
   CHAR_ARRAY(maybe_init, 2);
   maybe_init[1] = '\0';
   IF_NONDET(maybe_init[0], 'A');
-  sz8 = my_strchr(maybe_init, 0, c); // alarm
+  STRCHR(RES, sz8, maybe_init, 0, c); // alarm
   //@ assert(sz8 == 1);
 }
 
@@ -354,19 +371,19 @@ void strchr_big_array () {
   long len_u;
   long len_r;
   long len_t;
-
+  // All strchr calls in this function emit alarms due to preconditions.
   // without initialization, most accesses are invalid, so the result is precise
-  len_u = my_strchr((char const *)u, 0, c); // below plevel; precise
-  len_r = my_strchr((char const *)r, 0, c); // above plevel; imprecise
-  len_t = my_strchr((char const *)t, 0, c); // *far* above plevel
+  STRCHR_no_decl(len_u, (char const *)u, 0, c); // below plevel; precise
+  STRCHR_no_decl(len_r, (char const *)r, 0, c); // above plevel; imprecise
+  STRCHR_no_decl(len_t, (char const *)t, 0, c); // *far* above plevel
   Frama_C_show_each(len_u, len_r, len_t);
   //@ assert (len_u == 1);
   //@ assert (len_r == 1);
   //@ assert (len_t == 1);
 
-  len_u = my_strchr((char const *)u, nondet, c); // should be precise
-  len_r = my_strchr((char const *)r, nondet, c);
-  len_t = my_strchr((char const *)t, nondet, c);
+  STRCHR_no_decl(len_u, (char const *)u, nondet, c); // should be precise
+  STRCHR_no_decl(len_r, (char const *)r, nondet, c);
+  STRCHR_no_decl(len_t, (char const *)t, nondet, c);
   Frama_C_show_each(len_u, len_r, len_t);
   //@ assert (len_u >= -1 && len_u <= 799);
   //@ assert (len_r >= -1 && len_r <= 803);
@@ -384,17 +401,17 @@ void strchr_big_array () {
   *p = 0x10230067;
   p = &t[nondet];
   *p = 0x10230067;
-  len_u = my_strchr((char const *)u, 0, c); // below plevel; precise
-  len_r = my_strchr((char const *)r, 0, c); // above plevel; imprecise
-  len_t = my_strchr((char const *)t, 0, c); // *far* above plevel
+  STRCHR_no_decl(len_u, (char const *)u, 0, c); // below plevel; precise
+  STRCHR_no_decl(len_r, (char const *)r, 0, c); // above plevel; imprecise
+  STRCHR_no_decl(len_t, (char const *)t, 0, c); // *far* above plevel
   Frama_C_show_each(len_u, len_r, len_t);
   //@ assert (len_u >= 0 && len_u <= 799);
   //@ assert (len_r >= 0 && len_r <= 803);
   //@ assert (len_t >= 0 && len_t <= 3999999);
 
-  len_u = my_strchr((char const *)u, nondet, c); // should be precise
-  len_r = my_strchr((char const *)r, nondet, c);
-  len_t = my_strchr((char const *)t, nondet, c);
+  STRCHR_no_decl(len_u, (char const *)u, nondet, c); // should be precise
+  STRCHR_no_decl(len_r, (char const *)r, nondet, c);
+  STRCHR_no_decl(len_t, (char const *)t, nondet, c);
   Frama_C_show_each(len_u, len_r, len_t);
   //@ assert (len_u >= -1 && len_u <= 799);
   //@ assert (len_r >= -1 && len_r <= 803);
@@ -412,18 +429,18 @@ void strchr_no_zero_but_ok() {
   s[10] = 0;
   s[11] = s[12] = s[13] = 1;
   s[14] = s[15] = s[16] = s[17] = s[18] = s[19] = NONDET(1, 0);
-  RES z1 = my_strchr(s, 0, c);
+  STRCHR(RES, z1, s, 0, c);
   //@assert (z1 == 10);
-  RES z2 = my_strchr(s, 0, c);
+  STRCHR(RES, z2, s, 0, c);
   //@assert (z2 == 10);
   Ival offs = NONDET(1, 8);
-  RES z3 = my_strchr(s, offs, c);
+  STRCHR(RES, z3, s, offs, c);
   //@assert (z3 == 10);
   offs = NONDET(7, 11);
-  RES z4 = my_strchr(s, offs, c);
+  STRCHR(RES, z4, s, offs, c); // alarm
   //@assert (z4 >= -1 && z4 <= 19);
   offs = NONDET(7, 18);
-  RES z5 = my_strchr(s, offs, c);
+  STRCHR(RES, z5, s, offs, c); // alarm
   //@assert (z5 == -1 || z5 == 10 || z5 == 18 || z5 == 19);
 }
 
@@ -432,19 +449,20 @@ int strchr_small_sets_no_assertions(CHAR c, RES *res) {
   CHAR_PTR(s);
   STRING(s,"abc");
   Ival o = NONDET(0, 1);
-  res[0] = my_strchr(s, o, c);
+  STRCHR_no_decl(res[0], s, o, c);
   STRING(s,"\0bc");
   o = NONDET(0,1);
-  res[1] = my_strchr(s, o, c);
+  STRCHR_no_decl(res[1], s, o, c);
   STRING(s,"");
-  res[2] = my_strchr(s, 0, c);
+  STRCHR_no_decl(res[2], s, 0, c);
   STRING(s,"b\0c");
   o = NONDET(0,2);
-  res[3] = my_strchr(s, o, c);
+  STRCHR_no_decl(res[3], s, o, c);
   CHAR_ARRAY(t, 4);
   t[0] = t[1] = NONDET(c, 1);
-  t[2] = t[3] = 1;
-  /*  res[4] = my_strchr(t, 0, c); Invalid: t is not a string */
+  t[2] = 1;
+  t[3] = 0;
+  STRCHR_no_decl(res[4], t, 0, c);
   return 0;
 }
 
@@ -501,31 +519,31 @@ void strchr_small_sets_chars() {
   //@ assert (res[1] >= -1 && res[1] <= 3); // no alarm
   //@ assert (res[2] == -1 || res[2] == 0); // no alarm
   //@ assert (res[3] >= -1 && res[3] <= 3); // no alarm
-  //@ assert (res[4] == -1 || res[4] == 0 || res[4] == 1); // alarm
+  //@ assert (res[4] == -1 || res[4] == 0 || res[4] == 1 || res[4] == 3); // alarm
 }
 
 void strchr_unbounded() {
   CHAR c = nondet;
   CHAR_PTR(s);
   STRING(s,"abcd");
-  RES u1 = my_strchr(s, 0, c);
+  STRCHR(RES, u1, s, 0, c);
   //@ assert (u1 >= -1 && u1 <= 4); // no alarm
   STRING(s,"ABCDEFGHIJKLMNOPQRSTUVWXYZ");
   CHAR_ARRAY(t,30); // uninitialized
   IF_NONDET(s, t);
-  RES u2 = my_strchr(s, 0, c);
+  STRCHR(RES, u2, s, 0, c); // alarm
   //@ assert (u2 >= -1 && u2 <= 26); // alarm
   init_array_nondet(t, 0, 29, 0, 1);
-  RES u3 = my_strchr(s, 0, c);
+  STRCHR(RES, u3, s, 0, c); // alarm
   //@ assert (u3 >= -1 && u3 <= 29); // alarm
-  RES u4 = my_strchr(s, nondet, c);
+  STRCHR(RES, u4, s, nondet, c); // alarm
   //@ assert (u4 >= -1 && u4 <= 29); // alarm
 }
 
 void strchr_invalid() {
   CHAR_PTR(s);
   STRING(s,"hello");
-  my_strchr(s, (unsigned int)&s, 1);
+  STRCHR(RES, unused, s, (unsigned int)&s, 1); // alarm
 }
 
 void strchr_garbled_mix_in_char() {
diff --git a/tests/non-free/strlen.c b/tests/non-free/strlen.c
index 3b0e9a7916d2a9870b34bb953291805fd2d01f49..91cf082a9ab75f2a1500cd3170dc0fafe4569e32 100644
--- a/tests/non-free/strlen.c
+++ b/tests/non-free/strlen.c
@@ -50,9 +50,9 @@ const char* tab_str[TSZ] =
 
 char unterminated_string[12] = "unterminated";
 
-int my_strlen(const char *s, size_t offs) {
-  return strlen(s+offs);
-}
+#define STRLEN(s, offs) strlen(s+offs)
+
+
 
 void small_sets() {
   char *s = "abc";
@@ -102,18 +102,18 @@ void zero_termination() {
 void strlen_initialization() {
   CHAR_ARRAY(empty_or_uninitialized, 1);
   IF_NONDET(empty_or_uninitialized[0], 0);
-  RES z1 = my_strlen(empty_or_uninitialized, 0);
+  RES z1 = STRLEN(empty_or_uninitialized, 0); // alarm
   //@ assert (z1 == 0);
 
   CHAR_ARRAY(uninitialized, 1);
-  assert_bottom(my_strlen(uninitialized, 0), uninitialized);
+  assert_bottom(STRLEN(uninitialized, 0), uninitialized);
 
   CHAR_ARRAY(s, 2);
   IF_NONDET(s[0], 1);
   s[1] = 0;
   CHAR_PTR(p);
   p = s;
-  RES z2 = my_strlen(p, 0);
+  RES z2 = STRLEN(p, 0); // alarm
   //@ assert (z2 == 1);
 
   CHAR_ARRAY(t, 4);
@@ -121,7 +121,7 @@ void strlen_initialization() {
   IF_NONDET(t[2], 10);
   t[3] = 0;
   p = t;
-  RES z3 = my_strlen(p, 0);
+  RES z3 = STRLEN(p, 0); // alarm
   //@ assert (z3 == 3);
 }
 
@@ -169,24 +169,24 @@ void strlen_large() {
   a[20] = 0;
   a[75] = 0;
   Ival offset = RANGE(3, 30);
-  RES z1 = my_strlen(a, offset);
+  RES z1 = STRLEN(a, offset);
   //@ assert (z1 >= 0 && z1 <= 54);
 
   offset = RANGE(5, 17);
-  RES z2 = my_strlen(a, offset);
+  RES z2 = STRLEN(a, offset);
   //@ assert (z2 >= 3 && z2 <= 15);
 
   offset = RANGE(60, 74);
-  RES z3 = my_strlen(a, offset);
+  RES z3 = STRLEN(a, offset);
   //@ assert (z3 >= 1 && z3 <= 15);
 
   offset = RANGE(63, 80);
-  RES z4 = my_strlen(a, offset);
+  RES z4 = STRLEN(a, offset); // alarm
   //@ assert (z4 >= 0 && z4 <= 12);
 
   init_array_nondet(a, 0, 99, 0, 2);
   offset = RANGE(50, 70);
-  RES z5 = my_strlen(a, offset);
+  RES z5 = STRLEN(a, offset); // alarm
   //@ assert (z5 >= 0 && z5 <= 49);
 
 }
@@ -200,16 +200,16 @@ void strlen_large_uninit() {
   a[75] = 0;
 
   Ival offset = RANGE(3, 30);
-  RES z1 = my_strlen(a, offset);
+  RES z1 = STRLEN(a, offset); // alarm
   //@ assert (z1 >= 0 && z1 <= 17);
 
   a[98] = 0;
   offset = RANGE(63, 80);
-  RES z2 = my_strlen(a, offset);
+  RES z2 = STRLEN(a, offset); // alarm
   //@ assert (z2 >= 0 && z2 <= 12);
 
   offset = RANGE(45, 55);
-  RES z3 = my_strlen(a, offset);
+  RES z3 = STRLEN(a, offset); // alarm
   //@ assert (z3 >= 20 && z3 <= 25);
 
   offset = 0; // avoid oracle diffs when changed
diff --git a/tests/non-free/strnlen2.c b/tests/non-free/strnlen2.c
index 6f3fe740a583f5c0baab2eb818acd8ab500bee19..577a532d5a5692a03441a148a55c56b8362ac5dc 100644
--- a/tests/non-free/strnlen2.c
+++ b/tests/non-free/strnlen2.c
@@ -15,7 +15,7 @@ typedef int Ival;
 #define NONDET(a,b) (nondet ? (a) : (b))
 #define IF_NONDET(var,val) if (nondet) var = val
 #define RANGE(from,to) Frama_C_interval(from,to)
-#define my_strnlen(base,offs,n) strnlen(base+offs,n)
+#define STRNLEN(base,offs,n) strnlen(base+offs,n)
 #define CHAR_ARRAY(var,n) char var[n]
 #define CHAR_PTR(var) char *var
 #define STRING(var,str) var = str;
@@ -42,41 +42,41 @@ void small_sets() {
   CHAR_PTR(s);
   STRING(s,"abc");
   Ival o = NONDET(0, 1);
-  RES z1 = my_strnlen(s, o, 3);
+  RES z1 = STRNLEN(s, o, 3);
   //@ assert (z1 == 2 || z1 == 3);
   STRING(s,"\0bc");
   o = NONDET(0,1);
-  RES z2 = my_strnlen(s, o, 2);
+  RES z2 = STRNLEN(s, o, 2);
   //@ assert (z2 == 0 || z2 == 2);
   STRING(s,"");
-  RES z3 = my_strnlen(s, 0, 0);
+  RES z3 = STRNLEN(s, 0, 0);
   //@ assert (z3 == 0);
   STRING(s,"b\0c");
   o = NONDET(0,2);
-  RES z4 = my_strnlen(s, o, 2);
+  RES z4 = STRNLEN(s, o, 2);
   //@ assert (z4 == 1);
   CHAR_ARRAY(t, 4);
   t[0] = t[1] = NONDET(0, 1);
   t[2] = t[3] = 1;
-  RES z5 = my_strnlen(t, 0, 4); // no warning
+  RES z5 = STRNLEN(t, 0, 4); // no warning
   //@ assert z5 == 0 || z5 == 1 || z5 == 4;
 }
 
 void zero_termination() {
   CHAR_ARRAY(empty_or_non_terminated, 1);
   empty_or_non_terminated[0] = NONDET(0, 100);
-  RES z1 = my_strnlen(empty_or_non_terminated, 0, 1);
+  RES z1 = STRNLEN(empty_or_non_terminated, 0, 1);
   //@ assert z1 == 0 || z1 == 1;
 
   CHAR_ARRAY(non_terminated, 1);
   non_terminated[0] = 'X';
-  assert_bottom(my_strnlen(non_terminated, 0, 2), non_terminated);
+  assert_bottom(STRNLEN(non_terminated, 0, 2), non_terminated);
 
   CHAR_ARRAY(non_terminated2, 4);
   non_terminated2[0] = 76; non_terminated2[1] = 0;
   non_terminated2[2] = 28; non_terminated2[3] = 14;
   Ival o = NONDET(2, 3);
-  assert_bottom(my_strnlen(non_terminated2, o, 4), non_terminated2);
+  assert_bottom(STRNLEN(non_terminated2, o, 4), non_terminated2);
 }
 
 void initialization() {
@@ -145,24 +145,24 @@ void large() {
   a[20] = 0;
   a[75] = 0;
   Ival offset = RANGE(3, 30);
-  RES z1 = my_strnlen(a, offset, 100);
+  RES z1 = STRNLEN(a, offset, 100);
   //@ assert (z1 >= 0 && z1 <= 54);
 
   offset = RANGE(5, 17);
-  RES z2 = my_strnlen(a, offset, 100);
+  RES z2 = STRNLEN(a, offset, 100);
   //@ assert (z2 >= 3 && z2 <= 15);
 
   offset = RANGE(60, 74);
-  RES z3 = my_strnlen(a, offset, 100);
+  RES z3 = STRNLEN(a, offset, 100);
   //@ assert (z3 >= 1 && z3 <= 15);
 
   offset = RANGE(63, 80);
-  RES z4 = my_strnlen(a, offset, 100);
+  RES z4 = STRNLEN(a, offset, 100);
   //@ assert (z4 >= 0 && z4 <= 12);
 
   init_array_nondet(a, 0, 99, 0, 2);
   offset = RANGE(50, 70);
-  RES z5 = my_strnlen(a, offset, 100);
+  RES z5 = STRNLEN(a, offset, 100);
   //@ assert (z5 >= 0 && z5 <= 49);
 }
 
@@ -174,16 +174,16 @@ void large_uninit() {
   a[75] = 0;
 
   Ival offset = RANGE(3, 30);
-  RES z1 = my_strnlen(a, offset, 100);
+  RES z1 = STRNLEN(a, offset, 100);
   //@ assert (z1 >= 0 && z1 <= 17);
 
   a[98] = 0;
   offset = RANGE(63, 80);
-  RES z2 = my_strnlen(a, offset, 100);
+  RES z2 = STRNLEN(a, offset, 100);
   //@ assert (z2 >= 0 && z2 <= 12);
 
   offset = RANGE(45, 55);
-  RES z3 = my_strnlen(a, offset, 100);
+  RES z3 = STRNLEN(a, offset, 100);
   //@ assert (z3 >= 20 && z3 <= 25);
 
   offset = 0; // avoid oracle diffs when changed
@@ -376,42 +376,42 @@ void large_n() {
   a[75] = 0;
   Ival offset = RANGE(3, 30);
   Ival n = RANGE(10, 20);
-  RES z1 = my_strnlen(a, offset, n);
+  RES z1 = STRNLEN(a, offset, n);
   //@assert z1 <= 12;
 
   a[28] = 1;
   a[29] = 0;
-  RES z2 = my_strnlen(a, offset, n);
+  RES z2 = STRNLEN(a, offset, n);
   //@assert z2 <= 13;
 
   a[40] = 1;
-  RES z3 = my_strnlen(a, offset, n); // no alarm
+  RES z3 = STRNLEN(a, offset, n); // no alarm
   //@assert z3 <= 20;
 
   offset = RANGE(5, 17);
-  RES z4 = my_strnlen(a, offset, n);
+  RES z4 = STRNLEN(a, offset, n);
   //@assert z4 <= 13;
 
   offset = RANGE(60, 74);
-  RES z5 = my_strnlen(a, offset, n);
+  RES z5 = STRNLEN(a, offset, n);
   //@assert z5 >= 1 && z5 <= 15;
 
   offset = RANGE(63, 80);
-  RES z6 = my_strnlen(a, offset, n); // no alarm
+  RES z6 = STRNLEN(a, offset, n); // no alarm
   //@assert z6 <= 20;
 
   init_array_nondet(a, 0, 99, 0, 2);
   offset = RANGE(50, 70);
-  RES z7 = my_strnlen(a, offset, n);
+  RES z7 = STRNLEN(a, offset, n);
   //@assert z7 <= 20;
 
   n = RANGE(0, 100);
-  RES z8 = my_strnlen(a, offset, n); // alarm
+  RES z8 = STRNLEN(a, offset, n); // alarm
   //@assert z8 <= 50;
 
   offset = RANGE(0, 10);
   n = RANGE(0, 90);
-  RES z9 = my_strnlen(a, offset, n); // no alarm
+  RES z9 = STRNLEN(a, offset, n); // no alarm
   //@assert z9 <= 90;
 }
 
@@ -440,47 +440,47 @@ void intervals() {
 
   Ival offset = RANGE(0,9);
   Ival n = RANGE(0, 9);
-  RES z1 = my_strnlen(a, offset, n);
+  RES z1 = STRNLEN(a, offset, n);
   //@ assert z1 >= 0 && z1 <= 9;
 
   offset = RANGE(3,9);
   n = RANGE(2,10);
-  RES z2 = my_strnlen(a, offset, n);
+  RES z2 = STRNLEN(a, offset, n);
   //@ assert z2 >= 0 && z2 <= 7;
 
   offset = RANGE(3,9);
   n = RANGE(0,11);
-  RES z3 = my_strnlen(a, offset, n);
+  RES z3 = STRNLEN(a, offset, n);
   //@ assert z3 >= 0 && z3 <= 7;
 
   offset = RANGE(3,10);
   n = RANGE(0,9);
-  RES z4 = my_strnlen(a, offset, n);
+  RES z4 = STRNLEN(a, offset, n);
   //@ assert z4 >= 0 && z4 <= 7;
 
   offset = RANGE(3,10);
   n = RANGE(0,10);
-  RES z5 = my_strnlen(a, offset, n);
+  RES z5 = STRNLEN(a, offset, n);
   //@ assert z5 >= 0 && z5 <= 7;
 
   offset = RANGE(3,10);
   n = RANGE(0,11);
-  RES z6 = my_strnlen(a, offset, n);
+  RES z6 = STRNLEN(a, offset, n);
   //@ assert z6 >= 0 && z6 <= 7;
 
   offset = RANGE(3,11);
   n = RANGE(0,9);
-  RES z7 = my_strnlen(a, offset, n);
+  RES z7 = STRNLEN(a, offset, n);
   //@ assert z7 >= 0 && z7 <= 9;
 
   offset = RANGE(3,11);
   n = RANGE(0,10);
-  RES z8 = my_strnlen(a, offset, n);
+  RES z8 = STRNLEN(a, offset, n);
   //@ assert z8 >= 0 && z8 <= 9;
 
   offset = RANGE(3,11);
   n = RANGE(0,11);
-  RES z9 = my_strnlen(a, offset, n);
+  RES z9 = STRNLEN(a, offset, n);
   //@ assert z9 >= 0 && z9 <= 9;
 }
 
diff --git a/tests/non-free/wcslen.c b/tests/non-free/wcslen.c
index f3bf937c7170bf68bab98dc9e3d05fa302c6f0db..906cc2d487f187e2fb1c8c90de19bea7bed56419 100644
--- a/tests/non-free/wcslen.c
+++ b/tests/non-free/wcslen.c
@@ -50,9 +50,9 @@ const wchar_t* tab_str[TSZ] =
 
 wchar_t unterminated_string[12] = L"unterminated";
 
-int my_wcslen(const wchar_t *s, size_t offs) {
-  return wcslen(s+offs);
-}
+#define WCSLEN(s, offs) wcslen(s+offs)
+
+
 
 void small_sets() {
   wchar_t *s = L"abc";
@@ -102,18 +102,18 @@ void zero_termination() {
 void wcslen_initialization() {
   CHAR_ARRAY(empty_or_uninitialized, 1);
   IF_NONDET(empty_or_uninitialized[0], 0);
-  RES z1 = my_wcslen(empty_or_uninitialized, 0);
+  RES z1 = WCSLEN(empty_or_uninitialized, 0); // alarm
   //@ assert (z1 == 0);
 
   CHAR_ARRAY(uninitialized, 1);
-  assert_bottom(my_wcslen(uninitialized, 0), uninitialized);
+  assert_bottom(WCSLEN(uninitialized, 0), uninitialized);
 
   CHAR_ARRAY(s, 2);
   IF_NONDET(s[0], 1);
   s[1] = 0;
   CHAR_PTR(p);
   p = s;
-  RES z2 = my_wcslen(p, 0);
+  RES z2 = WCSLEN(p, 0); // alarm
   //@ assert (z2 == 1);
 
   CHAR_ARRAY(t, 4);
@@ -121,7 +121,7 @@ void wcslen_initialization() {
   IF_NONDET(t[2], 10);
   t[3] = 0;
   p = t;
-  RES z3 = my_wcslen(p, 0);
+  RES z3 = WCSLEN(p, 0); // alarm
   //@ assert (z3 == 3);
 }
 
@@ -169,24 +169,24 @@ void wcslen_large() {
   a[20] = 0;
   a[75] = 0;
   Ival offset = RANGE(3, 30);
-  RES z1 = my_wcslen(a, offset);
+  RES z1 = WCSLEN(a, offset);
   //@ assert (z1 >= 0 && z1 <= 54);
 
   offset = RANGE(5, 17);
-  RES z2 = my_wcslen(a, offset);
+  RES z2 = WCSLEN(a, offset);
   //@ assert (z2 >= 3 && z2 <= 15);
 
   offset = RANGE(60, 74);
-  RES z3 = my_wcslen(a, offset);
+  RES z3 = WCSLEN(a, offset);
   //@ assert (z3 >= 1 && z3 <= 15);
 
   offset = RANGE(63, 80);
-  RES z4 = my_wcslen(a, offset);
+  RES z4 = WCSLEN(a, offset); // alarm
   //@ assert (z4 >= 0 && z4 <= 12);
 
   init_array_nondet(a, 0, 99, 0, 2);
   offset = RANGE(50, 70);
-  RES z5 = my_wcslen(a, offset);
+  RES z5 = WCSLEN(a, offset); // alarm
   //@ assert (z5 >= 0 && z5 <= 49);
 
 }
@@ -200,16 +200,16 @@ void wcslen_large_uninit() {
   a[75] = 0;
 
   Ival offset = RANGE(3, 30);
-  RES z1 = my_wcslen(a, offset);
+  RES z1 = WCSLEN(a, offset); // alarm
   //@ assert (z1 >= 0 && z1 <= 17);
 
   a[98] = 0;
   offset = RANGE(63, 80);
-  RES z2 = my_wcslen(a, offset);
+  RES z2 = WCSLEN(a, offset); // alarm
   //@ assert (z2 >= 0 && z2 <= 12);
 
   offset = RANGE(45, 55);
-  RES z3 = my_wcslen(a, offset);
+  RES z3 = WCSLEN(a, offset); // alarm
   //@ assert (z3 >= 20 && z3 <= 25);
 
   offset = 0; // avoid oracle diffs when changed