diff --git a/src/plugins/e-acsl/tests/builtin/oracle/gen_strcat.c b/src/plugins/e-acsl/tests/builtin/oracle/gen_strcat.c
index f7d372e60cde991df567ff8fa17a5fb74b33c5f4..eaf0299d252f1c453d54238fcfe556737e36e511 100644
--- a/src/plugins/e-acsl/tests/builtin/oracle/gen_strcat.c
+++ b/src/plugins/e-acsl/tests/builtin/oracle/gen_strcat.c
@@ -35,173 +35,184 @@ char *__gen_e_acsl_literal_string_4;
 char *__gen_e_acsl_literal_string_7;
 /*@ assigns \result;
     assigns \result \from \nothing; */
-extern int ( /* missing proto */ fork)();
+extern int ( /* missing proto */ fork)(void);
 
 void __e_acsl_globals_init(void)
 {
-  __gen_e_acsl_literal_string_29 = "tests/builtin/strcat.c:50";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_29,
-                       sizeof("tests/builtin/strcat.c:50"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_29);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_29);
-  __gen_e_acsl_literal_string_28 = "tests/builtin/strcat.c:49";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_28,
-                       sizeof("tests/builtin/strcat.c:49"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_28);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_28);
-  __gen_e_acsl_literal_string_27 = "tests/builtin/strcat.c:48";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_27,
-                       sizeof("tests/builtin/strcat.c:48"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_27);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_27);
-  __gen_e_acsl_literal_string_26 = "tests/builtin/strcat.c:46";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_26,
-                       sizeof("tests/builtin/strcat.c:46"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_26);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_26);
-  __gen_e_acsl_literal_string_25 = "tests/builtin/strcat.c:45";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_25,
-                       sizeof("tests/builtin/strcat.c:45"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_25);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_25);
-  __gen_e_acsl_literal_string_24 = "tests/builtin/strcat.c:44";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_24,
-                       sizeof("tests/builtin/strcat.c:44"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_24);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_24);
-  __gen_e_acsl_literal_string_23 = "tests/builtin/strcat.c:43";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_23,
-                       sizeof("tests/builtin/strcat.c:43"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_23);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_23);
-  __gen_e_acsl_literal_string_22 = "tests/builtin/strcat.c:42";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_22,
-                       sizeof("tests/builtin/strcat.c:42"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_22);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_22);
-  __gen_e_acsl_literal_string_21 = "tests/builtin/strcat.c:41";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_21,
-                       sizeof("tests/builtin/strcat.c:41"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_21);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_21);
-  __gen_e_acsl_literal_string_20 = "tests/builtin/strcat.c:40";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_20,
-                       sizeof("tests/builtin/strcat.c:40"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_20);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_20);
-  __gen_e_acsl_literal_string_19 = "tests/builtin/strcat.c:37";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_19,
-                       sizeof("tests/builtin/strcat.c:37"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_19);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_19);
-  __gen_e_acsl_literal_string_18 = "tests/builtin/strcat.c:36";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_18,
-                       sizeof("tests/builtin/strcat.c:36"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_18);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_18);
-  __gen_e_acsl_literal_string_17 = "tests/builtin/strcat.c:35";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_17,
-                       sizeof("tests/builtin/strcat.c:35"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_17);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_17);
-  __gen_e_acsl_literal_string_16 = "tests/builtin/strcat.c:34";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_16,
-                       sizeof("tests/builtin/strcat.c:34"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_16);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_16);
-  __gen_e_acsl_literal_string_15 = "tests/builtin/strcat.c:33";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_15,
-                       sizeof("tests/builtin/strcat.c:33"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_15);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_15);
-  __gen_e_acsl_literal_string_14 = "tests/builtin/strcat.c:32";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_14,
-                       sizeof("tests/builtin/strcat.c:32"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_14);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_14);
-  __gen_e_acsl_literal_string_13 = "tests/builtin/strcat.c:31";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_13,
-                       sizeof("tests/builtin/strcat.c:31"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_13);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_13);
-  __gen_e_acsl_literal_string_12 = "tests/builtin/strcat.c:30";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_12,
-                       sizeof("tests/builtin/strcat.c:30"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_12);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_12);
-  __gen_e_acsl_literal_string_11 = "tests/builtin/strcat.c:29";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_11,
-                       sizeof("tests/builtin/strcat.c:29"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_11);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_11);
-  __gen_e_acsl_literal_string_10 = "tests/builtin/strcat.c:28";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_10,
-                       sizeof("tests/builtin/strcat.c:28"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_10);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_10);
-  __gen_e_acsl_literal_string_9 = "tests/builtin/strcat.c:27";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_9,
-                       sizeof("tests/builtin/strcat.c:27"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_9);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_9);
-  __gen_e_acsl_literal_string_8 = "tests/builtin/strcat.c:26";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_8,
-                       sizeof("tests/builtin/strcat.c:26"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_8);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_8);
-  __gen_e_acsl_literal_string_6 = "abcd";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_6,sizeof("abcd"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_6);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_6);
-  __gen_e_acsl_literal_string = "TEST %d: ";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string,
-                       sizeof("TEST %d: "));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string);
-  __gen_e_acsl_literal_string_2 = "OK: Expected signal at %s\n";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_2,
-                       sizeof("OK: Expected signal at %s\n"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_2);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_2);
-  __gen_e_acsl_literal_string_3 = "OK: Expected execution at %s\n";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_3,
-                       sizeof("OK: Expected execution at %s\n"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_3);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_3);
-  __gen_e_acsl_literal_string_5 = "FAIL: Unexpected signal at %s\n";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_5,
-                       sizeof("FAIL: Unexpected signal at %s\n"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_5);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_5);
-  __gen_e_acsl_literal_string_4 = "FAIL: Unexpected execution at %s\n";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_4,
-                       sizeof("FAIL: Unexpected execution at %s\n"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_4);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_4);
-  __gen_e_acsl_literal_string_7 = "";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_7,sizeof(""));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_7);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_7);
-  __e_acsl_store_block((void *)(& __gen_e_acsl_strncat),(size_t)1);
-  __e_acsl_full_init((void *)(& __gen_e_acsl_strncat));
-  __e_acsl_store_block((void *)(& __gen_e_acsl_strcat),(size_t)1);
-  __e_acsl_full_init((void *)(& __gen_e_acsl_strcat));
-  __e_acsl_store_block((void *)(& __gen_e_acsl_exit),(size_t)1);
-  __e_acsl_full_init((void *)(& __gen_e_acsl_exit));
-  __e_acsl_store_block((void *)(& __fc_strtok_ptr),(size_t)8);
-  __e_acsl_full_init((void *)(& __fc_strtok_ptr));
-  __e_acsl_store_block((void *)(& signal_eval),(size_t)1);
-  __e_acsl_full_init((void *)(& signal_eval));
-  __e_acsl_store_block((void *)(& testno),(size_t)4);
-  __e_acsl_full_init((void *)(& testno));
-  __e_acsl_store_block((void *)(& __fc_time),(size_t)4);
-  __e_acsl_full_init((void *)(& __fc_time));
-  __e_acsl_store_block((void *)(& __fc_p_fopen),(size_t)8);
-  __e_acsl_full_init((void *)(& __fc_p_fopen));
-  __e_acsl_store_block((void *)(__fc_fopen),(size_t)128);
-  __e_acsl_full_init((void *)(& __fc_fopen));
-  __e_acsl_store_block((void *)(& __fc_rand_max),(size_t)8);
-  __e_acsl_full_init((void *)(& __fc_rand_max));
+  static char __e_acsl_already_run = 0;
+  if (! __e_acsl_already_run) {
+    __e_acsl_already_run = 1;
+    __gen_e_acsl_literal_string_29 = "tests/builtin/strcat.c:50";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_29,
+                         sizeof("tests/builtin/strcat.c:50"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_29);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_29);
+    __gen_e_acsl_literal_string_28 = "tests/builtin/strcat.c:49";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_28,
+                         sizeof("tests/builtin/strcat.c:49"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_28);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_28);
+    __gen_e_acsl_literal_string_27 = "tests/builtin/strcat.c:48";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_27,
+                         sizeof("tests/builtin/strcat.c:48"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_27);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_27);
+    __gen_e_acsl_literal_string_26 = "tests/builtin/strcat.c:46";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_26,
+                         sizeof("tests/builtin/strcat.c:46"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_26);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_26);
+    __gen_e_acsl_literal_string_25 = "tests/builtin/strcat.c:45";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_25,
+                         sizeof("tests/builtin/strcat.c:45"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_25);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_25);
+    __gen_e_acsl_literal_string_24 = "tests/builtin/strcat.c:44";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_24,
+                         sizeof("tests/builtin/strcat.c:44"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_24);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_24);
+    __gen_e_acsl_literal_string_23 = "tests/builtin/strcat.c:43";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_23,
+                         sizeof("tests/builtin/strcat.c:43"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_23);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_23);
+    __gen_e_acsl_literal_string_22 = "tests/builtin/strcat.c:42";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_22,
+                         sizeof("tests/builtin/strcat.c:42"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_22);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_22);
+    __gen_e_acsl_literal_string_21 = "tests/builtin/strcat.c:41";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_21,
+                         sizeof("tests/builtin/strcat.c:41"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_21);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_21);
+    __gen_e_acsl_literal_string_20 = "tests/builtin/strcat.c:40";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_20,
+                         sizeof("tests/builtin/strcat.c:40"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_20);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_20);
+    __gen_e_acsl_literal_string_19 = "tests/builtin/strcat.c:37";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_19,
+                         sizeof("tests/builtin/strcat.c:37"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_19);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_19);
+    __gen_e_acsl_literal_string_18 = "tests/builtin/strcat.c:36";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_18,
+                         sizeof("tests/builtin/strcat.c:36"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_18);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_18);
+    __gen_e_acsl_literal_string_17 = "tests/builtin/strcat.c:35";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_17,
+                         sizeof("tests/builtin/strcat.c:35"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_17);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_17);
+    __gen_e_acsl_literal_string_16 = "tests/builtin/strcat.c:34";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_16,
+                         sizeof("tests/builtin/strcat.c:34"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_16);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_16);
+    __gen_e_acsl_literal_string_15 = "tests/builtin/strcat.c:33";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_15,
+                         sizeof("tests/builtin/strcat.c:33"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_15);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_15);
+    __gen_e_acsl_literal_string_14 = "tests/builtin/strcat.c:32";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_14,
+                         sizeof("tests/builtin/strcat.c:32"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_14);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_14);
+    __gen_e_acsl_literal_string_13 = "tests/builtin/strcat.c:31";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_13,
+                         sizeof("tests/builtin/strcat.c:31"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_13);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_13);
+    __gen_e_acsl_literal_string_12 = "tests/builtin/strcat.c:30";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_12,
+                         sizeof("tests/builtin/strcat.c:30"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_12);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_12);
+    __gen_e_acsl_literal_string_11 = "tests/builtin/strcat.c:29";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_11,
+                         sizeof("tests/builtin/strcat.c:29"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_11);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_11);
+    __gen_e_acsl_literal_string_10 = "tests/builtin/strcat.c:28";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_10,
+                         sizeof("tests/builtin/strcat.c:28"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_10);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_10);
+    __gen_e_acsl_literal_string_9 = "tests/builtin/strcat.c:27";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_9,
+                         sizeof("tests/builtin/strcat.c:27"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_9);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_9);
+    __gen_e_acsl_literal_string_8 = "tests/builtin/strcat.c:26";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_8,
+                         sizeof("tests/builtin/strcat.c:26"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_8);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_8);
+    __gen_e_acsl_literal_string_6 = "abcd";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_6,
+                         sizeof("abcd"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_6);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_6);
+    __gen_e_acsl_literal_string = "TEST %d: ";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string,
+                         sizeof("TEST %d: "));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string);
+    __gen_e_acsl_literal_string_2 = "OK: Expected signal at %s\n";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_2,
+                         sizeof("OK: Expected signal at %s\n"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_2);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_2);
+    __gen_e_acsl_literal_string_3 = "OK: Expected execution at %s\n";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_3,
+                         sizeof("OK: Expected execution at %s\n"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_3);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_3);
+    __gen_e_acsl_literal_string_5 = "FAIL: Unexpected signal at %s\n";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_5,
+                         sizeof("FAIL: Unexpected signal at %s\n"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_5);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_5);
+    __gen_e_acsl_literal_string_4 = "FAIL: Unexpected execution at %s\n";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_4,
+                         sizeof("FAIL: Unexpected execution at %s\n"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_4);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_4);
+    __gen_e_acsl_literal_string_7 = "";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_7,sizeof(""));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_7);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_7);
+    __e_acsl_store_block((void *)(& __gen_e_acsl_strncat),(size_t)1);
+    __e_acsl_full_init((void *)(& __gen_e_acsl_strncat));
+    __e_acsl_store_block((void *)(& __gen_e_acsl_strcat),(size_t)1);
+    __e_acsl_full_init((void *)(& __gen_e_acsl_strcat));
+    __e_acsl_store_block((void *)(& __gen_e_acsl_waitpid),(size_t)1);
+    __e_acsl_full_init((void *)(& __gen_e_acsl_waitpid));
+    __e_acsl_store_block((void *)(& __gen_e_acsl_exit),(size_t)1);
+    __e_acsl_full_init((void *)(& __gen_e_acsl_exit));
+    __e_acsl_store_block((void *)(& __fc_p_strerror),(size_t)8);
+    __e_acsl_full_init((void *)(& __fc_p_strerror));
+    __e_acsl_store_block((void *)(strerror),(size_t)64);
+    __e_acsl_full_init((void *)(& strerror));
+    __e_acsl_store_block((void *)(& __fc_strtok_ptr),(size_t)8);
+    __e_acsl_full_init((void *)(& __fc_strtok_ptr));
+    __e_acsl_store_block((void *)(& signal_eval),(size_t)1);
+    __e_acsl_full_init((void *)(& signal_eval));
+    __e_acsl_store_block((void *)(& testno),(size_t)4);
+    __e_acsl_full_init((void *)(& testno));
+    __e_acsl_store_block((void *)(& __fc_time),(size_t)4);
+    __e_acsl_full_init((void *)(& __fc_time));
+    __e_acsl_store_block((void *)(& __fc_p_fopen),(size_t)8);
+    __e_acsl_full_init((void *)(& __fc_p_fopen));
+    __e_acsl_store_block((void *)(__fc_fopen),(size_t)128);
+    __e_acsl_full_init((void *)(& __fc_fopen));
+    __e_acsl_store_block((void *)(& __fc_rand_max),(size_t)8);
+    __e_acsl_full_init((void *)(& __fc_rand_max));
+  }
   return;
 }
 
@@ -247,11 +258,7 @@ int main(int argc, char const **argv)
   __e_acsl_store_block((void *)(& pd4),(size_t)8);
   __e_acsl_full_init((void *)(& pd4));
   {
-    int tmp_0;
-    __e_acsl_store_block((void *)(& tmp_0),(size_t)4);
-    __e_acsl_full_init((void *)(& tmp_0));
-    tmp_0 = fork();
-    pid_t pid = (unsigned int)tmp_0;
+    pid_t pid = fork();
     __e_acsl_store_block((void *)(& pid),(size_t)4);
     __e_acsl_full_init((void *)(& pid));
     if (! pid) {
@@ -261,20 +268,15 @@ int main(int argc, char const **argv)
     else {
       int process_status;
       __e_acsl_store_block((void *)(& process_status),(size_t)4);
-      waitpid(pid,& process_status,0);
-      /*@ assert Value: initialization: \initialized(&process_status); */
+      __gen_e_acsl_waitpid(pid,& process_status,0);
+      /*@ assert Eva: initialization: \initialized(&process_status); */
       signal_eval(process_status,0,__gen_e_acsl_literal_string_8);
       __e_acsl_delete_block((void *)(& process_status));
     }
-    __e_acsl_delete_block((void *)(& tmp_0));
     __e_acsl_delete_block((void *)(& pid));
   }
   {
-    int tmp_1;
-    __e_acsl_store_block((void *)(& tmp_1),(size_t)4);
-    __e_acsl_full_init((void *)(& tmp_1));
-    tmp_1 = fork();
-    pid_t pid_0 = (unsigned int)tmp_1;
+    pid_t pid_0 = fork();
     __e_acsl_store_block((void *)(& pid_0),(size_t)4);
     __e_acsl_full_init((void *)(& pid_0));
     if (! pid_0) {
@@ -284,20 +286,15 @@ int main(int argc, char const **argv)
     else {
       int process_status_0;
       __e_acsl_store_block((void *)(& process_status_0),(size_t)4);
-      waitpid(pid_0,& process_status_0,0);
-      /*@ assert Value: initialization: \initialized(&process_status_0); */
+      __gen_e_acsl_waitpid(pid_0,& process_status_0,0);
+      /*@ assert Eva: initialization: \initialized(&process_status_0); */
       signal_eval(process_status_0,0,__gen_e_acsl_literal_string_9);
       __e_acsl_delete_block((void *)(& process_status_0));
     }
-    __e_acsl_delete_block((void *)(& tmp_1));
     __e_acsl_delete_block((void *)(& pid_0));
   }
   {
-    int tmp_2;
-    __e_acsl_store_block((void *)(& tmp_2),(size_t)4);
-    __e_acsl_full_init((void *)(& tmp_2));
-    tmp_2 = fork();
-    pid_t pid_1 = (unsigned int)tmp_2;
+    pid_t pid_1 = fork();
     __e_acsl_store_block((void *)(& pid_1),(size_t)4);
     __e_acsl_full_init((void *)(& pid_1));
     if (! pid_1) {
@@ -307,68 +304,53 @@ int main(int argc, char const **argv)
     else {
       int process_status_1;
       __e_acsl_store_block((void *)(& process_status_1),(size_t)4);
-      waitpid(pid_1,& process_status_1,0);
-      /*@ assert Value: initialization: \initialized(&process_status_1); */
+      __gen_e_acsl_waitpid(pid_1,& process_status_1,0);
+      /*@ assert Eva: initialization: \initialized(&process_status_1); */
       signal_eval(process_status_1,1,__gen_e_acsl_literal_string_10);
       __e_acsl_delete_block((void *)(& process_status_1));
     }
-    __e_acsl_delete_block((void *)(& tmp_2));
     __e_acsl_delete_block((void *)(& pid_1));
   }
   {
-    int tmp_3;
-    __e_acsl_store_block((void *)(& tmp_3),(size_t)4);
-    __e_acsl_full_init((void *)(& tmp_3));
-    tmp_3 = fork();
-    pid_t pid_2 = (unsigned int)tmp_3;
+    pid_t pid_2 = fork();
     __e_acsl_store_block((void *)(& pid_2),(size_t)4);
     __e_acsl_full_init((void *)(& pid_2));
     if (! pid_2) {
-      /*@ assert Value: dangling_pointer: ¬\dangling(&unalloc_str); */
+      /*@ assert Eva: dangling_pointer: ¬\dangling(&unalloc_str); */
       __gen_e_acsl_strcat(unalloc_str,(char const *)const_str);
       __gen_e_acsl_exit(0);
     }
     else {
       int process_status_2;
       __e_acsl_store_block((void *)(& process_status_2),(size_t)4);
-      waitpid(pid_2,& process_status_2,0);
-      /*@ assert Value: initialization: \initialized(&process_status_2); */
+      __gen_e_acsl_waitpid(pid_2,& process_status_2,0);
+      /*@ assert Eva: initialization: \initialized(&process_status_2); */
       signal_eval(process_status_2,1,__gen_e_acsl_literal_string_11);
       __e_acsl_delete_block((void *)(& process_status_2));
     }
-    __e_acsl_delete_block((void *)(& tmp_3));
     __e_acsl_delete_block((void *)(& pid_2));
   }
   {
-    int tmp_4;
-    __e_acsl_store_block((void *)(& tmp_4),(size_t)4);
-    __e_acsl_full_init((void *)(& tmp_4));
-    tmp_4 = fork();
-    pid_t pid_3 = (unsigned int)tmp_4;
+    pid_t pid_3 = fork();
     __e_acsl_store_block((void *)(& pid_3),(size_t)4);
     __e_acsl_full_init((void *)(& pid_3));
     if (! pid_3) {
-      /*@ assert Value: dangling_pointer: ¬\dangling(&unalloc_str); */
+      /*@ assert Eva: dangling_pointer: ¬\dangling(&unalloc_str); */
       __gen_e_acsl_strcat(dest2,(char const *)unalloc_str);
       __gen_e_acsl_exit(0);
     }
     else {
       int process_status_3;
       __e_acsl_store_block((void *)(& process_status_3),(size_t)4);
-      waitpid(pid_3,& process_status_3,0);
-      /*@ assert Value: initialization: \initialized(&process_status_3); */
+      __gen_e_acsl_waitpid(pid_3,& process_status_3,0);
+      /*@ assert Eva: initialization: \initialized(&process_status_3); */
       signal_eval(process_status_3,1,__gen_e_acsl_literal_string_12);
       __e_acsl_delete_block((void *)(& process_status_3));
     }
-    __e_acsl_delete_block((void *)(& tmp_4));
     __e_acsl_delete_block((void *)(& pid_3));
   }
   {
-    int tmp_5;
-    __e_acsl_store_block((void *)(& tmp_5),(size_t)4);
-    __e_acsl_full_init((void *)(& tmp_5));
-    tmp_5 = fork();
-    pid_t pid_4 = (unsigned int)tmp_5;
+    pid_t pid_4 = fork();
     __e_acsl_store_block((void *)(& pid_4),(size_t)4);
     __e_acsl_full_init((void *)(& pid_4));
     if (! pid_4) {
@@ -378,20 +360,15 @@ int main(int argc, char const **argv)
     else {
       int process_status_4;
       __e_acsl_store_block((void *)(& process_status_4),(size_t)4);
-      waitpid(pid_4,& process_status_4,0);
-      /*@ assert Value: initialization: \initialized(&process_status_4); */
+      __gen_e_acsl_waitpid(pid_4,& process_status_4,0);
+      /*@ assert Eva: initialization: \initialized(&process_status_4); */
       signal_eval(process_status_4,1,__gen_e_acsl_literal_string_13);
       __e_acsl_delete_block((void *)(& process_status_4));
     }
-    __e_acsl_delete_block((void *)(& tmp_5));
     __e_acsl_delete_block((void *)(& pid_4));
   }
   {
-    int tmp_6;
-    __e_acsl_store_block((void *)(& tmp_6),(size_t)4);
-    __e_acsl_full_init((void *)(& tmp_6));
-    tmp_6 = fork();
-    pid_t pid_5 = (unsigned int)tmp_6;
+    pid_t pid_5 = fork();
     __e_acsl_store_block((void *)(& pid_5),(size_t)4);
     __e_acsl_full_init((void *)(& pid_5));
     if (! pid_5) {
@@ -401,20 +378,15 @@ int main(int argc, char const **argv)
     else {
       int process_status_5;
       __e_acsl_store_block((void *)(& process_status_5),(size_t)4);
-      waitpid(pid_5,& process_status_5,0);
-      /*@ assert Value: initialization: \initialized(&process_status_5); */
+      __gen_e_acsl_waitpid(pid_5,& process_status_5,0);
+      /*@ assert Eva: initialization: \initialized(&process_status_5); */
       signal_eval(process_status_5,1,__gen_e_acsl_literal_string_14);
       __e_acsl_delete_block((void *)(& process_status_5));
     }
-    __e_acsl_delete_block((void *)(& tmp_6));
     __e_acsl_delete_block((void *)(& pid_5));
   }
   {
-    int tmp_7;
-    __e_acsl_store_block((void *)(& tmp_7),(size_t)4);
-    __e_acsl_full_init((void *)(& tmp_7));
-    tmp_7 = fork();
-    pid_t pid_6 = (unsigned int)tmp_7;
+    pid_t pid_6 = fork();
     __e_acsl_store_block((void *)(& pid_6),(size_t)4);
     __e_acsl_full_init((void *)(& pid_6));
     if (! pid_6) {
@@ -424,20 +396,15 @@ int main(int argc, char const **argv)
     else {
       int process_status_6;
       __e_acsl_store_block((void *)(& process_status_6),(size_t)4);
-      waitpid(pid_6,& process_status_6,0);
-      /*@ assert Value: initialization: \initialized(&process_status_6); */
+      __gen_e_acsl_waitpid(pid_6,& process_status_6,0);
+      /*@ assert Eva: initialization: \initialized(&process_status_6); */
       signal_eval(process_status_6,1,__gen_e_acsl_literal_string_15);
       __e_acsl_delete_block((void *)(& process_status_6));
     }
-    __e_acsl_delete_block((void *)(& tmp_7));
     __e_acsl_delete_block((void *)(& pid_6));
   }
   {
-    int tmp_8;
-    __e_acsl_store_block((void *)(& tmp_8),(size_t)4);
-    __e_acsl_full_init((void *)(& tmp_8));
-    tmp_8 = fork();
-    pid_t pid_7 = (unsigned int)tmp_8;
+    pid_t pid_7 = fork();
     __e_acsl_store_block((void *)(& pid_7),(size_t)4);
     __e_acsl_full_init((void *)(& pid_7));
     if (! pid_7) {
@@ -447,20 +414,15 @@ int main(int argc, char const **argv)
     else {
       int process_status_7;
       __e_acsl_store_block((void *)(& process_status_7),(size_t)4);
-      waitpid(pid_7,& process_status_7,0);
-      /*@ assert Value: initialization: \initialized(&process_status_7); */
+      __gen_e_acsl_waitpid(pid_7,& process_status_7,0);
+      /*@ assert Eva: initialization: \initialized(&process_status_7); */
       signal_eval(process_status_7,1,__gen_e_acsl_literal_string_16);
       __e_acsl_delete_block((void *)(& process_status_7));
     }
-    __e_acsl_delete_block((void *)(& tmp_8));
     __e_acsl_delete_block((void *)(& pid_7));
   }
   {
-    int tmp_9;
-    __e_acsl_store_block((void *)(& tmp_9),(size_t)4);
-    __e_acsl_full_init((void *)(& tmp_9));
-    tmp_9 = fork();
-    pid_t pid_8 = (unsigned int)tmp_9;
+    pid_t pid_8 = fork();
     __e_acsl_store_block((void *)(& pid_8),(size_t)4);
     __e_acsl_full_init((void *)(& pid_8));
     if (! pid_8) {
@@ -470,20 +432,15 @@ int main(int argc, char const **argv)
     else {
       int process_status_8;
       __e_acsl_store_block((void *)(& process_status_8),(size_t)4);
-      waitpid(pid_8,& process_status_8,0);
-      /*@ assert Value: initialization: \initialized(&process_status_8); */
+      __gen_e_acsl_waitpid(pid_8,& process_status_8,0);
+      /*@ assert Eva: initialization: \initialized(&process_status_8); */
       signal_eval(process_status_8,1,__gen_e_acsl_literal_string_17);
       __e_acsl_delete_block((void *)(& process_status_8));
     }
-    __e_acsl_delete_block((void *)(& tmp_9));
     __e_acsl_delete_block((void *)(& pid_8));
   }
   {
-    int tmp_10;
-    __e_acsl_store_block((void *)(& tmp_10),(size_t)4);
-    __e_acsl_full_init((void *)(& tmp_10));
-    tmp_10 = fork();
-    pid_t pid_9 = (unsigned int)tmp_10;
+    pid_t pid_9 = fork();
     __e_acsl_store_block((void *)(& pid_9),(size_t)4);
     __e_acsl_full_init((void *)(& pid_9));
     if (! pid_9) {
@@ -493,20 +450,15 @@ int main(int argc, char const **argv)
     else {
       int process_status_9;
       __e_acsl_store_block((void *)(& process_status_9),(size_t)4);
-      waitpid(pid_9,& process_status_9,0);
-      /*@ assert Value: initialization: \initialized(&process_status_9); */
+      __gen_e_acsl_waitpid(pid_9,& process_status_9,0);
+      /*@ assert Eva: initialization: \initialized(&process_status_9); */
       signal_eval(process_status_9,1,__gen_e_acsl_literal_string_18);
       __e_acsl_delete_block((void *)(& process_status_9));
     }
-    __e_acsl_delete_block((void *)(& tmp_10));
     __e_acsl_delete_block((void *)(& pid_9));
   }
   {
-    int tmp_11;
-    __e_acsl_store_block((void *)(& tmp_11),(size_t)4);
-    __e_acsl_full_init((void *)(& tmp_11));
-    tmp_11 = fork();
-    pid_t pid_10 = (unsigned int)tmp_11;
+    pid_t pid_10 = fork();
     __e_acsl_store_block((void *)(& pid_10),(size_t)4);
     __e_acsl_full_init((void *)(& pid_10));
     if (! pid_10) {
@@ -518,20 +470,15 @@ int main(int argc, char const **argv)
     else {
       int process_status_10;
       __e_acsl_store_block((void *)(& process_status_10),(size_t)4);
-      waitpid(pid_10,& process_status_10,0);
-      /*@ assert Value: initialization: \initialized(&process_status_10); */
+      __gen_e_acsl_waitpid(pid_10,& process_status_10,0);
+      /*@ assert Eva: initialization: \initialized(&process_status_10); */
       signal_eval(process_status_10,0,__gen_e_acsl_literal_string_19);
       __e_acsl_delete_block((void *)(& process_status_10));
     }
-    __e_acsl_delete_block((void *)(& tmp_11));
     __e_acsl_delete_block((void *)(& pid_10));
   }
   {
-    int tmp_12;
-    __e_acsl_store_block((void *)(& tmp_12),(size_t)4);
-    __e_acsl_full_init((void *)(& tmp_12));
-    tmp_12 = fork();
-    pid_t pid_11 = (unsigned int)tmp_12;
+    pid_t pid_11 = fork();
     __e_acsl_store_block((void *)(& pid_11),(size_t)4);
     __e_acsl_full_init((void *)(& pid_11));
     if (! pid_11) {
@@ -541,20 +488,15 @@ int main(int argc, char const **argv)
     else {
       int process_status_11;
       __e_acsl_store_block((void *)(& process_status_11),(size_t)4);
-      waitpid(pid_11,& process_status_11,0);
-      /*@ assert Value: initialization: \initialized(&process_status_11); */
+      __gen_e_acsl_waitpid(pid_11,& process_status_11,0);
+      /*@ assert Eva: initialization: \initialized(&process_status_11); */
       signal_eval(process_status_11,0,__gen_e_acsl_literal_string_20);
       __e_acsl_delete_block((void *)(& process_status_11));
     }
-    __e_acsl_delete_block((void *)(& tmp_12));
     __e_acsl_delete_block((void *)(& pid_11));
   }
   {
-    int tmp_13;
-    __e_acsl_store_block((void *)(& tmp_13),(size_t)4);
-    __e_acsl_full_init((void *)(& tmp_13));
-    tmp_13 = fork();
-    pid_t pid_12 = (unsigned int)tmp_13;
+    pid_t pid_12 = fork();
     __e_acsl_store_block((void *)(& pid_12),(size_t)4);
     __e_acsl_full_init((void *)(& pid_12));
     if (! pid_12) {
@@ -564,24 +506,19 @@ int main(int argc, char const **argv)
     else {
       int process_status_12;
       __e_acsl_store_block((void *)(& process_status_12),(size_t)4);
-      waitpid(pid_12,& process_status_12,0);
-      /*@ assert Value: initialization: \initialized(&process_status_12); */
+      __gen_e_acsl_waitpid(pid_12,& process_status_12,0);
+      /*@ assert Eva: initialization: \initialized(&process_status_12); */
       signal_eval(process_status_12,1,__gen_e_acsl_literal_string_21);
       __e_acsl_delete_block((void *)(& process_status_12));
     }
-    __e_acsl_delete_block((void *)(& tmp_13));
     __e_acsl_delete_block((void *)(& pid_12));
   }
   {
-    int tmp_14;
-    __e_acsl_store_block((void *)(& tmp_14),(size_t)4);
-    __e_acsl_full_init((void *)(& tmp_14));
-    tmp_14 = fork();
-    pid_t pid_13 = (unsigned int)tmp_14;
+    pid_t pid_13 = fork();
     __e_acsl_store_block((void *)(& pid_13),(size_t)4);
     __e_acsl_full_init((void *)(& pid_13));
     if (! pid_13) {
-      /*@ assert Value: dangling_pointer: ¬\dangling(&unalloc_str); */
+      /*@ assert Eva: dangling_pointer: ¬\dangling(&unalloc_str); */
       __gen_e_acsl_strncat(unalloc_str,(char const *)const_str,
                            (unsigned long)1);
       __gen_e_acsl_exit(0);
@@ -589,44 +526,34 @@ int main(int argc, char const **argv)
     else {
       int process_status_13;
       __e_acsl_store_block((void *)(& process_status_13),(size_t)4);
-      waitpid(pid_13,& process_status_13,0);
-      /*@ assert Value: initialization: \initialized(&process_status_13); */
+      __gen_e_acsl_waitpid(pid_13,& process_status_13,0);
+      /*@ assert Eva: initialization: \initialized(&process_status_13); */
       signal_eval(process_status_13,1,__gen_e_acsl_literal_string_22);
       __e_acsl_delete_block((void *)(& process_status_13));
     }
-    __e_acsl_delete_block((void *)(& tmp_14));
     __e_acsl_delete_block((void *)(& pid_13));
   }
   {
-    int tmp_15;
-    __e_acsl_store_block((void *)(& tmp_15),(size_t)4);
-    __e_acsl_full_init((void *)(& tmp_15));
-    tmp_15 = fork();
-    pid_t pid_14 = (unsigned int)tmp_15;
+    pid_t pid_14 = fork();
     __e_acsl_store_block((void *)(& pid_14),(size_t)4);
     __e_acsl_full_init((void *)(& pid_14));
     if (! pid_14) {
-      /*@ assert Value: dangling_pointer: ¬\dangling(&unalloc_str); */
+      /*@ assert Eva: dangling_pointer: ¬\dangling(&unalloc_str); */
       __gen_e_acsl_strncat(dest2,(char const *)unalloc_str,(unsigned long)1);
       __gen_e_acsl_exit(0);
     }
     else {
       int process_status_14;
       __e_acsl_store_block((void *)(& process_status_14),(size_t)4);
-      waitpid(pid_14,& process_status_14,0);
-      /*@ assert Value: initialization: \initialized(&process_status_14); */
+      __gen_e_acsl_waitpid(pid_14,& process_status_14,0);
+      /*@ assert Eva: initialization: \initialized(&process_status_14); */
       signal_eval(process_status_14,1,__gen_e_acsl_literal_string_23);
       __e_acsl_delete_block((void *)(& process_status_14));
     }
-    __e_acsl_delete_block((void *)(& tmp_15));
     __e_acsl_delete_block((void *)(& pid_14));
   }
   {
-    int tmp_16;
-    __e_acsl_store_block((void *)(& tmp_16),(size_t)4);
-    __e_acsl_full_init((void *)(& tmp_16));
-    tmp_16 = fork();
-    pid_t pid_15 = (unsigned int)tmp_16;
+    pid_t pid_15 = fork();
     __e_acsl_store_block((void *)(& pid_15),(size_t)4);
     __e_acsl_full_init((void *)(& pid_15));
     if (! pid_15) {
@@ -637,20 +564,15 @@ int main(int argc, char const **argv)
     else {
       int process_status_15;
       __e_acsl_store_block((void *)(& process_status_15),(size_t)4);
-      waitpid(pid_15,& process_status_15,0);
-      /*@ assert Value: initialization: \initialized(&process_status_15); */
+      __gen_e_acsl_waitpid(pid_15,& process_status_15,0);
+      /*@ assert Eva: initialization: \initialized(&process_status_15); */
       signal_eval(process_status_15,1,__gen_e_acsl_literal_string_24);
       __e_acsl_delete_block((void *)(& process_status_15));
     }
-    __e_acsl_delete_block((void *)(& tmp_16));
     __e_acsl_delete_block((void *)(& pid_15));
   }
   {
-    int tmp_17;
-    __e_acsl_store_block((void *)(& tmp_17),(size_t)4);
-    __e_acsl_full_init((void *)(& tmp_17));
-    tmp_17 = fork();
-    pid_t pid_16 = (unsigned int)tmp_17;
+    pid_t pid_16 = fork();
     __e_acsl_store_block((void *)(& pid_16),(size_t)4);
     __e_acsl_full_init((void *)(& pid_16));
     if (! pid_16) {
@@ -660,20 +582,15 @@ int main(int argc, char const **argv)
     else {
       int process_status_16;
       __e_acsl_store_block((void *)(& process_status_16),(size_t)4);
-      waitpid(pid_16,& process_status_16,0);
-      /*@ assert Value: initialization: \initialized(&process_status_16); */
+      __gen_e_acsl_waitpid(pid_16,& process_status_16,0);
+      /*@ assert Eva: initialization: \initialized(&process_status_16); */
       signal_eval(process_status_16,1,__gen_e_acsl_literal_string_25);
       __e_acsl_delete_block((void *)(& process_status_16));
     }
-    __e_acsl_delete_block((void *)(& tmp_17));
     __e_acsl_delete_block((void *)(& pid_16));
   }
   {
-    int tmp_18;
-    __e_acsl_store_block((void *)(& tmp_18),(size_t)4);
-    __e_acsl_full_init((void *)(& tmp_18));
-    tmp_18 = fork();
-    pid_t pid_17 = (unsigned int)tmp_18;
+    pid_t pid_17 = fork();
     __e_acsl_store_block((void *)(& pid_17),(size_t)4);
     __e_acsl_full_init((void *)(& pid_17));
     if (! pid_17) {
@@ -684,20 +601,15 @@ int main(int argc, char const **argv)
     else {
       int process_status_17;
       __e_acsl_store_block((void *)(& process_status_17),(size_t)4);
-      waitpid(pid_17,& process_status_17,0);
-      /*@ assert Value: initialization: \initialized(&process_status_17); */
+      __gen_e_acsl_waitpid(pid_17,& process_status_17,0);
+      /*@ assert Eva: initialization: \initialized(&process_status_17); */
       signal_eval(process_status_17,1,__gen_e_acsl_literal_string_26);
       __e_acsl_delete_block((void *)(& process_status_17));
     }
-    __e_acsl_delete_block((void *)(& tmp_18));
     __e_acsl_delete_block((void *)(& pid_17));
   }
   {
-    int tmp_19;
-    __e_acsl_store_block((void *)(& tmp_19),(size_t)4);
-    __e_acsl_full_init((void *)(& tmp_19));
-    tmp_19 = fork();
-    pid_t pid_18 = (unsigned int)tmp_19;
+    pid_t pid_18 = fork();
     __e_acsl_store_block((void *)(& pid_18),(size_t)4);
     __e_acsl_full_init((void *)(& pid_18));
     if (! pid_18) {
@@ -707,20 +619,15 @@ int main(int argc, char const **argv)
     else {
       int process_status_18;
       __e_acsl_store_block((void *)(& process_status_18),(size_t)4);
-      waitpid(pid_18,& process_status_18,0);
-      /*@ assert Value: initialization: \initialized(&process_status_18); */
+      __gen_e_acsl_waitpid(pid_18,& process_status_18,0);
+      /*@ assert Eva: initialization: \initialized(&process_status_18); */
       signal_eval(process_status_18,1,__gen_e_acsl_literal_string_27);
       __e_acsl_delete_block((void *)(& process_status_18));
     }
-    __e_acsl_delete_block((void *)(& tmp_19));
     __e_acsl_delete_block((void *)(& pid_18));
   }
   {
-    int tmp_20;
-    __e_acsl_store_block((void *)(& tmp_20),(size_t)4);
-    __e_acsl_full_init((void *)(& tmp_20));
-    tmp_20 = fork();
-    pid_t pid_19 = (unsigned int)tmp_20;
+    pid_t pid_19 = fork();
     __e_acsl_store_block((void *)(& pid_19),(size_t)4);
     __e_acsl_full_init((void *)(& pid_19));
     if (! pid_19) {
@@ -730,20 +637,15 @@ int main(int argc, char const **argv)
     else {
       int process_status_19;
       __e_acsl_store_block((void *)(& process_status_19),(size_t)4);
-      waitpid(pid_19,& process_status_19,0);
-      /*@ assert Value: initialization: \initialized(&process_status_19); */
+      __gen_e_acsl_waitpid(pid_19,& process_status_19,0);
+      /*@ assert Eva: initialization: \initialized(&process_status_19); */
       signal_eval(process_status_19,1,__gen_e_acsl_literal_string_28);
       __e_acsl_delete_block((void *)(& process_status_19));
     }
-    __e_acsl_delete_block((void *)(& tmp_20));
     __e_acsl_delete_block((void *)(& pid_19));
   }
   {
-    int tmp_21;
-    __e_acsl_store_block((void *)(& tmp_21),(size_t)4);
-    __e_acsl_full_init((void *)(& tmp_21));
-    tmp_21 = fork();
-    pid_t pid_20 = (unsigned int)tmp_21;
+    pid_t pid_20 = fork();
     __e_acsl_store_block((void *)(& pid_20),(size_t)4);
     __e_acsl_full_init((void *)(& pid_20));
     if (! pid_20) {
@@ -753,18 +655,19 @@ int main(int argc, char const **argv)
     else {
       int process_status_20;
       __e_acsl_store_block((void *)(& process_status_20),(size_t)4);
-      waitpid(pid_20,& process_status_20,0);
-      /*@ assert Value: initialization: \initialized(&process_status_20); */
+      __gen_e_acsl_waitpid(pid_20,& process_status_20,0);
+      /*@ assert Eva: initialization: \initialized(&process_status_20); */
       signal_eval(process_status_20,1,__gen_e_acsl_literal_string_29);
       __e_acsl_delete_block((void *)(& process_status_20));
     }
-    __e_acsl_delete_block((void *)(& tmp_21));
     __e_acsl_delete_block((void *)(& pid_20));
   }
   __e_acsl_full_init((void *)(& __retres));
   __retres = 0;
   __e_acsl_delete_block((void *)(& argv));
   __e_acsl_delete_block((void *)(& argc));
+  __e_acsl_delete_block((void *)(& __fc_p_strerror));
+  __e_acsl_delete_block((void *)(strerror));
   __e_acsl_delete_block((void *)(& __fc_strtok_ptr));
   __e_acsl_delete_block((void *)(& signal_eval));
   __e_acsl_delete_block((void *)(& testno));
diff --git a/src/plugins/e-acsl/tests/builtin/oracle/gen_strcmp.c b/src/plugins/e-acsl/tests/builtin/oracle/gen_strcmp.c
index 1d298cab5254eb6b868afb69ac8896ecd0b2cc4f..f107a44c9f516b82a79cd44b54d491aa01d51312 100644
--- a/src/plugins/e-acsl/tests/builtin/oracle/gen_strcmp.c
+++ b/src/plugins/e-acsl/tests/builtin/oracle/gen_strcmp.c
@@ -55,197 +55,207 @@ __inline static void fail_ncomp(int cond, char *fmt, int l, int r)
 
 /*@ assigns \result;
     assigns \result \from \nothing; */
-extern int ( /* missing proto */ fork)();
+extern int ( /* missing proto */ fork)(void);
 
 void __e_acsl_globals_init(void)
 {
-  __gen_e_acsl_literal_string_32 = "tests/builtin/strcmp.c:74";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_32,
-                       sizeof("tests/builtin/strcmp.c:74"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_32);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_32);
-  __gen_e_acsl_literal_string_31 = "tests/builtin/strcmp.c:73";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_31,
-                       sizeof("tests/builtin/strcmp.c:73"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_31);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_31);
-  __gen_e_acsl_literal_string_30 = "tests/builtin/strcmp.c:72";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_30,
-                       sizeof("tests/builtin/strcmp.c:72"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_30);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_30);
-  __gen_e_acsl_literal_string_29 = "tests/builtin/strcmp.c:71";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_29,
-                       sizeof("tests/builtin/strcmp.c:71"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_29);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_29);
-  __gen_e_acsl_literal_string_28 = "tests/builtin/strcmp.c:68";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_28,
-                       sizeof("tests/builtin/strcmp.c:68"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_28);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_28);
-  __gen_e_acsl_literal_string_27 = "tests/builtin/strcmp.c:67";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_27,
-                       sizeof("tests/builtin/strcmp.c:67"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_27);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_27);
-  __gen_e_acsl_literal_string_26 = "tests/builtin/strcmp.c:66";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_26,
-                       sizeof("tests/builtin/strcmp.c:66"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_26);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_26);
-  __gen_e_acsl_literal_string_25 = "tests/builtin/strcmp.c:65";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_25,
-                       sizeof("tests/builtin/strcmp.c:65"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_25);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_25);
-  __gen_e_acsl_literal_string_23 = "tests/builtin/strcmp.c:62";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_23,
-                       sizeof("tests/builtin/strcmp.c:62"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_23);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_23);
-  __gen_e_acsl_literal_string_22 = "tests/builtin/strcmp.c:61";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_22,
-                       sizeof("tests/builtin/strcmp.c:61"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_22);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_22);
-  __gen_e_acsl_literal_string_21 = "tests/builtin/strcmp.c:59";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_21,
-                       sizeof("tests/builtin/strcmp.c:59"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_21);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_21);
-  __gen_e_acsl_literal_string_20 = "tests/builtin/strcmp.c:58";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_20,
-                       sizeof("tests/builtin/strcmp.c:58"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_20);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_20);
-  __gen_e_acsl_literal_string_19 = "tests/builtin/strcmp.c:57";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_19,
-                       sizeof("tests/builtin/strcmp.c:57"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_19);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_19);
-  __gen_e_acsl_literal_string_18 = "tests/builtin/strcmp.c:48";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_18,
-                       sizeof("tests/builtin/strcmp.c:48"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_18);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_18);
-  __gen_e_acsl_literal_string_17 = "tests/builtin/strcmp.c:47";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_17,
-                       sizeof("tests/builtin/strcmp.c:47"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_17);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_17);
-  __gen_e_acsl_literal_string_16 = "tests/builtin/strcmp.c:42";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_16,
-                       sizeof("tests/builtin/strcmp.c:42"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_16);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_16);
-  __gen_e_acsl_literal_string_15 = "tests/builtin/strcmp.c:41";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_15,
-                       sizeof("tests/builtin/strcmp.c:41"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_15);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_15);
-  __gen_e_acsl_literal_string_14 = "tests/builtin/strcmp.c:39";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_14,
-                       sizeof("tests/builtin/strcmp.c:39"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_14);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_14);
-  __gen_e_acsl_literal_string_13 = "tests/builtin/strcmp.c:38";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_13,
-                       sizeof("tests/builtin/strcmp.c:38"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_13);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_13);
-  __gen_e_acsl_literal_string_12 = "tests/builtin/strcmp.c:37";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_12,
-                       sizeof("tests/builtin/strcmp.c:37"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_12);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_12);
-  __gen_e_acsl_literal_string_11 = "tests/builtin/strcmp.c:36";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_11,
-                       sizeof("tests/builtin/strcmp.c:36"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_11);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_11);
-  __gen_e_acsl_literal_string_10 = "tests/builtin/strcmp.c:34";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_10,
-                       sizeof("tests/builtin/strcmp.c:34"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_10);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_10);
-  __gen_e_acsl_literal_string_9 = "tests/builtin/strcmp.c:33";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_9,
-                       sizeof("tests/builtin/strcmp.c:33"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_9);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_9);
-  __gen_e_acsl_literal_string_8 = "tests/builtin/strcmp.c:32";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_8,
-                       sizeof("tests/builtin/strcmp.c:32"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_8);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_8);
-  __gen_e_acsl_literal_string_7 = "comparison failure: %d == %d\n";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_7,
-                       sizeof("comparison failure: %d == %d\n"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_7);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_7);
-  __gen_e_acsl_literal_string_24 = "comparison failure: %d != %d\n";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_24,
-                       sizeof("comparison failure: %d != %d\n"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_24);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_24);
-  __gen_e_acsl_literal_string_6 = "abc";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_6,sizeof("abc"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_6);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_6);
-  __gen_e_acsl_literal_string = "TEST %d: ";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string,
-                       sizeof("TEST %d: "));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string);
-  __gen_e_acsl_literal_string_2 = "OK: Expected signal at %s\n";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_2,
-                       sizeof("OK: Expected signal at %s\n"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_2);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_2);
-  __gen_e_acsl_literal_string_3 = "OK: Expected execution at %s\n";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_3,
-                       sizeof("OK: Expected execution at %s\n"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_3);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_3);
-  __gen_e_acsl_literal_string_5 = "FAIL: Unexpected signal at %s\n";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_5,
-                       sizeof("FAIL: Unexpected signal at %s\n"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_5);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_5);
-  __gen_e_acsl_literal_string_4 = "FAIL: Unexpected execution at %s\n";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_4,
-                       sizeof("FAIL: Unexpected execution at %s\n"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_4);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_4);
-  __e_acsl_store_block((void *)(& __gen_e_acsl_strdup),(size_t)1);
-  __e_acsl_full_init((void *)(& __gen_e_acsl_strdup));
-  __e_acsl_store_block((void *)(& __gen_e_acsl_strncmp),(size_t)1);
-  __e_acsl_full_init((void *)(& __gen_e_acsl_strncmp));
-  __e_acsl_store_block((void *)(& __gen_e_acsl_strcmp),(size_t)1);
-  __e_acsl_full_init((void *)(& __gen_e_acsl_strcmp));
-  __e_acsl_store_block((void *)(& __gen_e_acsl_exit),(size_t)1);
-  __e_acsl_full_init((void *)(& __gen_e_acsl_exit));
-  __e_acsl_store_block((void *)(& __gen_e_acsl_abort),(size_t)1);
-  __e_acsl_full_init((void *)(& __gen_e_acsl_abort));
-  __e_acsl_store_block((void *)(& fail_ncomp),(size_t)1);
-  __e_acsl_full_init((void *)(& fail_ncomp));
-  __e_acsl_store_block((void *)(& __fc_strtok_ptr),(size_t)8);
-  __e_acsl_full_init((void *)(& __fc_strtok_ptr));
-  __e_acsl_store_block((void *)(& signal_eval),(size_t)1);
-  __e_acsl_full_init((void *)(& signal_eval));
-  __e_acsl_store_block((void *)(& testno),(size_t)4);
-  __e_acsl_full_init((void *)(& testno));
-  __e_acsl_store_block((void *)(& __fc_time),(size_t)4);
-  __e_acsl_full_init((void *)(& __fc_time));
-  __e_acsl_store_block((void *)(& __fc_p_fopen),(size_t)8);
-  __e_acsl_full_init((void *)(& __fc_p_fopen));
-  __e_acsl_store_block((void *)(__fc_fopen),(size_t)128);
-  __e_acsl_full_init((void *)(& __fc_fopen));
-  __e_acsl_store_block((void *)(& stderr),(size_t)8);
-  __e_acsl_full_init((void *)(& stderr));
-  __e_acsl_store_block((void *)(& __fc_rand_max),(size_t)8);
-  __e_acsl_full_init((void *)(& __fc_rand_max));
+  static char __e_acsl_already_run = 0;
+  if (! __e_acsl_already_run) {
+    __e_acsl_already_run = 1;
+    __gen_e_acsl_literal_string_32 = "tests/builtin/strcmp.c:74";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_32,
+                         sizeof("tests/builtin/strcmp.c:74"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_32);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_32);
+    __gen_e_acsl_literal_string_31 = "tests/builtin/strcmp.c:73";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_31,
+                         sizeof("tests/builtin/strcmp.c:73"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_31);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_31);
+    __gen_e_acsl_literal_string_30 = "tests/builtin/strcmp.c:72";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_30,
+                         sizeof("tests/builtin/strcmp.c:72"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_30);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_30);
+    __gen_e_acsl_literal_string_29 = "tests/builtin/strcmp.c:71";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_29,
+                         sizeof("tests/builtin/strcmp.c:71"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_29);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_29);
+    __gen_e_acsl_literal_string_28 = "tests/builtin/strcmp.c:68";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_28,
+                         sizeof("tests/builtin/strcmp.c:68"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_28);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_28);
+    __gen_e_acsl_literal_string_27 = "tests/builtin/strcmp.c:67";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_27,
+                         sizeof("tests/builtin/strcmp.c:67"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_27);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_27);
+    __gen_e_acsl_literal_string_26 = "tests/builtin/strcmp.c:66";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_26,
+                         sizeof("tests/builtin/strcmp.c:66"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_26);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_26);
+    __gen_e_acsl_literal_string_25 = "tests/builtin/strcmp.c:65";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_25,
+                         sizeof("tests/builtin/strcmp.c:65"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_25);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_25);
+    __gen_e_acsl_literal_string_23 = "tests/builtin/strcmp.c:62";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_23,
+                         sizeof("tests/builtin/strcmp.c:62"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_23);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_23);
+    __gen_e_acsl_literal_string_22 = "tests/builtin/strcmp.c:61";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_22,
+                         sizeof("tests/builtin/strcmp.c:61"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_22);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_22);
+    __gen_e_acsl_literal_string_21 = "tests/builtin/strcmp.c:59";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_21,
+                         sizeof("tests/builtin/strcmp.c:59"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_21);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_21);
+    __gen_e_acsl_literal_string_20 = "tests/builtin/strcmp.c:58";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_20,
+                         sizeof("tests/builtin/strcmp.c:58"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_20);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_20);
+    __gen_e_acsl_literal_string_19 = "tests/builtin/strcmp.c:57";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_19,
+                         sizeof("tests/builtin/strcmp.c:57"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_19);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_19);
+    __gen_e_acsl_literal_string_18 = "tests/builtin/strcmp.c:48";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_18,
+                         sizeof("tests/builtin/strcmp.c:48"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_18);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_18);
+    __gen_e_acsl_literal_string_17 = "tests/builtin/strcmp.c:47";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_17,
+                         sizeof("tests/builtin/strcmp.c:47"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_17);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_17);
+    __gen_e_acsl_literal_string_16 = "tests/builtin/strcmp.c:42";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_16,
+                         sizeof("tests/builtin/strcmp.c:42"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_16);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_16);
+    __gen_e_acsl_literal_string_15 = "tests/builtin/strcmp.c:41";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_15,
+                         sizeof("tests/builtin/strcmp.c:41"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_15);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_15);
+    __gen_e_acsl_literal_string_14 = "tests/builtin/strcmp.c:39";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_14,
+                         sizeof("tests/builtin/strcmp.c:39"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_14);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_14);
+    __gen_e_acsl_literal_string_13 = "tests/builtin/strcmp.c:38";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_13,
+                         sizeof("tests/builtin/strcmp.c:38"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_13);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_13);
+    __gen_e_acsl_literal_string_12 = "tests/builtin/strcmp.c:37";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_12,
+                         sizeof("tests/builtin/strcmp.c:37"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_12);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_12);
+    __gen_e_acsl_literal_string_11 = "tests/builtin/strcmp.c:36";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_11,
+                         sizeof("tests/builtin/strcmp.c:36"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_11);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_11);
+    __gen_e_acsl_literal_string_10 = "tests/builtin/strcmp.c:34";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_10,
+                         sizeof("tests/builtin/strcmp.c:34"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_10);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_10);
+    __gen_e_acsl_literal_string_9 = "tests/builtin/strcmp.c:33";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_9,
+                         sizeof("tests/builtin/strcmp.c:33"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_9);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_9);
+    __gen_e_acsl_literal_string_8 = "tests/builtin/strcmp.c:32";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_8,
+                         sizeof("tests/builtin/strcmp.c:32"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_8);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_8);
+    __gen_e_acsl_literal_string_7 = "comparison failure: %d == %d\n";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_7,
+                         sizeof("comparison failure: %d == %d\n"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_7);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_7);
+    __gen_e_acsl_literal_string_24 = "comparison failure: %d != %d\n";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_24,
+                         sizeof("comparison failure: %d != %d\n"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_24);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_24);
+    __gen_e_acsl_literal_string_6 = "abc";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_6,sizeof("abc"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_6);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_6);
+    __gen_e_acsl_literal_string = "TEST %d: ";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string,
+                         sizeof("TEST %d: "));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string);
+    __gen_e_acsl_literal_string_2 = "OK: Expected signal at %s\n";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_2,
+                         sizeof("OK: Expected signal at %s\n"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_2);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_2);
+    __gen_e_acsl_literal_string_3 = "OK: Expected execution at %s\n";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_3,
+                         sizeof("OK: Expected execution at %s\n"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_3);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_3);
+    __gen_e_acsl_literal_string_5 = "FAIL: Unexpected signal at %s\n";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_5,
+                         sizeof("FAIL: Unexpected signal at %s\n"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_5);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_5);
+    __gen_e_acsl_literal_string_4 = "FAIL: Unexpected execution at %s\n";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_4,
+                         sizeof("FAIL: Unexpected execution at %s\n"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_4);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_4);
+    __e_acsl_store_block((void *)(& __gen_e_acsl_strdup),(size_t)1);
+    __e_acsl_full_init((void *)(& __gen_e_acsl_strdup));
+    __e_acsl_store_block((void *)(& __gen_e_acsl_strncmp),(size_t)1);
+    __e_acsl_full_init((void *)(& __gen_e_acsl_strncmp));
+    __e_acsl_store_block((void *)(& __gen_e_acsl_strcmp),(size_t)1);
+    __e_acsl_full_init((void *)(& __gen_e_acsl_strcmp));
+    __e_acsl_store_block((void *)(& __gen_e_acsl_waitpid),(size_t)1);
+    __e_acsl_full_init((void *)(& __gen_e_acsl_waitpid));
+    __e_acsl_store_block((void *)(& __gen_e_acsl_exit),(size_t)1);
+    __e_acsl_full_init((void *)(& __gen_e_acsl_exit));
+    __e_acsl_store_block((void *)(& __gen_e_acsl_abort),(size_t)1);
+    __e_acsl_full_init((void *)(& __gen_e_acsl_abort));
+    __e_acsl_store_block((void *)(& fail_ncomp),(size_t)1);
+    __e_acsl_full_init((void *)(& fail_ncomp));
+    __e_acsl_store_block((void *)(& __fc_p_strerror),(size_t)8);
+    __e_acsl_full_init((void *)(& __fc_p_strerror));
+    __e_acsl_store_block((void *)(strerror),(size_t)64);
+    __e_acsl_full_init((void *)(& strerror));
+    __e_acsl_store_block((void *)(& __fc_strtok_ptr),(size_t)8);
+    __e_acsl_full_init((void *)(& __fc_strtok_ptr));
+    __e_acsl_store_block((void *)(& signal_eval),(size_t)1);
+    __e_acsl_full_init((void *)(& signal_eval));
+    __e_acsl_store_block((void *)(& testno),(size_t)4);
+    __e_acsl_full_init((void *)(& testno));
+    __e_acsl_store_block((void *)(& __fc_time),(size_t)4);
+    __e_acsl_full_init((void *)(& __fc_time));
+    __e_acsl_store_block((void *)(& __fc_p_fopen),(size_t)8);
+    __e_acsl_full_init((void *)(& __fc_p_fopen));
+    __e_acsl_store_block((void *)(__fc_fopen),(size_t)128);
+    __e_acsl_full_init((void *)(& __fc_fopen));
+    __e_acsl_store_block((void *)(& stderr),(size_t)8);
+    __e_acsl_full_init((void *)(& stderr));
+    __e_acsl_store_block((void *)(& __fc_rand_max),(size_t)8);
+    __e_acsl_full_init((void *)(& __fc_rand_max));
+  }
   return;
 }
 
@@ -276,11 +286,7 @@ int main(int argc, char const **argv)
   __e_acsl_store_block((void *)(& dr),(size_t)8);
   __e_acsl_full_init((void *)(& dr));
   {
-    int tmp_1;
-    __e_acsl_store_block((void *)(& tmp_1),(size_t)4);
-    __e_acsl_full_init((void *)(& tmp_1));
-    tmp_1 = fork();
-    pid_t pid = (unsigned int)tmp_1;
+    pid_t pid = fork();
     __e_acsl_store_block((void *)(& pid),(size_t)4);
     __e_acsl_full_init((void *)(& pid));
     if (! pid) {
@@ -300,19 +306,15 @@ int main(int argc, char const **argv)
     else {
       int process_status;
       __e_acsl_store_block((void *)(& process_status),(size_t)4);
-      waitpid(pid,& process_status,0);
+      __gen_e_acsl_waitpid(pid,& process_status,0);
+      /*@ assert Eva: initialization: \initialized(&process_status); */
       signal_eval(process_status,0,__gen_e_acsl_literal_string_8);
       __e_acsl_delete_block((void *)(& process_status));
     }
-    __e_acsl_delete_block((void *)(& tmp_1));
     __e_acsl_delete_block((void *)(& pid));
   }
   {
-    int tmp_4;
-    __e_acsl_store_block((void *)(& tmp_4),(size_t)4);
-    __e_acsl_full_init((void *)(& tmp_4));
-    tmp_4 = fork();
-    pid_t pid_0 = (unsigned int)tmp_4;
+    pid_t pid_0 = fork();
     __e_acsl_store_block((void *)(& pid_0),(size_t)4);
     __e_acsl_full_init((void *)(& pid_0));
     if (! pid_0) {
@@ -332,19 +334,15 @@ int main(int argc, char const **argv)
     else {
       int process_status_0;
       __e_acsl_store_block((void *)(& process_status_0),(size_t)4);
-      waitpid(pid_0,& process_status_0,0);
+      __gen_e_acsl_waitpid(pid_0,& process_status_0,0);
+      /*@ assert Eva: initialization: \initialized(&process_status_0); */
       signal_eval(process_status_0,0,__gen_e_acsl_literal_string_9);
       __e_acsl_delete_block((void *)(& process_status_0));
     }
-    __e_acsl_delete_block((void *)(& tmp_4));
     __e_acsl_delete_block((void *)(& pid_0));
   }
   {
-    int tmp_7;
-    __e_acsl_store_block((void *)(& tmp_7),(size_t)4);
-    __e_acsl_full_init((void *)(& tmp_7));
-    tmp_7 = fork();
-    pid_t pid_1 = (unsigned int)tmp_7;
+    pid_t pid_1 = fork();
     __e_acsl_store_block((void *)(& pid_1),(size_t)4);
     __e_acsl_full_init((void *)(& pid_1));
     if (! pid_1) {
@@ -364,19 +362,15 @@ int main(int argc, char const **argv)
     else {
       int process_status_1;
       __e_acsl_store_block((void *)(& process_status_1),(size_t)4);
-      waitpid(pid_1,& process_status_1,0);
+      __gen_e_acsl_waitpid(pid_1,& process_status_1,0);
+      /*@ assert Eva: initialization: \initialized(&process_status_1); */
       signal_eval(process_status_1,0,__gen_e_acsl_literal_string_10);
       __e_acsl_delete_block((void *)(& process_status_1));
     }
-    __e_acsl_delete_block((void *)(& tmp_7));
     __e_acsl_delete_block((void *)(& pid_1));
   }
   {
-    int tmp_10;
-    __e_acsl_store_block((void *)(& tmp_10),(size_t)4);
-    __e_acsl_full_init((void *)(& tmp_10));
-    tmp_10 = fork();
-    pid_t pid_2 = (unsigned int)tmp_10;
+    pid_t pid_2 = fork();
     __e_acsl_store_block((void *)(& pid_2),(size_t)4);
     __e_acsl_full_init((void *)(& pid_2));
     if (! pid_2) {
@@ -398,19 +392,15 @@ int main(int argc, char const **argv)
     else {
       int process_status_2;
       __e_acsl_store_block((void *)(& process_status_2),(size_t)4);
-      waitpid(pid_2,& process_status_2,0);
+      __gen_e_acsl_waitpid(pid_2,& process_status_2,0);
+      /*@ assert Eva: initialization: \initialized(&process_status_2); */
       signal_eval(process_status_2,1,__gen_e_acsl_literal_string_11);
       __e_acsl_delete_block((void *)(& process_status_2));
     }
-    __e_acsl_delete_block((void *)(& tmp_10));
     __e_acsl_delete_block((void *)(& pid_2));
   }
   {
-    int tmp_13;
-    __e_acsl_store_block((void *)(& tmp_13),(size_t)4);
-    __e_acsl_full_init((void *)(& tmp_13));
-    tmp_13 = fork();
-    pid_t pid_3 = (unsigned int)tmp_13;
+    pid_t pid_3 = fork();
     __e_acsl_store_block((void *)(& pid_3),(size_t)4);
     __e_acsl_full_init((void *)(& pid_3));
     if (! pid_3) {
@@ -432,19 +422,15 @@ int main(int argc, char const **argv)
     else {
       int process_status_3;
       __e_acsl_store_block((void *)(& process_status_3),(size_t)4);
-      waitpid(pid_3,& process_status_3,0);
+      __gen_e_acsl_waitpid(pid_3,& process_status_3,0);
+      /*@ assert Eva: initialization: \initialized(&process_status_3); */
       signal_eval(process_status_3,1,__gen_e_acsl_literal_string_12);
       __e_acsl_delete_block((void *)(& process_status_3));
     }
-    __e_acsl_delete_block((void *)(& tmp_13));
     __e_acsl_delete_block((void *)(& pid_3));
   }
   {
-    int tmp_16;
-    __e_acsl_store_block((void *)(& tmp_16),(size_t)4);
-    __e_acsl_full_init((void *)(& tmp_16));
-    tmp_16 = fork();
-    pid_t pid_4 = (unsigned int)tmp_16;
+    pid_t pid_4 = fork();
     __e_acsl_store_block((void *)(& pid_4),(size_t)4);
     __e_acsl_full_init((void *)(& pid_4));
     if (! pid_4) {
@@ -453,6 +439,7 @@ int main(int argc, char const **argv)
       __e_acsl_store_block((void *)(& tmp_18),(size_t)4);
       __e_acsl_store_block((void *)(& tmp_17),(size_t)4);
       __e_acsl_initialize((void *)(dl + 3),sizeof(char));
+      /*@ assert Eva: mem_access: \valid(dl + 3); */
       *(dl + 3) = (char)'a';
       __e_acsl_full_init((void *)(& tmp_17));
       tmp_17 = __gen_e_acsl_strcmp((char const *)dl,(char const *)dr);
@@ -466,19 +453,15 @@ int main(int argc, char const **argv)
     else {
       int process_status_4;
       __e_acsl_store_block((void *)(& process_status_4),(size_t)4);
-      waitpid(pid_4,& process_status_4,0);
+      __gen_e_acsl_waitpid(pid_4,& process_status_4,0);
+      /*@ assert Eva: initialization: \initialized(&process_status_4); */
       signal_eval(process_status_4,1,__gen_e_acsl_literal_string_13);
       __e_acsl_delete_block((void *)(& process_status_4));
     }
-    __e_acsl_delete_block((void *)(& tmp_16));
     __e_acsl_delete_block((void *)(& pid_4));
   }
   {
-    int tmp_19;
-    __e_acsl_store_block((void *)(& tmp_19),(size_t)4);
-    __e_acsl_full_init((void *)(& tmp_19));
-    tmp_19 = fork();
-    pid_t pid_5 = (unsigned int)tmp_19;
+    pid_t pid_5 = fork();
     __e_acsl_store_block((void *)(& pid_5),(size_t)4);
     __e_acsl_full_init((void *)(& pid_5));
     if (! pid_5) {
@@ -487,6 +470,7 @@ int main(int argc, char const **argv)
       __e_acsl_store_block((void *)(& tmp_21),(size_t)4);
       __e_acsl_store_block((void *)(& tmp_20),(size_t)4);
       __e_acsl_initialize((void *)(dr + 3),sizeof(char));
+      /*@ assert Eva: mem_access: \valid(dr + 3); */
       *(dr + 3) = (char)'a';
       __e_acsl_full_init((void *)(& tmp_20));
       tmp_20 = __gen_e_acsl_strcmp((char const *)dl,(char const *)dr);
@@ -500,19 +484,15 @@ int main(int argc, char const **argv)
     else {
       int process_status_5;
       __e_acsl_store_block((void *)(& process_status_5),(size_t)4);
-      waitpid(pid_5,& process_status_5,0);
+      __gen_e_acsl_waitpid(pid_5,& process_status_5,0);
+      /*@ assert Eva: initialization: \initialized(&process_status_5); */
       signal_eval(process_status_5,1,__gen_e_acsl_literal_string_14);
       __e_acsl_delete_block((void *)(& process_status_5));
     }
-    __e_acsl_delete_block((void *)(& tmp_19));
     __e_acsl_delete_block((void *)(& pid_5));
   }
   {
-    int tmp_22;
-    __e_acsl_store_block((void *)(& tmp_22),(size_t)4);
-    __e_acsl_full_init((void *)(& tmp_22));
-    tmp_22 = fork();
-    pid_t pid_6 = (unsigned int)tmp_22;
+    pid_t pid_6 = fork();
     __e_acsl_store_block((void *)(& pid_6),(size_t)4);
     __e_acsl_full_init((void *)(& pid_6));
     if (! pid_6) {
@@ -532,19 +512,15 @@ int main(int argc, char const **argv)
     else {
       int process_status_6;
       __e_acsl_store_block((void *)(& process_status_6),(size_t)4);
-      waitpid(pid_6,& process_status_6,0);
+      __gen_e_acsl_waitpid(pid_6,& process_status_6,0);
+      /*@ assert Eva: initialization: \initialized(&process_status_6); */
       signal_eval(process_status_6,1,__gen_e_acsl_literal_string_15);
       __e_acsl_delete_block((void *)(& process_status_6));
     }
-    __e_acsl_delete_block((void *)(& tmp_22));
     __e_acsl_delete_block((void *)(& pid_6));
   }
   {
-    int tmp_25;
-    __e_acsl_store_block((void *)(& tmp_25),(size_t)4);
-    __e_acsl_full_init((void *)(& tmp_25));
-    tmp_25 = fork();
-    pid_t pid_7 = (unsigned int)tmp_25;
+    pid_t pid_7 = fork();
     __e_acsl_store_block((void *)(& pid_7),(size_t)4);
     __e_acsl_full_init((void *)(& pid_7));
     if (! pid_7) {
@@ -564,21 +540,17 @@ int main(int argc, char const **argv)
     else {
       int process_status_7;
       __e_acsl_store_block((void *)(& process_status_7),(size_t)4);
-      waitpid(pid_7,& process_status_7,0);
+      __gen_e_acsl_waitpid(pid_7,& process_status_7,0);
+      /*@ assert Eva: initialization: \initialized(&process_status_7); */
       signal_eval(process_status_7,1,__gen_e_acsl_literal_string_16);
       __e_acsl_delete_block((void *)(& process_status_7));
     }
-    __e_acsl_delete_block((void *)(& tmp_25));
     __e_acsl_delete_block((void *)(& pid_7));
   }
   free((void *)dl);
   free((void *)dr);
   {
-    int tmp_28;
-    __e_acsl_store_block((void *)(& tmp_28),(size_t)4);
-    __e_acsl_full_init((void *)(& tmp_28));
-    tmp_28 = fork();
-    pid_t pid_8 = (unsigned int)tmp_28;
+    pid_t pid_8 = fork();
     __e_acsl_store_block((void *)(& pid_8),(size_t)4);
     __e_acsl_full_init((void *)(& pid_8));
     if (! pid_8) {
@@ -598,19 +570,15 @@ int main(int argc, char const **argv)
     else {
       int process_status_8;
       __e_acsl_store_block((void *)(& process_status_8),(size_t)4);
-      waitpid(pid_8,& process_status_8,0);
+      __gen_e_acsl_waitpid(pid_8,& process_status_8,0);
+      /*@ assert Eva: initialization: \initialized(&process_status_8); */
       signal_eval(process_status_8,1,__gen_e_acsl_literal_string_17);
       __e_acsl_delete_block((void *)(& process_status_8));
     }
-    __e_acsl_delete_block((void *)(& tmp_28));
     __e_acsl_delete_block((void *)(& pid_8));
   }
   {
-    int tmp_31;
-    __e_acsl_store_block((void *)(& tmp_31),(size_t)4);
-    __e_acsl_full_init((void *)(& tmp_31));
-    tmp_31 = fork();
-    pid_t pid_9 = (unsigned int)tmp_31;
+    pid_t pid_9 = fork();
     __e_acsl_store_block((void *)(& pid_9),(size_t)4);
     __e_acsl_full_init((void *)(& pid_9));
     if (! pid_9) {
@@ -630,11 +598,11 @@ int main(int argc, char const **argv)
     else {
       int process_status_9;
       __e_acsl_store_block((void *)(& process_status_9),(size_t)4);
-      waitpid(pid_9,& process_status_9,0);
+      __gen_e_acsl_waitpid(pid_9,& process_status_9,0);
+      /*@ assert Eva: initialization: \initialized(&process_status_9); */
       signal_eval(process_status_9,1,__gen_e_acsl_literal_string_18);
       __e_acsl_delete_block((void *)(& process_status_9));
     }
-    __e_acsl_delete_block((void *)(& tmp_31));
     __e_acsl_delete_block((void *)(& pid_9));
   }
   __e_acsl_full_init((void *)(& dl));
@@ -642,11 +610,7 @@ int main(int argc, char const **argv)
   __e_acsl_full_init((void *)(& dr));
   dr = __gen_e_acsl_strdup(__gen_e_acsl_literal_string_6);
   {
-    int tmp_34;
-    __e_acsl_store_block((void *)(& tmp_34),(size_t)4);
-    __e_acsl_full_init((void *)(& tmp_34));
-    tmp_34 = fork();
-    pid_t pid_10 = (unsigned int)tmp_34;
+    pid_t pid_10 = fork();
     __e_acsl_store_block((void *)(& pid_10),(size_t)4);
     __e_acsl_full_init((void *)(& pid_10));
     if (! pid_10) {
@@ -666,19 +630,15 @@ int main(int argc, char const **argv)
     else {
       int process_status_10;
       __e_acsl_store_block((void *)(& process_status_10),(size_t)4);
-      waitpid(pid_10,& process_status_10,0);
+      __gen_e_acsl_waitpid(pid_10,& process_status_10,0);
+      /*@ assert Eva: initialization: \initialized(&process_status_10); */
       signal_eval(process_status_10,0,__gen_e_acsl_literal_string_19);
       __e_acsl_delete_block((void *)(& process_status_10));
     }
-    __e_acsl_delete_block((void *)(& tmp_34));
     __e_acsl_delete_block((void *)(& pid_10));
   }
   {
-    int tmp_37;
-    __e_acsl_store_block((void *)(& tmp_37),(size_t)4);
-    __e_acsl_full_init((void *)(& tmp_37));
-    tmp_37 = fork();
-    pid_t pid_11 = (unsigned int)tmp_37;
+    pid_t pid_11 = fork();
     __e_acsl_store_block((void *)(& pid_11),(size_t)4);
     __e_acsl_full_init((void *)(& pid_11));
     if (! pid_11) {
@@ -700,19 +660,15 @@ int main(int argc, char const **argv)
     else {
       int process_status_11;
       __e_acsl_store_block((void *)(& process_status_11),(size_t)4);
-      waitpid(pid_11,& process_status_11,0);
+      __gen_e_acsl_waitpid(pid_11,& process_status_11,0);
+      /*@ assert Eva: initialization: \initialized(&process_status_11); */
       signal_eval(process_status_11,0,__gen_e_acsl_literal_string_20);
       __e_acsl_delete_block((void *)(& process_status_11));
     }
-    __e_acsl_delete_block((void *)(& tmp_37));
     __e_acsl_delete_block((void *)(& pid_11));
   }
   {
-    int tmp_40;
-    __e_acsl_store_block((void *)(& tmp_40),(size_t)4);
-    __e_acsl_full_init((void *)(& tmp_40));
-    tmp_40 = fork();
-    pid_t pid_12 = (unsigned int)tmp_40;
+    pid_t pid_12 = fork();
     __e_acsl_store_block((void *)(& pid_12),(size_t)4);
     __e_acsl_full_init((void *)(& pid_12));
     if (! pid_12) {
@@ -734,19 +690,15 @@ int main(int argc, char const **argv)
     else {
       int process_status_12;
       __e_acsl_store_block((void *)(& process_status_12),(size_t)4);
-      waitpid(pid_12,& process_status_12,0);
+      __gen_e_acsl_waitpid(pid_12,& process_status_12,0);
+      /*@ assert Eva: initialization: \initialized(&process_status_12); */
       signal_eval(process_status_12,0,__gen_e_acsl_literal_string_21);
       __e_acsl_delete_block((void *)(& process_status_12));
     }
-    __e_acsl_delete_block((void *)(& tmp_40));
     __e_acsl_delete_block((void *)(& pid_12));
   }
   {
-    int tmp_43;
-    __e_acsl_store_block((void *)(& tmp_43),(size_t)4);
-    __e_acsl_full_init((void *)(& tmp_43));
-    tmp_43 = fork();
-    pid_t pid_13 = (unsigned int)tmp_43;
+    pid_t pid_13 = fork();
     __e_acsl_store_block((void *)(& pid_13),(size_t)4);
     __e_acsl_full_init((void *)(& pid_13));
     if (! pid_13) {
@@ -768,19 +720,15 @@ int main(int argc, char const **argv)
     else {
       int process_status_13;
       __e_acsl_store_block((void *)(& process_status_13),(size_t)4);
-      waitpid(pid_13,& process_status_13,0);
+      __gen_e_acsl_waitpid(pid_13,& process_status_13,0);
+      /*@ assert Eva: initialization: \initialized(&process_status_13); */
       signal_eval(process_status_13,0,__gen_e_acsl_literal_string_22);
       __e_acsl_delete_block((void *)(& process_status_13));
     }
-    __e_acsl_delete_block((void *)(& tmp_43));
     __e_acsl_delete_block((void *)(& pid_13));
   }
   {
-    int tmp_46;
-    __e_acsl_store_block((void *)(& tmp_46),(size_t)4);
-    __e_acsl_full_init((void *)(& tmp_46));
-    tmp_46 = fork();
-    pid_t pid_14 = (unsigned int)tmp_46;
+    pid_t pid_14 = fork();
     __e_acsl_store_block((void *)(& pid_14),(size_t)4);
     __e_acsl_full_init((void *)(& pid_14));
     if (! pid_14) {
@@ -802,19 +750,15 @@ int main(int argc, char const **argv)
     else {
       int process_status_14;
       __e_acsl_store_block((void *)(& process_status_14),(size_t)4);
-      waitpid(pid_14,& process_status_14,0);
+      __gen_e_acsl_waitpid(pid_14,& process_status_14,0);
+      /*@ assert Eva: initialization: \initialized(&process_status_14); */
       signal_eval(process_status_14,0,__gen_e_acsl_literal_string_23);
       __e_acsl_delete_block((void *)(& process_status_14));
     }
-    __e_acsl_delete_block((void *)(& tmp_46));
     __e_acsl_delete_block((void *)(& pid_14));
   }
   {
-    int tmp_49;
-    __e_acsl_store_block((void *)(& tmp_49),(size_t)4);
-    __e_acsl_full_init((void *)(& tmp_49));
-    tmp_49 = fork();
-    pid_t pid_15 = (unsigned int)tmp_49;
+    pid_t pid_15 = fork();
     __e_acsl_store_block((void *)(& pid_15),(size_t)4);
     __e_acsl_full_init((void *)(& pid_15));
     if (! pid_15) {
@@ -838,19 +782,15 @@ int main(int argc, char const **argv)
     else {
       int process_status_15;
       __e_acsl_store_block((void *)(& process_status_15),(size_t)4);
-      waitpid(pid_15,& process_status_15,0);
+      __gen_e_acsl_waitpid(pid_15,& process_status_15,0);
+      /*@ assert Eva: initialization: \initialized(&process_status_15); */
       signal_eval(process_status_15,0,__gen_e_acsl_literal_string_25);
       __e_acsl_delete_block((void *)(& process_status_15));
     }
-    __e_acsl_delete_block((void *)(& tmp_49));
     __e_acsl_delete_block((void *)(& pid_15));
   }
   {
-    int tmp_52;
-    __e_acsl_store_block((void *)(& tmp_52),(size_t)4);
-    __e_acsl_full_init((void *)(& tmp_52));
-    tmp_52 = fork();
-    pid_t pid_16 = (unsigned int)tmp_52;
+    pid_t pid_16 = fork();
     __e_acsl_store_block((void *)(& pid_16),(size_t)4);
     __e_acsl_full_init((void *)(& pid_16));
     if (! pid_16) {
@@ -874,19 +814,15 @@ int main(int argc, char const **argv)
     else {
       int process_status_16;
       __e_acsl_store_block((void *)(& process_status_16),(size_t)4);
-      waitpid(pid_16,& process_status_16,0);
+      __gen_e_acsl_waitpid(pid_16,& process_status_16,0);
+      /*@ assert Eva: initialization: \initialized(&process_status_16); */
       signal_eval(process_status_16,0,__gen_e_acsl_literal_string_26);
       __e_acsl_delete_block((void *)(& process_status_16));
     }
-    __e_acsl_delete_block((void *)(& tmp_52));
     __e_acsl_delete_block((void *)(& pid_16));
   }
   {
-    int tmp_55;
-    __e_acsl_store_block((void *)(& tmp_55),(size_t)4);
-    __e_acsl_full_init((void *)(& tmp_55));
-    tmp_55 = fork();
-    pid_t pid_17 = (unsigned int)tmp_55;
+    pid_t pid_17 = fork();
     __e_acsl_store_block((void *)(& pid_17),(size_t)4);
     __e_acsl_full_init((void *)(& pid_17));
     if (! pid_17) {
@@ -895,6 +831,7 @@ int main(int argc, char const **argv)
       __e_acsl_store_block((void *)(& tmp_57),(size_t)4);
       __e_acsl_store_block((void *)(& tmp_56),(size_t)4);
       __e_acsl_initialize((void *)(dl + 3),sizeof(char));
+      /*@ assert Eva: mem_access: \valid(dl + 3); */
       *(dl + 3) = (char)'d';
       __e_acsl_full_init((void *)(& tmp_56));
       tmp_56 = __gen_e_acsl_strncmp((char const *)dl,(char const *)dr,
@@ -910,19 +847,15 @@ int main(int argc, char const **argv)
     else {
       int process_status_17;
       __e_acsl_store_block((void *)(& process_status_17),(size_t)4);
-      waitpid(pid_17,& process_status_17,0);
+      __gen_e_acsl_waitpid(pid_17,& process_status_17,0);
+      /*@ assert Eva: initialization: \initialized(&process_status_17); */
       signal_eval(process_status_17,0,__gen_e_acsl_literal_string_27);
       __e_acsl_delete_block((void *)(& process_status_17));
     }
-    __e_acsl_delete_block((void *)(& tmp_55));
     __e_acsl_delete_block((void *)(& pid_17));
   }
   {
-    int tmp_58;
-    __e_acsl_store_block((void *)(& tmp_58),(size_t)4);
-    __e_acsl_full_init((void *)(& tmp_58));
-    tmp_58 = fork();
-    pid_t pid_18 = (unsigned int)tmp_58;
+    pid_t pid_18 = fork();
     __e_acsl_store_block((void *)(& pid_18),(size_t)4);
     __e_acsl_full_init((void *)(& pid_18));
     if (! pid_18) {
@@ -931,6 +864,7 @@ int main(int argc, char const **argv)
       __e_acsl_store_block((void *)(& tmp_60),(size_t)4);
       __e_acsl_store_block((void *)(& tmp_59),(size_t)4);
       __e_acsl_initialize((void *)(dr + 3),sizeof(char));
+      /*@ assert Eva: mem_access: \valid(dr + 3); */
       *(dr + 3) = (char)'d';
       __e_acsl_full_init((void *)(& tmp_59));
       tmp_59 = __gen_e_acsl_strncmp((char const *)dl,(char const *)dr,
@@ -946,19 +880,15 @@ int main(int argc, char const **argv)
     else {
       int process_status_18;
       __e_acsl_store_block((void *)(& process_status_18),(size_t)4);
-      waitpid(pid_18,& process_status_18,0);
+      __gen_e_acsl_waitpid(pid_18,& process_status_18,0);
+      /*@ assert Eva: initialization: \initialized(&process_status_18); */
       signal_eval(process_status_18,0,__gen_e_acsl_literal_string_28);
       __e_acsl_delete_block((void *)(& process_status_18));
     }
-    __e_acsl_delete_block((void *)(& tmp_58));
     __e_acsl_delete_block((void *)(& pid_18));
   }
   {
-    int tmp_61;
-    __e_acsl_store_block((void *)(& tmp_61),(size_t)4);
-    __e_acsl_full_init((void *)(& tmp_61));
-    tmp_61 = fork();
-    pid_t pid_19 = (unsigned int)tmp_61;
+    pid_t pid_19 = fork();
     __e_acsl_store_block((void *)(& pid_19),(size_t)4);
     __e_acsl_full_init((void *)(& pid_19));
     if (! pid_19) {
@@ -972,19 +902,15 @@ int main(int argc, char const **argv)
     else {
       int process_status_19;
       __e_acsl_store_block((void *)(& process_status_19),(size_t)4);
-      waitpid(pid_19,& process_status_19,0);
+      __gen_e_acsl_waitpid(pid_19,& process_status_19,0);
+      /*@ assert Eva: initialization: \initialized(&process_status_19); */
       signal_eval(process_status_19,1,__gen_e_acsl_literal_string_29);
       __e_acsl_delete_block((void *)(& process_status_19));
     }
-    __e_acsl_delete_block((void *)(& tmp_61));
     __e_acsl_delete_block((void *)(& pid_19));
   }
   {
-    int tmp_62;
-    __e_acsl_store_block((void *)(& tmp_62),(size_t)4);
-    __e_acsl_full_init((void *)(& tmp_62));
-    tmp_62 = fork();
-    pid_t pid_20 = (unsigned int)tmp_62;
+    pid_t pid_20 = fork();
     __e_acsl_store_block((void *)(& pid_20),(size_t)4);
     __e_acsl_full_init((void *)(& pid_20));
     if (! pid_20) {
@@ -998,23 +924,20 @@ int main(int argc, char const **argv)
     else {
       int process_status_20;
       __e_acsl_store_block((void *)(& process_status_20),(size_t)4);
-      waitpid(pid_20,& process_status_20,0);
+      __gen_e_acsl_waitpid(pid_20,& process_status_20,0);
+      /*@ assert Eva: initialization: \initialized(&process_status_20); */
       signal_eval(process_status_20,1,__gen_e_acsl_literal_string_30);
       __e_acsl_delete_block((void *)(& process_status_20));
     }
-    __e_acsl_delete_block((void *)(& tmp_62));
     __e_acsl_delete_block((void *)(& pid_20));
   }
   {
-    int tmp_63;
-    __e_acsl_store_block((void *)(& tmp_63),(size_t)4);
-    __e_acsl_full_init((void *)(& tmp_63));
-    tmp_63 = fork();
-    pid_t pid_21 = (unsigned int)tmp_63;
+    pid_t pid_21 = fork();
     __e_acsl_store_block((void *)(& pid_21),(size_t)4);
     __e_acsl_full_init((void *)(& pid_21));
     if (! pid_21) {
       __e_acsl_initialize((void *)(dl + 3),sizeof(char));
+      /*@ assert Eva: mem_access: \valid(dl + 3); */
       *(dl + 3) = (char)'d';
       __e_acsl_full_init((void *)(& res));
       res = __gen_e_acsl_strncmp((char const *)dl,(char const *)dr,
@@ -1024,23 +947,20 @@ int main(int argc, char const **argv)
     else {
       int process_status_21;
       __e_acsl_store_block((void *)(& process_status_21),(size_t)4);
-      waitpid(pid_21,& process_status_21,0);
+      __gen_e_acsl_waitpid(pid_21,& process_status_21,0);
+      /*@ assert Eva: initialization: \initialized(&process_status_21); */
       signal_eval(process_status_21,1,__gen_e_acsl_literal_string_31);
       __e_acsl_delete_block((void *)(& process_status_21));
     }
-    __e_acsl_delete_block((void *)(& tmp_63));
     __e_acsl_delete_block((void *)(& pid_21));
   }
   {
-    int tmp_64;
-    __e_acsl_store_block((void *)(& tmp_64),(size_t)4);
-    __e_acsl_full_init((void *)(& tmp_64));
-    tmp_64 = fork();
-    pid_t pid_22 = (unsigned int)tmp_64;
+    pid_t pid_22 = fork();
     __e_acsl_store_block((void *)(& pid_22),(size_t)4);
     __e_acsl_full_init((void *)(& pid_22));
     if (! pid_22) {
       __e_acsl_initialize((void *)(dr + 3),sizeof(char));
+      /*@ assert Eva: mem_access: \valid(dr + 3); */
       *(dr + 3) = (char)'d';
       __e_acsl_full_init((void *)(& res));
       res = __gen_e_acsl_strncmp((char const *)dl,(char const *)dr,
@@ -1050,11 +970,11 @@ int main(int argc, char const **argv)
     else {
       int process_status_22;
       __e_acsl_store_block((void *)(& process_status_22),(size_t)4);
-      waitpid(pid_22,& process_status_22,0);
+      __gen_e_acsl_waitpid(pid_22,& process_status_22,0);
+      /*@ assert Eva: initialization: \initialized(&process_status_22); */
       signal_eval(process_status_22,1,__gen_e_acsl_literal_string_32);
       __e_acsl_delete_block((void *)(& process_status_22));
     }
-    __e_acsl_delete_block((void *)(& tmp_64));
     __e_acsl_delete_block((void *)(& pid_22));
   }
   free((void *)dl);
@@ -1064,6 +984,8 @@ int main(int argc, char const **argv)
   __e_acsl_delete_block((void *)(& argv));
   __e_acsl_delete_block((void *)(& argc));
   __e_acsl_delete_block((void *)(& fail_ncomp));
+  __e_acsl_delete_block((void *)(& __fc_p_strerror));
+  __e_acsl_delete_block((void *)(strerror));
   __e_acsl_delete_block((void *)(& __fc_strtok_ptr));
   __e_acsl_delete_block((void *)(& signal_eval));
   __e_acsl_delete_block((void *)(& testno));
diff --git a/src/plugins/e-acsl/tests/builtin/oracle/gen_strcpy.c b/src/plugins/e-acsl/tests/builtin/oracle/gen_strcpy.c
index 747de31e278bceba4f652e78425c2f6f1b26c24e..c0c88093754aaad70697038cfcf4d2deb13dbf64 100644
--- a/src/plugins/e-acsl/tests/builtin/oracle/gen_strcpy.c
+++ b/src/plugins/e-acsl/tests/builtin/oracle/gen_strcpy.c
@@ -30,150 +30,161 @@ char *__gen_e_acsl_literal_string_4;
 char *__gen_e_acsl_literal_string_8;
 /*@ assigns \result;
     assigns \result \from \nothing; */
-extern int ( /* missing proto */ fork)();
+extern int ( /* missing proto */ fork)(void);
 
 void __e_acsl_globals_init(void)
 {
-  __gen_e_acsl_literal_string_24 = "tests/builtin/strcpy.c:39";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_24,
-                       sizeof("tests/builtin/strcpy.c:39"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_24);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_24);
-  __gen_e_acsl_literal_string_23 = "tests/builtin/strcpy.c:38";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_23,
-                       sizeof("tests/builtin/strcpy.c:38"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_23);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_23);
-  __gen_e_acsl_literal_string_22 = "tests/builtin/strcpy.c:37";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_22,
-                       sizeof("tests/builtin/strcpy.c:37"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_22);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_22);
-  __gen_e_acsl_literal_string_21 = "tests/builtin/strcpy.c:36";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_21,
-                       sizeof("tests/builtin/strcpy.c:36"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_21);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_21);
-  __gen_e_acsl_literal_string_20 = "tests/builtin/strcpy.c:35";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_20,
-                       sizeof("tests/builtin/strcpy.c:35"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_20);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_20);
-  __gen_e_acsl_literal_string_19 = "tests/builtin/strcpy.c:34";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_19,
-                       sizeof("tests/builtin/strcpy.c:34"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_19);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_19);
-  __gen_e_acsl_literal_string_18 = "tests/builtin/strcpy.c:33";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_18,
-                       sizeof("tests/builtin/strcpy.c:33"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_18);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_18);
-  __gen_e_acsl_literal_string_17 = "tests/builtin/strcpy.c:32";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_17,
-                       sizeof("tests/builtin/strcpy.c:32"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_17);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_17);
-  __gen_e_acsl_literal_string_16 = "tests/builtin/strcpy.c:29";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_16,
-                       sizeof("tests/builtin/strcpy.c:29"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_16);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_16);
-  __gen_e_acsl_literal_string_15 = "tests/builtin/strcpy.c:28";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_15,
-                       sizeof("tests/builtin/strcpy.c:28"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_15);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_15);
-  __gen_e_acsl_literal_string_14 = "tests/builtin/strcpy.c:27";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_14,
-                       sizeof("tests/builtin/strcpy.c:27"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_14);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_14);
-  __gen_e_acsl_literal_string_13 = "tests/builtin/strcpy.c:26";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_13,
-                       sizeof("tests/builtin/strcpy.c:26"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_13);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_13);
-  __gen_e_acsl_literal_string_12 = "tests/builtin/strcpy.c:25";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_12,
-                       sizeof("tests/builtin/strcpy.c:25"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_12);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_12);
-  __gen_e_acsl_literal_string_11 = "tests/builtin/strcpy.c:24";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_11,
-                       sizeof("tests/builtin/strcpy.c:24"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_11);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_11);
-  __gen_e_acsl_literal_string_10 = "tests/builtin/strcpy.c:23";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_10,
-                       sizeof("tests/builtin/strcpy.c:23"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_10);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_10);
-  __gen_e_acsl_literal_string_9 = "tests/builtin/strcpy.c:22";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_9,
-                       sizeof("tests/builtin/strcpy.c:22"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_9);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_9);
-  __gen_e_acsl_literal_string_7 = "tests/builtin/strcpy.c:21";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_7,
-                       sizeof("tests/builtin/strcpy.c:21"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_7);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_7);
-  __gen_e_acsl_literal_string_6 = "abcd";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_6,sizeof("abcd"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_6);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_6);
-  __gen_e_acsl_literal_string = "TEST %d: ";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string,
-                       sizeof("TEST %d: "));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string);
-  __gen_e_acsl_literal_string_2 = "OK: Expected signal at %s\n";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_2,
-                       sizeof("OK: Expected signal at %s\n"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_2);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_2);
-  __gen_e_acsl_literal_string_3 = "OK: Expected execution at %s\n";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_3,
-                       sizeof("OK: Expected execution at %s\n"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_3);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_3);
-  __gen_e_acsl_literal_string_5 = "FAIL: Unexpected signal at %s\n";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_5,
-                       sizeof("FAIL: Unexpected signal at %s\n"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_5);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_5);
-  __gen_e_acsl_literal_string_4 = "FAIL: Unexpected execution at %s\n";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_4,
-                       sizeof("FAIL: Unexpected execution at %s\n"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_4);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_4);
-  __gen_e_acsl_literal_string_8 = "";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_8,sizeof(""));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_8);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_8);
-  __e_acsl_store_block((void *)(& __gen_e_acsl_strdup),(size_t)1);
-  __e_acsl_full_init((void *)(& __gen_e_acsl_strdup));
-  __e_acsl_store_block((void *)(& __gen_e_acsl_strncpy),(size_t)1);
-  __e_acsl_full_init((void *)(& __gen_e_acsl_strncpy));
-  __e_acsl_store_block((void *)(& __gen_e_acsl_strcpy),(size_t)1);
-  __e_acsl_full_init((void *)(& __gen_e_acsl_strcpy));
-  __e_acsl_store_block((void *)(& __gen_e_acsl_exit),(size_t)1);
-  __e_acsl_full_init((void *)(& __gen_e_acsl_exit));
-  __e_acsl_store_block((void *)(& __fc_strtok_ptr),(size_t)8);
-  __e_acsl_full_init((void *)(& __fc_strtok_ptr));
-  __e_acsl_store_block((void *)(& signal_eval),(size_t)1);
-  __e_acsl_full_init((void *)(& signal_eval));
-  __e_acsl_store_block((void *)(& testno),(size_t)4);
-  __e_acsl_full_init((void *)(& testno));
-  __e_acsl_store_block((void *)(& __fc_time),(size_t)4);
-  __e_acsl_full_init((void *)(& __fc_time));
-  __e_acsl_store_block((void *)(& __fc_p_fopen),(size_t)8);
-  __e_acsl_full_init((void *)(& __fc_p_fopen));
-  __e_acsl_store_block((void *)(__fc_fopen),(size_t)128);
-  __e_acsl_full_init((void *)(& __fc_fopen));
-  __e_acsl_store_block((void *)(& __fc_rand_max),(size_t)8);
-  __e_acsl_full_init((void *)(& __fc_rand_max));
+  static char __e_acsl_already_run = 0;
+  if (! __e_acsl_already_run) {
+    __e_acsl_already_run = 1;
+    __gen_e_acsl_literal_string_24 = "tests/builtin/strcpy.c:39";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_24,
+                         sizeof("tests/builtin/strcpy.c:39"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_24);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_24);
+    __gen_e_acsl_literal_string_23 = "tests/builtin/strcpy.c:38";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_23,
+                         sizeof("tests/builtin/strcpy.c:38"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_23);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_23);
+    __gen_e_acsl_literal_string_22 = "tests/builtin/strcpy.c:37";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_22,
+                         sizeof("tests/builtin/strcpy.c:37"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_22);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_22);
+    __gen_e_acsl_literal_string_21 = "tests/builtin/strcpy.c:36";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_21,
+                         sizeof("tests/builtin/strcpy.c:36"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_21);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_21);
+    __gen_e_acsl_literal_string_20 = "tests/builtin/strcpy.c:35";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_20,
+                         sizeof("tests/builtin/strcpy.c:35"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_20);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_20);
+    __gen_e_acsl_literal_string_19 = "tests/builtin/strcpy.c:34";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_19,
+                         sizeof("tests/builtin/strcpy.c:34"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_19);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_19);
+    __gen_e_acsl_literal_string_18 = "tests/builtin/strcpy.c:33";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_18,
+                         sizeof("tests/builtin/strcpy.c:33"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_18);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_18);
+    __gen_e_acsl_literal_string_17 = "tests/builtin/strcpy.c:32";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_17,
+                         sizeof("tests/builtin/strcpy.c:32"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_17);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_17);
+    __gen_e_acsl_literal_string_16 = "tests/builtin/strcpy.c:29";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_16,
+                         sizeof("tests/builtin/strcpy.c:29"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_16);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_16);
+    __gen_e_acsl_literal_string_15 = "tests/builtin/strcpy.c:28";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_15,
+                         sizeof("tests/builtin/strcpy.c:28"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_15);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_15);
+    __gen_e_acsl_literal_string_14 = "tests/builtin/strcpy.c:27";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_14,
+                         sizeof("tests/builtin/strcpy.c:27"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_14);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_14);
+    __gen_e_acsl_literal_string_13 = "tests/builtin/strcpy.c:26";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_13,
+                         sizeof("tests/builtin/strcpy.c:26"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_13);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_13);
+    __gen_e_acsl_literal_string_12 = "tests/builtin/strcpy.c:25";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_12,
+                         sizeof("tests/builtin/strcpy.c:25"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_12);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_12);
+    __gen_e_acsl_literal_string_11 = "tests/builtin/strcpy.c:24";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_11,
+                         sizeof("tests/builtin/strcpy.c:24"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_11);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_11);
+    __gen_e_acsl_literal_string_10 = "tests/builtin/strcpy.c:23";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_10,
+                         sizeof("tests/builtin/strcpy.c:23"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_10);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_10);
+    __gen_e_acsl_literal_string_9 = "tests/builtin/strcpy.c:22";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_9,
+                         sizeof("tests/builtin/strcpy.c:22"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_9);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_9);
+    __gen_e_acsl_literal_string_7 = "tests/builtin/strcpy.c:21";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_7,
+                         sizeof("tests/builtin/strcpy.c:21"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_7);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_7);
+    __gen_e_acsl_literal_string_6 = "abcd";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_6,
+                         sizeof("abcd"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_6);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_6);
+    __gen_e_acsl_literal_string = "TEST %d: ";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string,
+                         sizeof("TEST %d: "));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string);
+    __gen_e_acsl_literal_string_2 = "OK: Expected signal at %s\n";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_2,
+                         sizeof("OK: Expected signal at %s\n"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_2);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_2);
+    __gen_e_acsl_literal_string_3 = "OK: Expected execution at %s\n";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_3,
+                         sizeof("OK: Expected execution at %s\n"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_3);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_3);
+    __gen_e_acsl_literal_string_5 = "FAIL: Unexpected signal at %s\n";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_5,
+                         sizeof("FAIL: Unexpected signal at %s\n"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_5);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_5);
+    __gen_e_acsl_literal_string_4 = "FAIL: Unexpected execution at %s\n";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_4,
+                         sizeof("FAIL: Unexpected execution at %s\n"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_4);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_4);
+    __gen_e_acsl_literal_string_8 = "";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_8,sizeof(""));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_8);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_8);
+    __e_acsl_store_block((void *)(& __gen_e_acsl_strdup),(size_t)1);
+    __e_acsl_full_init((void *)(& __gen_e_acsl_strdup));
+    __e_acsl_store_block((void *)(& __gen_e_acsl_strncpy),(size_t)1);
+    __e_acsl_full_init((void *)(& __gen_e_acsl_strncpy));
+    __e_acsl_store_block((void *)(& __gen_e_acsl_strcpy),(size_t)1);
+    __e_acsl_full_init((void *)(& __gen_e_acsl_strcpy));
+    __e_acsl_store_block((void *)(& __gen_e_acsl_waitpid),(size_t)1);
+    __e_acsl_full_init((void *)(& __gen_e_acsl_waitpid));
+    __e_acsl_store_block((void *)(& __gen_e_acsl_exit),(size_t)1);
+    __e_acsl_full_init((void *)(& __gen_e_acsl_exit));
+    __e_acsl_store_block((void *)(& __fc_p_strerror),(size_t)8);
+    __e_acsl_full_init((void *)(& __fc_p_strerror));
+    __e_acsl_store_block((void *)(strerror),(size_t)64);
+    __e_acsl_full_init((void *)(& strerror));
+    __e_acsl_store_block((void *)(& __fc_strtok_ptr),(size_t)8);
+    __e_acsl_full_init((void *)(& __fc_strtok_ptr));
+    __e_acsl_store_block((void *)(& signal_eval),(size_t)1);
+    __e_acsl_full_init((void *)(& signal_eval));
+    __e_acsl_store_block((void *)(& testno),(size_t)4);
+    __e_acsl_full_init((void *)(& testno));
+    __e_acsl_store_block((void *)(& __fc_time),(size_t)4);
+    __e_acsl_full_init((void *)(& __fc_time));
+    __e_acsl_store_block((void *)(& __fc_p_fopen),(size_t)8);
+    __e_acsl_full_init((void *)(& __fc_p_fopen));
+    __e_acsl_store_block((void *)(__fc_fopen),(size_t)128);
+    __e_acsl_full_init((void *)(& __fc_fopen));
+    __e_acsl_store_block((void *)(& __fc_rand_max),(size_t)8);
+    __e_acsl_full_init((void *)(& __fc_rand_max));
+  }
   return;
 }
 
@@ -210,11 +221,7 @@ int main(int argc, char const **argv)
   __e_acsl_full_init((void *)(& unalloc_str));
   free((void *)unalloc_str);
   {
-    int tmp_3;
-    __e_acsl_store_block((void *)(& tmp_3),(size_t)4);
-    __e_acsl_full_init((void *)(& tmp_3));
-    tmp_3 = fork();
-    pid_t pid = (unsigned int)tmp_3;
+    pid_t pid = fork();
     __e_acsl_store_block((void *)(& pid),(size_t)4);
     __e_acsl_full_init((void *)(& pid));
     if (! pid) {
@@ -224,19 +231,15 @@ int main(int argc, char const **argv)
     else {
       int process_status;
       __e_acsl_store_block((void *)(& process_status),(size_t)4);
-      waitpid(pid,& process_status,0);
+      __gen_e_acsl_waitpid(pid,& process_status,0);
+      /*@ assert Eva: initialization: \initialized(&process_status); */
       signal_eval(process_status,0,__gen_e_acsl_literal_string_7);
       __e_acsl_delete_block((void *)(& process_status));
     }
-    __e_acsl_delete_block((void *)(& tmp_3));
     __e_acsl_delete_block((void *)(& pid));
   }
   {
-    int tmp_4;
-    __e_acsl_store_block((void *)(& tmp_4),(size_t)4);
-    __e_acsl_full_init((void *)(& tmp_4));
-    tmp_4 = fork();
-    pid_t pid_0 = (unsigned int)tmp_4;
+    pid_t pid_0 = fork();
     __e_acsl_store_block((void *)(& pid_0),(size_t)4);
     __e_acsl_full_init((void *)(& pid_0));
     if (! pid_0) {
@@ -246,19 +249,15 @@ int main(int argc, char const **argv)
     else {
       int process_status_0;
       __e_acsl_store_block((void *)(& process_status_0),(size_t)4);
-      waitpid(pid_0,& process_status_0,0);
+      __gen_e_acsl_waitpid(pid_0,& process_status_0,0);
+      /*@ assert Eva: initialization: \initialized(&process_status_0); */
       signal_eval(process_status_0,0,__gen_e_acsl_literal_string_9);
       __e_acsl_delete_block((void *)(& process_status_0));
     }
-    __e_acsl_delete_block((void *)(& tmp_4));
     __e_acsl_delete_block((void *)(& pid_0));
   }
   {
-    int tmp_5;
-    __e_acsl_store_block((void *)(& tmp_5),(size_t)4);
-    __e_acsl_full_init((void *)(& tmp_5));
-    tmp_5 = fork();
-    pid_t pid_1 = (unsigned int)tmp_5;
+    pid_t pid_1 = fork();
     __e_acsl_store_block((void *)(& pid_1),(size_t)4);
     __e_acsl_full_init((void *)(& pid_1));
     if (! pid_1) {
@@ -268,41 +267,34 @@ int main(int argc, char const **argv)
     else {
       int process_status_1;
       __e_acsl_store_block((void *)(& process_status_1),(size_t)4);
-      waitpid(pid_1,& process_status_1,0);
+      __gen_e_acsl_waitpid(pid_1,& process_status_1,0);
+      /*@ assert Eva: initialization: \initialized(&process_status_1); */
       signal_eval(process_status_1,1,__gen_e_acsl_literal_string_10);
       __e_acsl_delete_block((void *)(& process_status_1));
     }
-    __e_acsl_delete_block((void *)(& tmp_5));
     __e_acsl_delete_block((void *)(& pid_1));
   }
   {
-    int tmp_6;
-    __e_acsl_store_block((void *)(& tmp_6),(size_t)4);
-    __e_acsl_full_init((void *)(& tmp_6));
-    tmp_6 = fork();
-    pid_t pid_2 = (unsigned int)tmp_6;
+    pid_t pid_2 = fork();
     __e_acsl_store_block((void *)(& pid_2),(size_t)4);
     __e_acsl_full_init((void *)(& pid_2));
     if (! pid_2) {
+      /*@ assert Eva: dangling_pointer: ¬\dangling(&unalloc_str); */
       __gen_e_acsl_strcpy(unalloc_str,(char const *)src);
       __gen_e_acsl_exit(0);
     }
     else {
       int process_status_2;
       __e_acsl_store_block((void *)(& process_status_2),(size_t)4);
-      waitpid(pid_2,& process_status_2,0);
+      __gen_e_acsl_waitpid(pid_2,& process_status_2,0);
+      /*@ assert Eva: initialization: \initialized(&process_status_2); */
       signal_eval(process_status_2,1,__gen_e_acsl_literal_string_11);
       __e_acsl_delete_block((void *)(& process_status_2));
     }
-    __e_acsl_delete_block((void *)(& tmp_6));
     __e_acsl_delete_block((void *)(& pid_2));
   }
   {
-    int tmp_7;
-    __e_acsl_store_block((void *)(& tmp_7),(size_t)4);
-    __e_acsl_full_init((void *)(& tmp_7));
-    tmp_7 = fork();
-    pid_t pid_3 = (unsigned int)tmp_7;
+    pid_t pid_3 = fork();
     __e_acsl_store_block((void *)(& pid_3),(size_t)4);
     __e_acsl_full_init((void *)(& pid_3));
     if (! pid_3) {
@@ -312,19 +304,15 @@ int main(int argc, char const **argv)
     else {
       int process_status_3;
       __e_acsl_store_block((void *)(& process_status_3),(size_t)4);
-      waitpid(pid_3,& process_status_3,0);
+      __gen_e_acsl_waitpid(pid_3,& process_status_3,0);
+      /*@ assert Eva: initialization: \initialized(&process_status_3); */
       signal_eval(process_status_3,1,__gen_e_acsl_literal_string_12);
       __e_acsl_delete_block((void *)(& process_status_3));
     }
-    __e_acsl_delete_block((void *)(& tmp_7));
     __e_acsl_delete_block((void *)(& pid_3));
   }
   {
-    int tmp_8;
-    __e_acsl_store_block((void *)(& tmp_8),(size_t)4);
-    __e_acsl_full_init((void *)(& tmp_8));
-    tmp_8 = fork();
-    pid_t pid_4 = (unsigned int)tmp_8;
+    pid_t pid_4 = fork();
     __e_acsl_store_block((void *)(& pid_4),(size_t)4);
     __e_acsl_full_init((void *)(& pid_4));
     if (! pid_4) {
@@ -334,19 +322,15 @@ int main(int argc, char const **argv)
     else {
       int process_status_4;
       __e_acsl_store_block((void *)(& process_status_4),(size_t)4);
-      waitpid(pid_4,& process_status_4,0);
+      __gen_e_acsl_waitpid(pid_4,& process_status_4,0);
+      /*@ assert Eva: initialization: \initialized(&process_status_4); */
       signal_eval(process_status_4,0,__gen_e_acsl_literal_string_13);
       __e_acsl_delete_block((void *)(& process_status_4));
     }
-    __e_acsl_delete_block((void *)(& tmp_8));
     __e_acsl_delete_block((void *)(& pid_4));
   }
   {
-    int tmp_9;
-    __e_acsl_store_block((void *)(& tmp_9),(size_t)4);
-    __e_acsl_full_init((void *)(& tmp_9));
-    tmp_9 = fork();
-    pid_t pid_5 = (unsigned int)tmp_9;
+    pid_t pid_5 = fork();
     __e_acsl_store_block((void *)(& pid_5),(size_t)4);
     __e_acsl_full_init((void *)(& pid_5));
     if (! pid_5) {
@@ -356,19 +340,15 @@ int main(int argc, char const **argv)
     else {
       int process_status_5;
       __e_acsl_store_block((void *)(& process_status_5),(size_t)4);
-      waitpid(pid_5,& process_status_5,0);
+      __gen_e_acsl_waitpid(pid_5,& process_status_5,0);
+      /*@ assert Eva: initialization: \initialized(&process_status_5); */
       signal_eval(process_status_5,1,__gen_e_acsl_literal_string_14);
       __e_acsl_delete_block((void *)(& process_status_5));
     }
-    __e_acsl_delete_block((void *)(& tmp_9));
     __e_acsl_delete_block((void *)(& pid_5));
   }
   {
-    int tmp_10;
-    __e_acsl_store_block((void *)(& tmp_10),(size_t)4);
-    __e_acsl_full_init((void *)(& tmp_10));
-    tmp_10 = fork();
-    pid_t pid_6 = (unsigned int)tmp_10;
+    pid_t pid_6 = fork();
     __e_acsl_store_block((void *)(& pid_6),(size_t)4);
     __e_acsl_full_init((void *)(& pid_6));
     if (! pid_6) {
@@ -378,19 +358,15 @@ int main(int argc, char const **argv)
     else {
       int process_status_6;
       __e_acsl_store_block((void *)(& process_status_6),(size_t)4);
-      waitpid(pid_6,& process_status_6,0);
+      __gen_e_acsl_waitpid(pid_6,& process_status_6,0);
+      /*@ assert Eva: initialization: \initialized(&process_status_6); */
       signal_eval(process_status_6,0,__gen_e_acsl_literal_string_15);
       __e_acsl_delete_block((void *)(& process_status_6));
     }
-    __e_acsl_delete_block((void *)(& tmp_10));
     __e_acsl_delete_block((void *)(& pid_6));
   }
   {
-    int tmp_11;
-    __e_acsl_store_block((void *)(& tmp_11),(size_t)4);
-    __e_acsl_full_init((void *)(& tmp_11));
-    tmp_11 = fork();
-    pid_t pid_7 = (unsigned int)tmp_11;
+    pid_t pid_7 = fork();
     __e_acsl_store_block((void *)(& pid_7),(size_t)4);
     __e_acsl_full_init((void *)(& pid_7));
     if (! pid_7) {
@@ -400,19 +376,15 @@ int main(int argc, char const **argv)
     else {
       int process_status_7;
       __e_acsl_store_block((void *)(& process_status_7),(size_t)4);
-      waitpid(pid_7,& process_status_7,0);
+      __gen_e_acsl_waitpid(pid_7,& process_status_7,0);
+      /*@ assert Eva: initialization: \initialized(&process_status_7); */
       signal_eval(process_status_7,1,__gen_e_acsl_literal_string_16);
       __e_acsl_delete_block((void *)(& process_status_7));
     }
-    __e_acsl_delete_block((void *)(& tmp_11));
     __e_acsl_delete_block((void *)(& pid_7));
   }
   {
-    int tmp_12;
-    __e_acsl_store_block((void *)(& tmp_12),(size_t)4);
-    __e_acsl_full_init((void *)(& tmp_12));
-    tmp_12 = fork();
-    pid_t pid_8 = (unsigned int)tmp_12;
+    pid_t pid_8 = fork();
     __e_acsl_store_block((void *)(& pid_8),(size_t)4);
     __e_acsl_full_init((void *)(& pid_8));
     if (! pid_8) {
@@ -422,19 +394,15 @@ int main(int argc, char const **argv)
     else {
       int process_status_8;
       __e_acsl_store_block((void *)(& process_status_8),(size_t)4);
-      waitpid(pid_8,& process_status_8,0);
+      __gen_e_acsl_waitpid(pid_8,& process_status_8,0);
+      /*@ assert Eva: initialization: \initialized(&process_status_8); */
       signal_eval(process_status_8,0,__gen_e_acsl_literal_string_17);
       __e_acsl_delete_block((void *)(& process_status_8));
     }
-    __e_acsl_delete_block((void *)(& tmp_12));
     __e_acsl_delete_block((void *)(& pid_8));
   }
   {
-    int tmp_13;
-    __e_acsl_store_block((void *)(& tmp_13),(size_t)4);
-    __e_acsl_full_init((void *)(& tmp_13));
-    tmp_13 = fork();
-    pid_t pid_9 = (unsigned int)tmp_13;
+    pid_t pid_9 = fork();
     __e_acsl_store_block((void *)(& pid_9),(size_t)4);
     __e_acsl_full_init((void *)(& pid_9));
     if (! pid_9) {
@@ -444,41 +412,34 @@ int main(int argc, char const **argv)
     else {
       int process_status_9;
       __e_acsl_store_block((void *)(& process_status_9),(size_t)4);
-      waitpid(pid_9,& process_status_9,0);
+      __gen_e_acsl_waitpid(pid_9,& process_status_9,0);
+      /*@ assert Eva: initialization: \initialized(&process_status_9); */
       signal_eval(process_status_9,1,__gen_e_acsl_literal_string_18);
       __e_acsl_delete_block((void *)(& process_status_9));
     }
-    __e_acsl_delete_block((void *)(& tmp_13));
     __e_acsl_delete_block((void *)(& pid_9));
   }
   {
-    int tmp_14;
-    __e_acsl_store_block((void *)(& tmp_14),(size_t)4);
-    __e_acsl_full_init((void *)(& tmp_14));
-    tmp_14 = fork();
-    pid_t pid_10 = (unsigned int)tmp_14;
+    pid_t pid_10 = fork();
     __e_acsl_store_block((void *)(& pid_10),(size_t)4);
     __e_acsl_full_init((void *)(& pid_10));
     if (! pid_10) {
+      /*@ assert Eva: dangling_pointer: ¬\dangling(&unalloc_str); */
       __gen_e_acsl_strncpy(unalloc_str,(char const *)src,(unsigned long)5);
       __gen_e_acsl_exit(0);
     }
     else {
       int process_status_10;
       __e_acsl_store_block((void *)(& process_status_10),(size_t)4);
-      waitpid(pid_10,& process_status_10,0);
+      __gen_e_acsl_waitpid(pid_10,& process_status_10,0);
+      /*@ assert Eva: initialization: \initialized(&process_status_10); */
       signal_eval(process_status_10,1,__gen_e_acsl_literal_string_19);
       __e_acsl_delete_block((void *)(& process_status_10));
     }
-    __e_acsl_delete_block((void *)(& tmp_14));
     __e_acsl_delete_block((void *)(& pid_10));
   }
   {
-    int tmp_15;
-    __e_acsl_store_block((void *)(& tmp_15),(size_t)4);
-    __e_acsl_full_init((void *)(& tmp_15));
-    tmp_15 = fork();
-    pid_t pid_11 = (unsigned int)tmp_15;
+    pid_t pid_11 = fork();
     __e_acsl_store_block((void *)(& pid_11),(size_t)4);
     __e_acsl_full_init((void *)(& pid_11));
     if (! pid_11) {
@@ -488,19 +449,15 @@ int main(int argc, char const **argv)
     else {
       int process_status_11;
       __e_acsl_store_block((void *)(& process_status_11),(size_t)4);
-      waitpid(pid_11,& process_status_11,0);
+      __gen_e_acsl_waitpid(pid_11,& process_status_11,0);
+      /*@ assert Eva: initialization: \initialized(&process_status_11); */
       signal_eval(process_status_11,1,__gen_e_acsl_literal_string_20);
       __e_acsl_delete_block((void *)(& process_status_11));
     }
-    __e_acsl_delete_block((void *)(& tmp_15));
     __e_acsl_delete_block((void *)(& pid_11));
   }
   {
-    int tmp_16;
-    __e_acsl_store_block((void *)(& tmp_16),(size_t)4);
-    __e_acsl_full_init((void *)(& tmp_16));
-    tmp_16 = fork();
-    pid_t pid_12 = (unsigned int)tmp_16;
+    pid_t pid_12 = fork();
     __e_acsl_store_block((void *)(& pid_12),(size_t)4);
     __e_acsl_full_init((void *)(& pid_12));
     if (! pid_12) {
@@ -510,19 +467,15 @@ int main(int argc, char const **argv)
     else {
       int process_status_12;
       __e_acsl_store_block((void *)(& process_status_12),(size_t)4);
-      waitpid(pid_12,& process_status_12,0);
+      __gen_e_acsl_waitpid(pid_12,& process_status_12,0);
+      /*@ assert Eva: initialization: \initialized(&process_status_12); */
       signal_eval(process_status_12,0,__gen_e_acsl_literal_string_21);
       __e_acsl_delete_block((void *)(& process_status_12));
     }
-    __e_acsl_delete_block((void *)(& tmp_16));
     __e_acsl_delete_block((void *)(& pid_12));
   }
   {
-    int tmp_17;
-    __e_acsl_store_block((void *)(& tmp_17),(size_t)4);
-    __e_acsl_full_init((void *)(& tmp_17));
-    tmp_17 = fork();
-    pid_t pid_13 = (unsigned int)tmp_17;
+    pid_t pid_13 = fork();
     __e_acsl_store_block((void *)(& pid_13),(size_t)4);
     __e_acsl_full_init((void *)(& pid_13));
     if (! pid_13) {
@@ -532,19 +485,15 @@ int main(int argc, char const **argv)
     else {
       int process_status_13;
       __e_acsl_store_block((void *)(& process_status_13),(size_t)4);
-      waitpid(pid_13,& process_status_13,0);
+      __gen_e_acsl_waitpid(pid_13,& process_status_13,0);
+      /*@ assert Eva: initialization: \initialized(&process_status_13); */
       signal_eval(process_status_13,1,__gen_e_acsl_literal_string_22);
       __e_acsl_delete_block((void *)(& process_status_13));
     }
-    __e_acsl_delete_block((void *)(& tmp_17));
     __e_acsl_delete_block((void *)(& pid_13));
   }
   {
-    int tmp_18;
-    __e_acsl_store_block((void *)(& tmp_18),(size_t)4);
-    __e_acsl_full_init((void *)(& tmp_18));
-    tmp_18 = fork();
-    pid_t pid_14 = (unsigned int)tmp_18;
+    pid_t pid_14 = fork();
     __e_acsl_store_block((void *)(& pid_14),(size_t)4);
     __e_acsl_full_init((void *)(& pid_14));
     if (! pid_14) {
@@ -554,19 +503,15 @@ int main(int argc, char const **argv)
     else {
       int process_status_14;
       __e_acsl_store_block((void *)(& process_status_14),(size_t)4);
-      waitpid(pid_14,& process_status_14,0);
+      __gen_e_acsl_waitpid(pid_14,& process_status_14,0);
+      /*@ assert Eva: initialization: \initialized(&process_status_14); */
       signal_eval(process_status_14,0,__gen_e_acsl_literal_string_23);
       __e_acsl_delete_block((void *)(& process_status_14));
     }
-    __e_acsl_delete_block((void *)(& tmp_18));
     __e_acsl_delete_block((void *)(& pid_14));
   }
   {
-    int tmp_19;
-    __e_acsl_store_block((void *)(& tmp_19),(size_t)4);
-    __e_acsl_full_init((void *)(& tmp_19));
-    tmp_19 = fork();
-    pid_t pid_15 = (unsigned int)tmp_19;
+    pid_t pid_15 = fork();
     __e_acsl_store_block((void *)(& pid_15),(size_t)4);
     __e_acsl_full_init((void *)(& pid_15));
     if (! pid_15) {
@@ -576,11 +521,11 @@ int main(int argc, char const **argv)
     else {
       int process_status_15;
       __e_acsl_store_block((void *)(& process_status_15),(size_t)4);
-      waitpid(pid_15,& process_status_15,0);
+      __gen_e_acsl_waitpid(pid_15,& process_status_15,0);
+      /*@ assert Eva: initialization: \initialized(&process_status_15); */
       signal_eval(process_status_15,1,__gen_e_acsl_literal_string_24);
       __e_acsl_delete_block((void *)(& process_status_15));
     }
-    __e_acsl_delete_block((void *)(& tmp_19));
     __e_acsl_delete_block((void *)(& pid_15));
   }
   free((void *)src);
@@ -590,6 +535,8 @@ int main(int argc, char const **argv)
   __retres = 0;
   __e_acsl_delete_block((void *)(& argv));
   __e_acsl_delete_block((void *)(& argc));
+  __e_acsl_delete_block((void *)(& __fc_p_strerror));
+  __e_acsl_delete_block((void *)(strerror));
   __e_acsl_delete_block((void *)(& __fc_strtok_ptr));
   __e_acsl_delete_block((void *)(& signal_eval));
   __e_acsl_delete_block((void *)(& testno));
diff --git a/src/plugins/e-acsl/tests/builtin/oracle/gen_strlen.c b/src/plugins/e-acsl/tests/builtin/oracle/gen_strlen.c
index 210bf3d5f1af1dab2000473c9d8538a8ba91ab96..1c9570b6a6fac636c0e77dfc12bf04dad85daedd 100644
--- a/src/plugins/e-acsl/tests/builtin/oracle/gen_strlen.c
+++ b/src/plugins/e-acsl/tests/builtin/oracle/gen_strlen.c
@@ -21,106 +21,116 @@ char *__gen_e_acsl_literal_string_4;
 char *__gen_e_acsl_literal_string_6;
 /*@ assigns \result;
     assigns \result \from \nothing; */
-extern int ( /* missing proto */ fork)();
+extern int ( /* missing proto */ fork)(void);
 
 void __e_acsl_globals_init(void)
 {
-  __gen_e_acsl_literal_string_8 = "the hog";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_8,
-                       sizeof("the hog"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_8);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_8);
-  __gen_e_acsl_literal_string_7 = "the cat";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_7,
-                       sizeof("the cat"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_7);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_7);
-  __gen_e_acsl_literal_string_15 = "tests/builtin/strlen.c:28";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_15,
-                       sizeof("tests/builtin/strlen.c:28"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_15);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_15);
-  __gen_e_acsl_literal_string_14 = "tests/builtin/strlen.c:26";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_14,
-                       sizeof("tests/builtin/strlen.c:26"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_14);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_14);
-  __gen_e_acsl_literal_string_13 = "tests/builtin/strlen.c:25";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_13,
-                       sizeof("tests/builtin/strlen.c:25"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_13);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_13);
-  __gen_e_acsl_literal_string_12 = "tests/builtin/strlen.c:21";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_12,
-                       sizeof("tests/builtin/strlen.c:21"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_12);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_12);
-  __gen_e_acsl_literal_string_11 = "tests/builtin/strlen.c:20";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_11,
-                       sizeof("tests/builtin/strlen.c:20"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_11);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_11);
-  __gen_e_acsl_literal_string_10 = "tests/builtin/strlen.c:19";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_10,
-                       sizeof("tests/builtin/strlen.c:19"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_10);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_10);
-  __gen_e_acsl_literal_string_9 = "tests/builtin/strlen.c:18";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_9,
-                       sizeof("tests/builtin/strlen.c:18"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_9);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_9);
-  __gen_e_acsl_literal_string = "TEST %d: ";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string,
-                       sizeof("TEST %d: "));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string);
-  __gen_e_acsl_literal_string_2 = "OK: Expected signal at %s\n";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_2,
-                       sizeof("OK: Expected signal at %s\n"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_2);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_2);
-  __gen_e_acsl_literal_string_3 = "OK: Expected execution at %s\n";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_3,
-                       sizeof("OK: Expected execution at %s\n"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_3);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_3);
-  __gen_e_acsl_literal_string_5 = "FAIL: Unexpected signal at %s\n";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_5,
-                       sizeof("FAIL: Unexpected signal at %s\n"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_5);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_5);
-  __gen_e_acsl_literal_string_4 = "FAIL: Unexpected execution at %s\n";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_4,
-                       sizeof("FAIL: Unexpected execution at %s\n"));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_4);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_4);
-  __gen_e_acsl_literal_string_6 = "";
-  __e_acsl_store_block((void *)__gen_e_acsl_literal_string_6,sizeof(""));
-  __e_acsl_full_init((void *)__gen_e_acsl_literal_string_6);
-  __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_6);
-  __e_acsl_store_block((void *)(& __gen_e_acsl_strdup),(size_t)1);
-  __e_acsl_full_init((void *)(& __gen_e_acsl_strdup));
-  __e_acsl_store_block((void *)(& __gen_e_acsl_strlen),(size_t)1);
-  __e_acsl_full_init((void *)(& __gen_e_acsl_strlen));
-  __e_acsl_store_block((void *)(& __gen_e_acsl_exit),(size_t)1);
-  __e_acsl_full_init((void *)(& __gen_e_acsl_exit));
-  __e_acsl_store_block((void *)(& __gen_e_acsl_abort),(size_t)1);
-  __e_acsl_full_init((void *)(& __gen_e_acsl_abort));
-  __e_acsl_store_block((void *)(& __fc_strtok_ptr),(size_t)8);
-  __e_acsl_full_init((void *)(& __fc_strtok_ptr));
-  __e_acsl_store_block((void *)(& signal_eval),(size_t)1);
-  __e_acsl_full_init((void *)(& signal_eval));
-  __e_acsl_store_block((void *)(& testno),(size_t)4);
-  __e_acsl_full_init((void *)(& testno));
-  __e_acsl_store_block((void *)(& __fc_time),(size_t)4);
-  __e_acsl_full_init((void *)(& __fc_time));
-  __e_acsl_store_block((void *)(& __fc_p_fopen),(size_t)8);
-  __e_acsl_full_init((void *)(& __fc_p_fopen));
-  __e_acsl_store_block((void *)(__fc_fopen),(size_t)128);
-  __e_acsl_full_init((void *)(& __fc_fopen));
-  __e_acsl_store_block((void *)(& __fc_rand_max),(size_t)8);
-  __e_acsl_full_init((void *)(& __fc_rand_max));
+  static char __e_acsl_already_run = 0;
+  if (! __e_acsl_already_run) {
+    __e_acsl_already_run = 1;
+    __gen_e_acsl_literal_string_8 = "the hog";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_8,
+                         sizeof("the hog"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_8);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_8);
+    __gen_e_acsl_literal_string_7 = "the cat";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_7,
+                         sizeof("the cat"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_7);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_7);
+    __gen_e_acsl_literal_string_15 = "tests/builtin/strlen.c:28";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_15,
+                         sizeof("tests/builtin/strlen.c:28"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_15);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_15);
+    __gen_e_acsl_literal_string_14 = "tests/builtin/strlen.c:26";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_14,
+                         sizeof("tests/builtin/strlen.c:26"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_14);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_14);
+    __gen_e_acsl_literal_string_13 = "tests/builtin/strlen.c:25";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_13,
+                         sizeof("tests/builtin/strlen.c:25"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_13);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_13);
+    __gen_e_acsl_literal_string_12 = "tests/builtin/strlen.c:21";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_12,
+                         sizeof("tests/builtin/strlen.c:21"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_12);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_12);
+    __gen_e_acsl_literal_string_11 = "tests/builtin/strlen.c:20";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_11,
+                         sizeof("tests/builtin/strlen.c:20"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_11);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_11);
+    __gen_e_acsl_literal_string_10 = "tests/builtin/strlen.c:19";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_10,
+                         sizeof("tests/builtin/strlen.c:19"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_10);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_10);
+    __gen_e_acsl_literal_string_9 = "tests/builtin/strlen.c:18";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_9,
+                         sizeof("tests/builtin/strlen.c:18"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_9);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_9);
+    __gen_e_acsl_literal_string = "TEST %d: ";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string,
+                         sizeof("TEST %d: "));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string);
+    __gen_e_acsl_literal_string_2 = "OK: Expected signal at %s\n";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_2,
+                         sizeof("OK: Expected signal at %s\n"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_2);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_2);
+    __gen_e_acsl_literal_string_3 = "OK: Expected execution at %s\n";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_3,
+                         sizeof("OK: Expected execution at %s\n"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_3);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_3);
+    __gen_e_acsl_literal_string_5 = "FAIL: Unexpected signal at %s\n";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_5,
+                         sizeof("FAIL: Unexpected signal at %s\n"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_5);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_5);
+    __gen_e_acsl_literal_string_4 = "FAIL: Unexpected execution at %s\n";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_4,
+                         sizeof("FAIL: Unexpected execution at %s\n"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_4);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_4);
+    __gen_e_acsl_literal_string_6 = "";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string_6,sizeof(""));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string_6);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_6);
+    __e_acsl_store_block((void *)(& __gen_e_acsl_strdup),(size_t)1);
+    __e_acsl_full_init((void *)(& __gen_e_acsl_strdup));
+    __e_acsl_store_block((void *)(& __gen_e_acsl_strlen),(size_t)1);
+    __e_acsl_full_init((void *)(& __gen_e_acsl_strlen));
+    __e_acsl_store_block((void *)(& __gen_e_acsl_waitpid),(size_t)1);
+    __e_acsl_full_init((void *)(& __gen_e_acsl_waitpid));
+    __e_acsl_store_block((void *)(& __gen_e_acsl_exit),(size_t)1);
+    __e_acsl_full_init((void *)(& __gen_e_acsl_exit));
+    __e_acsl_store_block((void *)(& __gen_e_acsl_abort),(size_t)1);
+    __e_acsl_full_init((void *)(& __gen_e_acsl_abort));
+    __e_acsl_store_block((void *)(& __fc_p_strerror),(size_t)8);
+    __e_acsl_full_init((void *)(& __fc_p_strerror));
+    __e_acsl_store_block((void *)(strerror),(size_t)64);
+    __e_acsl_full_init((void *)(& strerror));
+    __e_acsl_store_block((void *)(& __fc_strtok_ptr),(size_t)8);
+    __e_acsl_full_init((void *)(& __fc_strtok_ptr));
+    __e_acsl_store_block((void *)(& signal_eval),(size_t)1);
+    __e_acsl_full_init((void *)(& signal_eval));
+    __e_acsl_store_block((void *)(& testno),(size_t)4);
+    __e_acsl_full_init((void *)(& testno));
+    __e_acsl_store_block((void *)(& __fc_time),(size_t)4);
+    __e_acsl_full_init((void *)(& __fc_time));
+    __e_acsl_store_block((void *)(& __fc_p_fopen),(size_t)8);
+    __e_acsl_full_init((void *)(& __fc_p_fopen));
+    __e_acsl_store_block((void *)(__fc_fopen),(size_t)128);
+    __e_acsl_full_init((void *)(& __fc_fopen));
+    __e_acsl_store_block((void *)(& __fc_rand_max),(size_t)8);
+    __e_acsl_full_init((void *)(& __fc_rand_max));
+  }
   return;
 }
 
@@ -153,11 +163,7 @@ int main(int argc, char const **argv)
   __e_acsl_store_block((void *)(& const_str),(size_t)8);
   __e_acsl_full_init((void *)(& const_str));
   {
-    int tmp_0;
-    __e_acsl_store_block((void *)(& tmp_0),(size_t)4);
-    __e_acsl_full_init((void *)(& tmp_0));
-    tmp_0 = fork();
-    pid_t pid = (unsigned int)tmp_0;
+    pid_t pid = fork();
     __e_acsl_store_block((void *)(& pid),(size_t)4);
     __e_acsl_full_init((void *)(& pid));
     if (! pid) {
@@ -174,19 +180,15 @@ int main(int argc, char const **argv)
     else {
       int process_status;
       __e_acsl_store_block((void *)(& process_status),(size_t)4);
-      waitpid(pid,& process_status,0);
+      __gen_e_acsl_waitpid(pid,& process_status,0);
+      /*@ assert Eva: initialization: \initialized(&process_status); */
       signal_eval(process_status,0,__gen_e_acsl_literal_string_9);
       __e_acsl_delete_block((void *)(& process_status));
     }
-    __e_acsl_delete_block((void *)(& tmp_0));
     __e_acsl_delete_block((void *)(& pid));
   }
   {
-    int tmp_2;
-    __e_acsl_store_block((void *)(& tmp_2),(size_t)4);
-    __e_acsl_full_init((void *)(& tmp_2));
-    tmp_2 = fork();
-    pid_t pid_0 = (unsigned int)tmp_2;
+    pid_t pid_0 = fork();
     __e_acsl_store_block((void *)(& pid_0),(size_t)4);
     __e_acsl_full_init((void *)(& pid_0));
     if (! pid_0) {
@@ -203,19 +205,15 @@ int main(int argc, char const **argv)
     else {
       int process_status_0;
       __e_acsl_store_block((void *)(& process_status_0),(size_t)4);
-      waitpid(pid_0,& process_status_0,0);
+      __gen_e_acsl_waitpid(pid_0,& process_status_0,0);
+      /*@ assert Eva: initialization: \initialized(&process_status_0); */
       signal_eval(process_status_0,0,__gen_e_acsl_literal_string_10);
       __e_acsl_delete_block((void *)(& process_status_0));
     }
-    __e_acsl_delete_block((void *)(& tmp_2));
     __e_acsl_delete_block((void *)(& pid_0));
   }
   {
-    int tmp_4;
-    __e_acsl_store_block((void *)(& tmp_4),(size_t)4);
-    __e_acsl_full_init((void *)(& tmp_4));
-    tmp_4 = fork();
-    pid_t pid_1 = (unsigned int)tmp_4;
+    pid_t pid_1 = fork();
     __e_acsl_store_block((void *)(& pid_1),(size_t)4);
     __e_acsl_full_init((void *)(& pid_1));
     if (! pid_1) {
@@ -232,19 +230,15 @@ int main(int argc, char const **argv)
     else {
       int process_status_1;
       __e_acsl_store_block((void *)(& process_status_1),(size_t)4);
-      waitpid(pid_1,& process_status_1,0);
+      __gen_e_acsl_waitpid(pid_1,& process_status_1,0);
+      /*@ assert Eva: initialization: \initialized(&process_status_1); */
       signal_eval(process_status_1,0,__gen_e_acsl_literal_string_11);
       __e_acsl_delete_block((void *)(& process_status_1));
     }
-    __e_acsl_delete_block((void *)(& tmp_4));
     __e_acsl_delete_block((void *)(& pid_1));
   }
   {
-    int tmp_6;
-    __e_acsl_store_block((void *)(& tmp_6),(size_t)4);
-    __e_acsl_full_init((void *)(& tmp_6));
-    tmp_6 = fork();
-    pid_t pid_2 = (unsigned int)tmp_6;
+    pid_t pid_2 = fork();
     __e_acsl_store_block((void *)(& pid_2),(size_t)4);
     __e_acsl_full_init((void *)(& pid_2));
     if (! pid_2) {
@@ -261,23 +255,20 @@ int main(int argc, char const **argv)
     else {
       int process_status_2;
       __e_acsl_store_block((void *)(& process_status_2),(size_t)4);
-      waitpid(pid_2,& process_status_2,0);
+      __gen_e_acsl_waitpid(pid_2,& process_status_2,0);
+      /*@ assert Eva: initialization: \initialized(&process_status_2); */
       signal_eval(process_status_2,0,__gen_e_acsl_literal_string_12);
       __e_acsl_delete_block((void *)(& process_status_2));
     }
-    __e_acsl_delete_block((void *)(& tmp_6));
     __e_acsl_delete_block((void *)(& pid_2));
   }
   __e_acsl_initialize((void *)(heap_str + 7),sizeof(char));
+  /*@ assert Eva: mem_access: \valid(heap_str + 7); */
   *(heap_str + 7) = (char)'a';
   __e_acsl_initialize((void *)(& stack_str[7]),sizeof(char));
   stack_str[7] = (char)'a';
   {
-    int tmp_8;
-    __e_acsl_store_block((void *)(& tmp_8),(size_t)4);
-    __e_acsl_full_init((void *)(& tmp_8));
-    tmp_8 = fork();
-    pid_t pid_3 = (unsigned int)tmp_8;
+    pid_t pid_3 = fork();
     __e_acsl_store_block((void *)(& pid_3),(size_t)4);
     __e_acsl_full_init((void *)(& pid_3));
     if (! pid_3) {
@@ -294,19 +285,14 @@ int main(int argc, char const **argv)
     else {
       int process_status_3;
       __e_acsl_store_block((void *)(& process_status_3),(size_t)4);
-      waitpid(pid_3,& process_status_3,0);
+      __gen_e_acsl_waitpid(pid_3,& process_status_3,0);
       signal_eval(process_status_3,1,__gen_e_acsl_literal_string_13);
       __e_acsl_delete_block((void *)(& process_status_3));
     }
-    __e_acsl_delete_block((void *)(& tmp_8));
     __e_acsl_delete_block((void *)(& pid_3));
   }
   {
-    int tmp_10;
-    __e_acsl_store_block((void *)(& tmp_10),(size_t)4);
-    __e_acsl_full_init((void *)(& tmp_10));
-    tmp_10 = fork();
-    pid_t pid_4 = (unsigned int)tmp_10;
+    pid_t pid_4 = fork();
     __e_acsl_store_block((void *)(& pid_4),(size_t)4);
     __e_acsl_full_init((void *)(& pid_4));
     if (! pid_4) {
@@ -323,20 +309,15 @@ int main(int argc, char const **argv)
     else {
       int process_status_4;
       __e_acsl_store_block((void *)(& process_status_4),(size_t)4);
-      waitpid(pid_4,& process_status_4,0);
+      __gen_e_acsl_waitpid(pid_4,& process_status_4,0);
       signal_eval(process_status_4,1,__gen_e_acsl_literal_string_14);
       __e_acsl_delete_block((void *)(& process_status_4));
     }
-    __e_acsl_delete_block((void *)(& tmp_10));
     __e_acsl_delete_block((void *)(& pid_4));
   }
   free((void *)heap_str);
   {
-    int tmp_12;
-    __e_acsl_store_block((void *)(& tmp_12),(size_t)4);
-    __e_acsl_full_init((void *)(& tmp_12));
-    tmp_12 = fork();
-    pid_t pid_5 = (unsigned int)tmp_12;
+    pid_t pid_5 = fork();
     __e_acsl_store_block((void *)(& pid_5),(size_t)4);
     __e_acsl_full_init((void *)(& pid_5));
     if (! pid_5) {
@@ -353,17 +334,18 @@ int main(int argc, char const **argv)
     else {
       int process_status_5;
       __e_acsl_store_block((void *)(& process_status_5),(size_t)4);
-      waitpid(pid_5,& process_status_5,0);
+      __gen_e_acsl_waitpid(pid_5,& process_status_5,0);
       signal_eval(process_status_5,1,__gen_e_acsl_literal_string_15);
       __e_acsl_delete_block((void *)(& process_status_5));
     }
-    __e_acsl_delete_block((void *)(& tmp_12));
     __e_acsl_delete_block((void *)(& pid_5));
   }
   __e_acsl_full_init((void *)(& __retres));
   __retres = 0;
   __e_acsl_delete_block((void *)(& argv));
   __e_acsl_delete_block((void *)(& argc));
+  __e_acsl_delete_block((void *)(& __fc_p_strerror));
+  __e_acsl_delete_block((void *)(strerror));
   __e_acsl_delete_block((void *)(& __fc_strtok_ptr));
   __e_acsl_delete_block((void *)(& signal_eval));
   __e_acsl_delete_block((void *)(& testno));
diff --git a/src/plugins/e-acsl/tests/builtin/oracle/strcat.err.oracle b/src/plugins/e-acsl/tests/builtin/oracle/strcat.err.oracle
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/src/plugins/e-acsl/tests/builtin/oracle/strcat.res.oracle b/src/plugins/e-acsl/tests/builtin/oracle/strcat.res.oracle
index e1bebdd53a9c291f07d9b887d4012fd8d4737d5e..2e1d8dc73a6bbdad6a2bbe8df4350e2059a20c00 100644
--- a/src/plugins/e-acsl/tests/builtin/oracle/strcat.res.oracle
+++ b/src/plugins/e-acsl/tests/builtin/oracle/strcat.res.oracle
@@ -1,59 +1,81 @@
-tests/builtin/strcat.c:26:[kernel] warning: Calling undeclared function fork. Old style K&R code?
+[kernel:typing:implicit-function-declaration] tests/builtin/strcat.c:26: Warning: 
+  Calling undeclared function fork. Old style K&R code?
 [e-acsl] beginning translation.
-[e-acsl] warning: annotating undefined function `exit':
-    the generated program may miss memory instrumentation
-    if there are memory-related annotations.
-[e-acsl] warning: annotating undefined function `strcat':
-    the generated program may miss memory instrumentation
-    if there are memory-related annotations.
-[e-acsl] warning: annotating undefined function `strncat':
-    the generated program may miss memory instrumentation
-    if there are memory-related annotations.
-FRAMAC_SHARE/libc/stdio.h:150:[kernel] warning: Neither code nor specification for function printf, generating default assigns from the prototype
-FRAMAC_SHARE/libc/sys/wait.h:60:[kernel] warning: Neither code nor specification for function waitpid, generating default assigns from the prototype
-tests/builtin/strcat.c:26:[kernel] warning: Neither code nor specification for function fork, generating default assigns from the prototype
-FRAMAC_SHARE/libc/string.h:364:[e-acsl] warning: E-ACSL construct `logic function application' is not yet supported.
-    Ignoring annotation.
-FRAMAC_SHARE/libc/string.h:365:[e-acsl] warning: E-ACSL construct `logic function application' is not yet supported.
-    Ignoring annotation.
-FRAMAC_SHARE/libc/string.h:370:[e-acsl] warning: E-ACSL construct `logic function application' is not yet supported.
-    Ignoring annotation.
-FRAMAC_SHARE/libc/string.h:377:[e-acsl] warning: E-ACSL construct `logic function application' is not yet supported.
-    Ignoring annotation.
-FRAMAC_SHARE/libc/string.h:377:[e-acsl] warning: E-ACSL construct `assigns clause in behavior' is not yet supported.
-    Ignoring annotation.
-FRAMAC_SHARE/libc/string.h:370:[e-acsl] warning: E-ACSL construct `assigns clause in behavior' is not yet supported.
-    Ignoring annotation.
-FRAMAC_SHARE/libc/string.h:368:[e-acsl] warning: E-ACSL construct `assigns clause in behavior' is not yet supported.
-    Ignoring annotation.
-FRAMAC_SHARE/libc/string.h:352:[e-acsl] warning: E-ACSL construct `logic function application' is not yet supported.
-    Ignoring annotation.
-FRAMAC_SHARE/libc/string.h:353:[e-acsl] warning: E-ACSL construct `logic function application' is not yet supported.
-    Ignoring annotation.
-FRAMAC_SHARE/libc/string.h:354:[e-acsl] warning: E-ACSL construct `trange' is not yet supported. Ignoring annotation.
-FRAMAC_SHARE/libc/string.h:354:[e-acsl] warning: E-ACSL construct `assigns clause in behavior' is not yet supported.
-    Ignoring annotation.
-FRAMAC_SHARE/libc/string.h:357:[e-acsl] warning: E-ACSL construct `logic function returning an integer' is not yet supported.
-    Ignoring annotation.
-FRAMAC_SHARE/libc/string.h:359:[e-acsl] warning: E-ACSL construct `assigns clause in behavior' is not yet supported.
-    Ignoring annotation.
+[e-acsl] Warning: annotating undefined function `exit':
+  the generated program may miss memory instrumentation
+  if there are memory-related annotations.
+[e-acsl] Warning: annotating undefined function `waitpid':
+  the generated program may miss memory instrumentation
+  if there are memory-related annotations.
+[e-acsl] Warning: annotating undefined function `strcat':
+  the generated program may miss memory instrumentation
+  if there are memory-related annotations.
+[e-acsl] Warning: annotating undefined function `strncat':
+  the generated program may miss memory instrumentation
+  if there are memory-related annotations.
+[kernel:annot:missing-spec] FRAMAC_SHARE/libc/stdio.h:169: Warning: 
+  Neither code nor specification for function printf, generating default assigns from the prototype
+[kernel:annot:missing-spec] tests/builtin/strcat.c:26: Warning: 
+  Neither code nor specification for function fork, generating default assigns from the prototype
+[e-acsl] FRAMAC_SHARE/libc/string.h:409: Warning: 
+  E-ACSL construct `logic function application' is not yet supported.
+  Ignoring annotation.
+[e-acsl] FRAMAC_SHARE/libc/string.h:410: Warning: 
+  E-ACSL construct `logic function application' is not yet supported.
+  Ignoring annotation.
+[e-acsl] FRAMAC_SHARE/libc/string.h:415: Warning: 
+  E-ACSL construct `logic function application' is not yet supported.
+  Ignoring annotation.
+[e-acsl] FRAMAC_SHARE/libc/string.h:423: Warning: 
+  E-ACSL construct `logic function application' is not yet supported.
+  Ignoring annotation.
+[e-acsl] FRAMAC_SHARE/libc/string.h:423: Warning: 
+  E-ACSL construct `assigns clause in behavior' is not yet supported.
+  Ignoring annotation.
+[e-acsl] FRAMAC_SHARE/libc/string.h:415: Warning: 
+  E-ACSL construct `assigns clause in behavior' is not yet supported.
+  Ignoring annotation.
+[e-acsl] FRAMAC_SHARE/libc/string.h:413: Warning: 
+  E-ACSL construct `assigns clause in behavior' is not yet supported.
+  Ignoring annotation.
+[e-acsl] FRAMAC_SHARE/libc/string.h:394: Warning: 
+  E-ACSL construct `logic function application' is not yet supported.
+  Ignoring annotation.
+[e-acsl] FRAMAC_SHARE/libc/string.h:395: Warning: 
+  E-ACSL construct `logic function application' is not yet supported.
+  Ignoring annotation.
+[e-acsl] FRAMAC_SHARE/libc/string.h:396: Warning: 
+  E-ACSL construct `logic function returning an integer' is not yet supported.
+  Ignoring annotation.
+[e-acsl] FRAMAC_SHARE/libc/string.h:396: Warning: 
+  E-ACSL construct `assigns clause in behavior' is not yet supported.
+  Ignoring annotation.
+[e-acsl] FRAMAC_SHARE/libc/string.h:399: Warning: 
+  E-ACSL construct `logic function returning an integer' is not yet supported.
+  Ignoring annotation.
+[e-acsl] FRAMAC_SHARE/libc/string.h:402: Warning: 
+  E-ACSL construct `logic function returning an integer' is not yet supported.
+  Ignoring annotation.
+[e-acsl] FRAMAC_SHARE/libc/string.h:403: Warning: 
+  E-ACSL construct `logic function returning an integer' is not yet supported.
+  Ignoring annotation.
+[e-acsl] FRAMAC_SHARE/libc/sys/wait.h:92: Warning: 
+  E-ACSL construct `assigns clause in behavior' is not yet supported.
+  Ignoring annotation.
+[e-acsl] FRAMAC_SHARE/libc/sys/wait.h:86: Warning: 
+  E-ACSL construct `assigns clause in behavior' is not yet supported.
+  Ignoring annotation.
 [e-acsl] translation done in project "e-acsl".
-[value] Analyzing a complete application starting at main
-[value] Computing initial state
-[value] Initial state computed
-[value:initial-state] Values of globals at initialization
-  __fc_rand_max ∈ {32767}
-  __fc_heap_status ∈ [--..--]
+[eva] Analyzing a complete application starting at main
+[eva] Computing initial state
+[eva] Initial state computed
+[eva:initial-state] Values of globals at initialization
   __e_acsl_init ∈ [--..--]
-  __fc_fopen[0..15] ∈ {0}
-  __fc_p_fopen ∈ {{ &__fc_fopen[0] }}
   __e_acsl_heap_allocation_size ∈ [--..--]
   __e_acsl_math_HUGE_VAL ∈ [-1.79769313486e+308 .. 1.79769313486e+308]
   __e_acsl_math_HUGE_VALF ∈ [-3.40282346639e+38 .. 3.40282346639e+38]
   __e_acsl_math_INFINITY ∈ [-1.79769313486e+308 .. 1.79769313486e+308]
-  __fc_time ∈ [--..--]
   testno ∈ {0}
-  __fc_strtok_ptr ∈ {0}
   __gen_e_acsl_literal_string ∈ {0}
   __gen_e_acsl_literal_string_2 ∈ {0}
   __gen_e_acsl_literal_string_3 ∈ {0}
@@ -83,65 +105,111 @@ FRAMAC_SHARE/libc/string.h:359:[e-acsl] warning: E-ACSL construct `assigns claus
   __gen_e_acsl_literal_string_27 ∈ {0}
   __gen_e_acsl_literal_string_28 ∈ {0}
   __gen_e_acsl_literal_string_29 ∈ {0}
-[value] using specification for function __e_acsl_memory_init
-[value] using specification for function __e_acsl_store_block
-[value] using specification for function __e_acsl_full_init
-[value] using specification for function __e_acsl_mark_readonly
-tests/builtin/strcat.c:11:[value] allocating variable __malloc_main_l11
-[value] using specification for function fork
-[value] using specification for function __e_acsl_builtin_strcat
-[value] using specification for function __e_acsl_assert
-[value] using specification for function __e_acsl_delete_block
-FRAMAC_SHARE/libc/string.h:357:[value] warning: function __gen_e_acsl_strcat: postcondition got status unknown.
-[value] using specification for function exit
-[value] using specification for function waitpid
-tests/builtin/strcat.c:26:[value] warning: accessing uninitialized left-value. assert \initialized(&process_status);
-[value] using specification for function printf
-tests/builtin/strcat.c:27:[value] warning: accessing uninitialized left-value. assert \initialized(&process_status_0);
-tests/builtin/strcat.c:28:[value] warning: function __gen_e_acsl_strcat: precondition 'room_string' got status invalid.
-tests/builtin/strcat.c:28:[value] warning: accessing uninitialized left-value. assert \initialized(&process_status_1);
-tests/builtin/strcat.c:29:[value] warning: accessing left-value that contains escaping addresses.
-    assert ¬\dangling(&unalloc_str);
-tests/builtin/strcat.c:29:[value] warning: function __gen_e_acsl_strcat: precondition 'valid_string_dst' got status invalid.
-tests/builtin/strcat.c:29:[value] warning: accessing uninitialized left-value. assert \initialized(&process_status_2);
-tests/builtin/strcat.c:30:[value] warning: accessing left-value that contains escaping addresses.
-    assert ¬\dangling(&unalloc_str);
-tests/builtin/strcat.c:30:[value] warning: function __gen_e_acsl_strcat: precondition 'valid_string_src' got status invalid.
-tests/builtin/strcat.c:30:[value] warning: accessing uninitialized left-value. assert \initialized(&process_status_3);
-tests/builtin/strcat.c:31:[value] warning: function __gen_e_acsl_strcat: precondition 'valid_string_dst' got status invalid.
-tests/builtin/strcat.c:31:[value] warning: accessing uninitialized left-value. assert \initialized(&process_status_4);
-tests/builtin/strcat.c:32:[value] warning: function __gen_e_acsl_strcat: precondition 'valid_string_src' got status invalid.
-tests/builtin/strcat.c:32:[value] warning: accessing uninitialized left-value. assert \initialized(&process_status_5);
-tests/builtin/strcat.c:33:[value] warning: function __gen_e_acsl_strcat: precondition 'valid_string_dst' got status invalid.
-tests/builtin/strcat.c:33:[value] warning: accessing uninitialized left-value. assert \initialized(&process_status_6);
-tests/builtin/strcat.c:34:[value] warning: accessing uninitialized left-value. assert \initialized(&process_status_7);
-tests/builtin/strcat.c:35:[value] warning: accessing uninitialized left-value. assert \initialized(&process_status_8);
-tests/builtin/strcat.c:36:[value] warning: accessing uninitialized left-value. assert \initialized(&process_status_9);
-[value] using specification for function __e_acsl_initialize
-tests/builtin/strcat.c:37:[value] warning: accessing uninitialized left-value. assert \initialized(&process_status_10);
-[value] using specification for function __e_acsl_builtin_strncat
-FRAMAC_SHARE/libc/string.h:375:[value] warning: function __gen_e_acsl_strncat, behavior complete: postcondition got status unknown.
-tests/builtin/strcat.c:40:[value] warning: accessing uninitialized left-value. assert \initialized(&process_status_11);
-tests/builtin/strcat.c:41:[value] warning: function __gen_e_acsl_strncat, behavior complete: precondition 'room_string' got status invalid.
-tests/builtin/strcat.c:41:[value] warning: accessing uninitialized left-value. assert \initialized(&process_status_12);
-tests/builtin/strcat.c:42:[value] warning: accessing left-value that contains escaping addresses.
-    assert ¬\dangling(&unalloc_str);
-tests/builtin/strcat.c:42:[value] warning: function __gen_e_acsl_strncat: precondition 'valid_string_dst' got status invalid.
-tests/builtin/strcat.c:42:[value] warning: accessing uninitialized left-value. assert \initialized(&process_status_13);
-tests/builtin/strcat.c:43:[value] warning: accessing left-value that contains escaping addresses.
-    assert ¬\dangling(&unalloc_str);
-tests/builtin/strcat.c:43:[value] warning: function __gen_e_acsl_strncat: precondition 'valid_string_src' got status unknown.
-FRAMAC_SHARE/libc/string.h:363:[value] warning: function __e_acsl_builtin_strncat: precondition 'valid_string_src' got status unknown.
-FRAMAC_SHARE/libc/string.h:382:[value] warning: function __gen_e_acsl_strncat, behavior partial: postcondition got status unknown.
-tests/builtin/strcat.c:43:[value] warning: accessing uninitialized left-value. assert \initialized(&process_status_14);
-tests/builtin/strcat.c:44:[value] warning: function __gen_e_acsl_strncat: precondition 'valid_string_dst' got status invalid.
-tests/builtin/strcat.c:44:[value] warning: accessing uninitialized left-value. assert \initialized(&process_status_15);
-tests/builtin/strcat.c:45:[value] warning: function __gen_e_acsl_strncat: precondition 'valid_string_src' got status invalid.
-tests/builtin/strcat.c:45:[value] warning: accessing uninitialized left-value. assert \initialized(&process_status_16);
-tests/builtin/strcat.c:46:[value] warning: function __gen_e_acsl_strncat: precondition 'valid_string_dst' got status invalid.
-tests/builtin/strcat.c:46:[value] warning: accessing uninitialized left-value. assert \initialized(&process_status_17);
-tests/builtin/strcat.c:48:[value] warning: accessing uninitialized left-value. assert \initialized(&process_status_18);
-tests/builtin/strcat.c:49:[value] warning: accessing uninitialized left-value. assert \initialized(&process_status_19);
-tests/builtin/strcat.c:50:[value] warning: accessing uninitialized left-value. assert \initialized(&process_status_20);
-[value] using specification for function __e_acsl_memory_clean
-[value] done for function main
+[eva] using specification for function __e_acsl_memory_init
+[eva] using specification for function __e_acsl_store_block
+[eva] using specification for function __e_acsl_full_init
+[eva] using specification for function __e_acsl_mark_readonly
+[eva] tests/builtin/strcat.c:11: allocating variable __malloc_main_l11
+[eva] using specification for function fork
+[eva] using specification for function __e_acsl_builtin_strcat
+[eva] using specification for function __e_acsl_assert
+[eva] using specification for function __e_acsl_delete_block
+[eva:alarm] FRAMAC_SHARE/libc/string.h:399: Warning: 
+  function __gen_e_acsl_strcat: postcondition 'sum_of_lengths' got status unknown.
+[eva] using specification for function exit
+[eva] using specification for function __e_acsl_valid
+[eva] using specification for function waitpid
+[eva] using specification for function __e_acsl_initialized
+[eva:alarm] FRAMAC_SHARE/libc/sys/wait.h:86: Warning: 
+  function __e_acsl_assert: precondition got status unknown.
+[eva:alarm] FRAMAC_SHARE/libc/sys/wait.h:86: Warning: 
+  function __gen_e_acsl_waitpid: postcondition 'initialization,stat_loc_init_on_success' got status unknown.
+[eva:alarm] tests/builtin/strcat.c:26: Warning: 
+  accessing uninitialized left-value. assert \initialized(&process_status);
+[eva] using specification for function printf
+[eva:alarm] tests/builtin/strcat.c:27: Warning: 
+  accessing uninitialized left-value. assert \initialized(&process_status_0);
+[eva:alarm] tests/builtin/strcat.c:28: Warning: 
+  function __gen_e_acsl_strcat: precondition 'room_string' got status invalid.
+[eva:alarm] tests/builtin/strcat.c:28: Warning: 
+  accessing uninitialized left-value. assert \initialized(&process_status_1);
+[eva:alarm] tests/builtin/strcat.c:29: Warning: 
+  accessing left-value that contains escaping addresses.
+  assert ¬\dangling(&unalloc_str);
+[eva:alarm] tests/builtin/strcat.c:29: Warning: 
+  function __gen_e_acsl_strcat: precondition 'valid_string_dest' got status invalid.
+[eva:alarm] tests/builtin/strcat.c:29: Warning: 
+  accessing uninitialized left-value. assert \initialized(&process_status_2);
+[eva:alarm] tests/builtin/strcat.c:30: Warning: 
+  accessing left-value that contains escaping addresses.
+  assert ¬\dangling(&unalloc_str);
+[eva:alarm] tests/builtin/strcat.c:30: Warning: 
+  function __gen_e_acsl_strcat: precondition 'valid_string_src' got status invalid.
+[eva:alarm] tests/builtin/strcat.c:30: Warning: 
+  accessing uninitialized left-value. assert \initialized(&process_status_3);
+[eva:alarm] tests/builtin/strcat.c:31: Warning: 
+  function __gen_e_acsl_strcat: precondition 'valid_string_dest' got status invalid.
+[eva:alarm] tests/builtin/strcat.c:31: Warning: 
+  accessing uninitialized left-value. assert \initialized(&process_status_4);
+[eva:alarm] tests/builtin/strcat.c:32: Warning: 
+  function __gen_e_acsl_strcat: precondition 'valid_string_src' got status invalid.
+[eva:alarm] tests/builtin/strcat.c:32: Warning: 
+  accessing uninitialized left-value. assert \initialized(&process_status_5);
+[eva:alarm] tests/builtin/strcat.c:33: Warning: 
+  function __gen_e_acsl_strcat: precondition 'valid_string_dest' got status invalid.
+[eva:alarm] tests/builtin/strcat.c:33: Warning: 
+  accessing uninitialized left-value. assert \initialized(&process_status_6);
+[eva:alarm] tests/builtin/strcat.c:34: Warning: 
+  accessing uninitialized left-value. assert \initialized(&process_status_7);
+[eva:alarm] tests/builtin/strcat.c:35: Warning: 
+  accessing uninitialized left-value. assert \initialized(&process_status_8);
+[eva:alarm] tests/builtin/strcat.c:36: Warning: 
+  accessing uninitialized left-value. assert \initialized(&process_status_9);
+[eva] using specification for function __e_acsl_initialize
+[eva:alarm] tests/builtin/strcat.c:37: Warning: 
+  accessing uninitialized left-value. assert \initialized(&process_status_10);
+[eva] using specification for function __e_acsl_builtin_strncat
+[eva:alarm] FRAMAC_SHARE/libc/string.h:420: Warning: 
+  function __gen_e_acsl_strncat, behavior complete: postcondition 'sum_of_lengths' got status unknown.
+[eva:alarm] tests/builtin/strcat.c:40: Warning: 
+  accessing uninitialized left-value. assert \initialized(&process_status_11);
+[eva:alarm] tests/builtin/strcat.c:41: Warning: 
+  function __gen_e_acsl_strncat, behavior complete: precondition 'room_string' got status invalid.
+[eva:alarm] tests/builtin/strcat.c:41: Warning: 
+  accessing uninitialized left-value. assert \initialized(&process_status_12);
+[eva:alarm] tests/builtin/strcat.c:42: Warning: 
+  accessing left-value that contains escaping addresses.
+  assert ¬\dangling(&unalloc_str);
+[eva:alarm] tests/builtin/strcat.c:42: Warning: 
+  function __gen_e_acsl_strncat: precondition 'valid_string_dest' got status invalid.
+[eva:alarm] tests/builtin/strcat.c:42: Warning: 
+  accessing uninitialized left-value. assert \initialized(&process_status_13);
+[eva:alarm] tests/builtin/strcat.c:43: Warning: 
+  accessing left-value that contains escaping addresses.
+  assert ¬\dangling(&unalloc_str);
+[eva:alarm] tests/builtin/strcat.c:43: Warning: 
+  function __gen_e_acsl_strncat: precondition 'valid_nstring_src' got status invalid.
+[eva:alarm] tests/builtin/strcat.c:43: Warning: 
+  accessing uninitialized left-value. assert \initialized(&process_status_14);
+[eva:alarm] tests/builtin/strcat.c:44: Warning: 
+  function __gen_e_acsl_strncat: precondition 'valid_string_dest' got status invalid.
+[eva:alarm] tests/builtin/strcat.c:44: Warning: 
+  accessing uninitialized left-value. assert \initialized(&process_status_15);
+[eva:alarm] tests/builtin/strcat.c:45: Warning: 
+  function __gen_e_acsl_strncat: precondition 'valid_nstring_src' got status invalid.
+[eva:alarm] tests/builtin/strcat.c:45: Warning: 
+  accessing uninitialized left-value. assert \initialized(&process_status_16);
+[eva:alarm] tests/builtin/strcat.c:46: Warning: 
+  function __gen_e_acsl_strncat: precondition 'valid_string_dest' got status invalid.
+[eva:alarm] tests/builtin/strcat.c:46: Warning: 
+  accessing uninitialized left-value. assert \initialized(&process_status_17);
+[eva:alarm] FRAMAC_SHARE/libc/string.h:428: Warning: 
+  function __gen_e_acsl_strncat, behavior partial: postcondition 'sum_of_bounded_lengths' got status unknown.
+[eva:alarm] tests/builtin/strcat.c:48: Warning: 
+  accessing uninitialized left-value. assert \initialized(&process_status_18);
+[eva:alarm] tests/builtin/strcat.c:49: Warning: 
+  accessing uninitialized left-value. assert \initialized(&process_status_19);
+[eva:alarm] tests/builtin/strcat.c:50: Warning: 
+  accessing uninitialized left-value. assert \initialized(&process_status_20);
+[eva] using specification for function __e_acsl_memory_clean
+[eva] done for function main
diff --git a/src/plugins/e-acsl/tests/builtin/oracle/strcmp.err.oracle b/src/plugins/e-acsl/tests/builtin/oracle/strcmp.err.oracle
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/src/plugins/e-acsl/tests/builtin/oracle/strcmp.res.oracle b/src/plugins/e-acsl/tests/builtin/oracle/strcmp.res.oracle
index 404779b826aa132522f7e4fc775bf99d1a7e426d..f520c037f51cc7532000a21c79fe10705b4ccd9f 100644
--- a/src/plugins/e-acsl/tests/builtin/oracle/strcmp.res.oracle
+++ b/src/plugins/e-acsl/tests/builtin/oracle/strcmp.res.oracle
@@ -1,67 +1,86 @@
-tests/builtin/strcmp.c:32:[kernel] warning: Calling undeclared function fork. Old style K&R code?
+[kernel:typing:implicit-function-declaration] tests/builtin/strcmp.c:32: Warning: 
+  Calling undeclared function fork. Old style K&R code?
 [e-acsl] beginning translation.
-[e-acsl] warning: annotating undefined function `abort':
-    the generated program may miss memory instrumentation
-    if there are memory-related annotations.
-[e-acsl] warning: annotating undefined function `exit':
-    the generated program may miss memory instrumentation
-    if there are memory-related annotations.
-[e-acsl] warning: annotating undefined function `strcmp':
-    the generated program may miss memory instrumentation
-    if there are memory-related annotations.
-[e-acsl] warning: annotating undefined function `strncmp':
-    the generated program may miss memory instrumentation
-    if there are memory-related annotations.
-[e-acsl] warning: annotating undefined function `strdup':
-    the generated program may miss memory instrumentation
-    if there are memory-related annotations.
-FRAMAC_SHARE/libc/stdio.h:146:[kernel] warning: Neither code nor specification for function fprintf, generating default assigns from the prototype
-FRAMAC_SHARE/libc/stdio.h:150:[kernel] warning: Neither code nor specification for function printf, generating default assigns from the prototype
-FRAMAC_SHARE/libc/sys/wait.h:60:[kernel] warning: Neither code nor specification for function waitpid, generating default assigns from the prototype
-tests/builtin/strcmp.c:32:[kernel] warning: Neither code nor specification for function fork, generating default assigns from the prototype
-FRAMAC_SHARE/libc/string.h:396:[e-acsl] warning: E-ACSL construct `logic function application' is not yet supported.
-    Ignoring annotation.
-FRAMAC_SHARE/libc/string.h:396:[e-acsl] warning: E-ACSL construct `assigns clause in behavior' is not yet supported.
-    Ignoring annotation.
-FRAMAC_SHARE/libc/string.h:399:[e-acsl] warning: E-ACSL construct `trange' is not yet supported. Ignoring annotation.
-FRAMAC_SHARE/libc/string.h:127:[e-acsl] warning: E-ACSL construct `logic function application' is not yet supported.
-    Ignoring annotation.
-FRAMAC_SHARE/libc/string.h:128:[e-acsl] warning: E-ACSL construct `logic function application' is not yet supported.
-    Ignoring annotation.
-FRAMAC_SHARE/libc/string.h:128:[e-acsl] warning: E-ACSL construct `assigns clause in behavior' is not yet supported.
-    Ignoring annotation.
-FRAMAC_SHARE/libc/string.h:130:[e-acsl] warning: E-ACSL construct `logic function returning an integer' is not yet supported.
-    Ignoring annotation.
-FRAMAC_SHARE/libc/string.h:120:[e-acsl] warning: E-ACSL construct `logic function application' is not yet supported.
-    Ignoring annotation.
-FRAMAC_SHARE/libc/string.h:121:[e-acsl] warning: E-ACSL construct `logic function application' is not yet supported.
-    Ignoring annotation.
-FRAMAC_SHARE/libc/string.h:121:[e-acsl] warning: E-ACSL construct `assigns clause in behavior' is not yet supported.
-    Ignoring annotation.
-FRAMAC_SHARE/libc/string.h:123:[e-acsl] warning: E-ACSL construct `logic function returning an integer' is not yet supported.
-    Ignoring annotation.
-FRAMAC_SHARE/libc/string.h:123:[e-acsl] warning: E-ACSL construct `assigns clause in behavior' is not yet supported.
-    Ignoring annotation.
-FRAMAC_SHARE/libc/stdlib.h:415:[e-acsl] warning: E-ACSL construct `assigns clause in behavior' is not yet supported.
-    Ignoring annotation.
+[e-acsl] Warning: annotating undefined function `abort':
+  the generated program may miss memory instrumentation
+  if there are memory-related annotations.
+[e-acsl] Warning: annotating undefined function `exit':
+  the generated program may miss memory instrumentation
+  if there are memory-related annotations.
+[e-acsl] Warning: annotating undefined function `waitpid':
+  the generated program may miss memory instrumentation
+  if there are memory-related annotations.
+[e-acsl] Warning: annotating undefined function `strcmp':
+  the generated program may miss memory instrumentation
+  if there are memory-related annotations.
+[e-acsl] Warning: annotating undefined function `strncmp':
+  the generated program may miss memory instrumentation
+  if there are memory-related annotations.
+[e-acsl] Warning: annotating undefined function `strdup':
+  the generated program may miss memory instrumentation
+  if there are memory-related annotations.
+[kernel:annot:missing-spec] FRAMAC_SHARE/libc/stdio.h:165: Warning: 
+  Neither code nor specification for function fprintf, generating default assigns from the prototype
+[kernel:annot:missing-spec] FRAMAC_SHARE/libc/stdio.h:169: Warning: 
+  Neither code nor specification for function printf, generating default assigns from the prototype
+[kernel:annot:missing-spec] tests/builtin/strcmp.c:32: Warning: 
+  Neither code nor specification for function fork, generating default assigns from the prototype
+[e-acsl] FRAMAC_SHARE/libc/stdlib.h:394: Warning: 
+  E-ACSL construct `assigns clause in behavior' is not yet supported.
+  Ignoring annotation.
+[e-acsl] FRAMAC_SHARE/libc/string.h:446: Warning: 
+  E-ACSL construct `logic function application' is not yet supported.
+  Ignoring annotation.
+[e-acsl] FRAMAC_SHARE/libc/string.h:446: Warning: 
+  E-ACSL construct `assigns clause in behavior' is not yet supported.
+  Ignoring annotation.
+[e-acsl] FRAMAC_SHARE/libc/string.h:453: Warning: 
+  E-ACSL construct `logic function application' is not yet supported.
+  Ignoring annotation.
+[e-acsl] FRAMAC_SHARE/libc/string.h:144: Warning: 
+  E-ACSL construct `logic function application' is not yet supported.
+  Ignoring annotation.
+[e-acsl] FRAMAC_SHARE/libc/string.h:145: Warning: 
+  E-ACSL construct `logic function application' is not yet supported.
+  Ignoring annotation.
+[e-acsl] FRAMAC_SHARE/libc/string.h:145: Warning: 
+  E-ACSL construct `assigns clause in behavior' is not yet supported.
+  Ignoring annotation.
+[e-acsl] FRAMAC_SHARE/libc/string.h:147: Warning: 
+  E-ACSL construct `logic function returning an integer' is not yet supported.
+  Ignoring annotation.
+[e-acsl] FRAMAC_SHARE/libc/string.h:137: Warning: 
+  E-ACSL construct `logic function application' is not yet supported.
+  Ignoring annotation.
+[e-acsl] FRAMAC_SHARE/libc/string.h:138: Warning: 
+  E-ACSL construct `logic function application' is not yet supported.
+  Ignoring annotation.
+[e-acsl] FRAMAC_SHARE/libc/string.h:138: Warning: 
+  E-ACSL construct `assigns clause in behavior' is not yet supported.
+  Ignoring annotation.
+[e-acsl] FRAMAC_SHARE/libc/string.h:140: Warning: 
+  E-ACSL construct `logic function returning an integer' is not yet supported.
+  Ignoring annotation.
+[e-acsl] FRAMAC_SHARE/libc/sys/wait.h:92: Warning: 
+  E-ACSL construct `assigns clause in behavior' is not yet supported.
+  Ignoring annotation.
+[e-acsl] FRAMAC_SHARE/libc/sys/wait.h:86: Warning: 
+  E-ACSL construct `assigns clause in behavior' is not yet supported.
+  Ignoring annotation.
+[e-acsl] FRAMAC_SHARE/libc/stdlib.h:406: Warning: 
+  E-ACSL construct `assigns clause in behavior' is not yet supported.
+  Ignoring annotation.
 [e-acsl] translation done in project "e-acsl".
-[value] Analyzing a complete application starting at main
-[value] Computing initial state
-[value] Initial state computed
-[value:initial-state] Values of globals at initialization
-  __fc_rand_max ∈ {32767}
-  __fc_heap_status ∈ [--..--]
+[eva] Analyzing a complete application starting at main
+[eva] Computing initial state
+[eva] Initial state computed
+[eva:initial-state] Values of globals at initialization
   __e_acsl_init ∈ [--..--]
-  stderr ∈ {{ NULL ; &S___fc_stderr[0] }}
-  __fc_fopen[0..15] ∈ {0}
-  __fc_p_fopen ∈ {{ &__fc_fopen[0] }}
   __e_acsl_heap_allocation_size ∈ [--..--]
   __e_acsl_math_HUGE_VAL ∈ [-1.79769313486e+308 .. 1.79769313486e+308]
   __e_acsl_math_HUGE_VALF ∈ [-3.40282346639e+38 .. 3.40282346639e+38]
   __e_acsl_math_INFINITY ∈ [-1.79769313486e+308 .. 1.79769313486e+308]
-  __fc_time ∈ [--..--]
   testno ∈ {0}
-  __fc_strtok_ptr ∈ {0}
   __gen_e_acsl_literal_string ∈ {0}
   __gen_e_acsl_literal_string_2 ∈ {0}
   __gen_e_acsl_literal_string_3 ∈ {0}
@@ -94,14 +113,149 @@ FRAMAC_SHARE/libc/stdlib.h:415:[e-acsl] warning: E-ACSL construct `assigns claus
   __gen_e_acsl_literal_string_30 ∈ {0}
   __gen_e_acsl_literal_string_31 ∈ {0}
   __gen_e_acsl_literal_string_32 ∈ {0}
-  S___fc_stderr[0..1] ∈ [--..--]
-[value] using specification for function __e_acsl_memory_init
-[value] using specification for function __e_acsl_store_block
-[value] using specification for function __e_acsl_full_init
-[value] using specification for function __e_acsl_mark_readonly
-[value] using specification for function strdup
-FRAMAC_SHARE/libc/string.h:396:[value] warning: ignoring unsupported \allocates clause
-FRAMAC_SHARE/libc/string.h:399:[value] warning: function strdup: this postcondition evaluates to false in this context.
-    If it is valid, either a precondition was not verified for this call,
-    or some assigns/from clauses are incomplete (or incorrect).
-[value] done for function main
+[eva] using specification for function __e_acsl_memory_init
+[eva] using specification for function __e_acsl_store_block
+[eva] using specification for function __e_acsl_full_init
+[eva] using specification for function __e_acsl_mark_readonly
+[eva] using specification for function strdup
+[eva:libc:unsupported-spec] FRAMAC_SHARE/libc/string.h:443: Warning: 
+  The specification of function 'strdup' is currently not supported by Eva.
+  Consider adding FRAMAC_SHARE/libc/string.c
+  to the analyzed source files.
+[eva] FRAMAC_SHARE/libc/string.h:443: Warning: 
+  ignoring unsupported \allocates clause
+[eva] using specification for function __e_acsl_delete_block
+[eva:alarm] FRAMAC_SHARE/libc/string.h:449: Warning: 
+  function __gen_e_acsl_strdup, behavior allocation: postcondition 'allocation' got status unknown. (Behavior may be inactive, no reduction performed.)
+[eva:alarm] FRAMAC_SHARE/libc/string.h:451: Warning: 
+  function __gen_e_acsl_strdup, behavior allocation: postcondition 'result_valid_string_and_same_contents' got status invalid. (Behavior may be inactive, no reduction performed.)
+[eva:alarm] FRAMAC_SHARE/libc/string.h:456: Warning: 
+  function __gen_e_acsl_strdup, behavior no_allocation: postcondition 'result_null' got status unknown. (Behavior may be inactive, no reduction performed.)
+[eva] using specification for function fork
+[eva] using specification for function __e_acsl_builtin_strcmp
+[eva] FRAMAC_SHARE/libc/string.h:140: 
+  cannot evaluate ACSL term, unsupported ACSL construct: logic function strcmp
+[eva:alarm] FRAMAC_SHARE/libc/string.h:140: Warning: 
+  function __gen_e_acsl_strcmp: postcondition 'acsl_c_equiv' got status unknown.
+[eva] using specification for function fprintf
+[eva] using specification for function abort
+[eva] using specification for function exit
+[eva] using specification for function __e_acsl_valid
+[eva] using specification for function __e_acsl_assert
+[eva] using specification for function waitpid
+[eva] using specification for function __e_acsl_initialized
+[eva:alarm] FRAMAC_SHARE/libc/sys/wait.h:86: Warning: 
+  function __e_acsl_assert: precondition got status unknown.
+[eva:alarm] FRAMAC_SHARE/libc/sys/wait.h:86: Warning: 
+  function __gen_e_acsl_waitpid: postcondition 'initialization,stat_loc_init_on_success' got status unknown.
+[eva:alarm] tests/builtin/strcmp.c:32: Warning: 
+  accessing uninitialized left-value. assert \initialized(&process_status);
+[eva] using specification for function printf
+[eva:alarm] tests/builtin/strcmp.c:33: Warning: 
+  accessing uninitialized left-value. assert \initialized(&process_status_0);
+[eva:alarm] tests/builtin/strcmp.c:34: Warning: 
+  function __gen_e_acsl_strcmp: precondition 'valid_string_s1' got status invalid.
+[eva:alarm] tests/builtin/strcmp.c:34: Warning: 
+  accessing uninitialized left-value. assert \initialized(&process_status_1);
+[eva] using specification for function __e_acsl_initialize
+[eva:alarm] tests/builtin/strcmp.c:36: Warning: 
+  function __gen_e_acsl_strcmp: precondition 'valid_string_s1' got status invalid.
+[eva:alarm] tests/builtin/strcmp.c:36: Warning: 
+  accessing uninitialized left-value. assert \initialized(&process_status_2);
+[eva:alarm] tests/builtin/strcmp.c:37: Warning: 
+  function __gen_e_acsl_strcmp: precondition 'valid_string_s2' got status invalid.
+[eva:alarm] tests/builtin/strcmp.c:37: Warning: 
+  accessing uninitialized left-value. assert \initialized(&process_status_3);
+[eva:alarm] tests/builtin/strcmp.c:38: Warning: 
+  out of bounds write. assert \valid(dl + 3);
+[kernel] tests/builtin/strcmp.c:38: Warning: 
+  all target addresses were invalid. This path is assumed to be dead.
+[eva:alarm] tests/builtin/strcmp.c:38: Warning: 
+  accessing uninitialized left-value. assert \initialized(&process_status_4);
+[eva:alarm] tests/builtin/strcmp.c:39: Warning: 
+  out of bounds write. assert \valid(dr + 3);
+[kernel] tests/builtin/strcmp.c:39: Warning: 
+  all target addresses were invalid. This path is assumed to be dead.
+[eva:alarm] tests/builtin/strcmp.c:39: Warning: 
+  accessing uninitialized left-value. assert \initialized(&process_status_5);
+[eva:alarm] tests/builtin/strcmp.c:41: Warning: 
+  function __gen_e_acsl_strcmp: precondition 'valid_string_s1' got status invalid.
+[eva:alarm] tests/builtin/strcmp.c:41: Warning: 
+  accessing uninitialized left-value. assert \initialized(&process_status_6);
+[eva:alarm] tests/builtin/strcmp.c:42: Warning: 
+  function __gen_e_acsl_strcmp: precondition 'valid_string_s1' got status invalid.
+[eva:alarm] tests/builtin/strcmp.c:42: Warning: 
+  accessing uninitialized left-value. assert \initialized(&process_status_7);
+[eva:alarm] tests/builtin/strcmp.c:44: Warning: 
+  function free: precondition 'freeable' got status unknown.
+[eva:alarm] tests/builtin/strcmp.c:45: Warning: 
+  function free: precondition 'freeable' got status unknown.
+[eva:alarm] tests/builtin/strcmp.c:47: Warning: 
+  function __gen_e_acsl_strcmp: precondition 'valid_string_s1' got status invalid.
+[eva:alarm] tests/builtin/strcmp.c:47: Warning: 
+  accessing uninitialized left-value. assert \initialized(&process_status_8);
+[eva:alarm] tests/builtin/strcmp.c:48: Warning: 
+  function __gen_e_acsl_strcmp: precondition 'valid_string_s2' got status invalid.
+[eva:alarm] tests/builtin/strcmp.c:48: Warning: 
+  accessing uninitialized left-value. assert \initialized(&process_status_9);
+[eva] using specification for function __e_acsl_builtin_strncmp
+[eva] FRAMAC_SHARE/libc/string.h:147: 
+  cannot evaluate ACSL term, unsupported ACSL construct: logic function strncmp
+[eva:alarm] FRAMAC_SHARE/libc/string.h:147: Warning: 
+  function __gen_e_acsl_strncmp: postcondition 'acsl_c_equiv' got status unknown.
+[eva:alarm] tests/builtin/strcmp.c:57: Warning: 
+  accessing uninitialized left-value. assert \initialized(&process_status_10);
+[eva:alarm] tests/builtin/strcmp.c:58: Warning: 
+  accessing uninitialized left-value. assert \initialized(&process_status_11);
+[eva:alarm] tests/builtin/strcmp.c:59: Warning: 
+  function __gen_e_acsl_strncmp: precondition 'valid_string_s1' got status invalid.
+[eva:alarm] tests/builtin/strcmp.c:59: Warning: 
+  accessing uninitialized left-value. assert \initialized(&process_status_12);
+[eva:alarm] tests/builtin/strcmp.c:61: Warning: 
+  accessing uninitialized left-value. assert \initialized(&process_status_13);
+[eva:alarm] tests/builtin/strcmp.c:62: Warning: 
+  function __gen_e_acsl_strncmp: precondition 'valid_string_s1' got status invalid.
+[eva:alarm] tests/builtin/strcmp.c:62: Warning: 
+  accessing uninitialized left-value. assert \initialized(&process_status_14);
+[eva:alarm] tests/builtin/strcmp.c:65: Warning: 
+  accessing uninitialized left-value. assert \initialized(&process_status_15);
+[eva:alarm] tests/builtin/strcmp.c:66: Warning: 
+  accessing uninitialized left-value. assert \initialized(&process_status_16);
+[eva:alarm] tests/builtin/strcmp.c:67: Warning: 
+  out of bounds write. assert \valid(dl + 3);
+[kernel] tests/builtin/strcmp.c:67: Warning: 
+  all target addresses were invalid. This path is assumed to be dead.
+[eva:alarm] tests/builtin/strcmp.c:67: Warning: 
+  accessing uninitialized left-value. assert \initialized(&process_status_17);
+[eva:alarm] tests/builtin/strcmp.c:68: Warning: 
+  out of bounds write. assert \valid(dr + 3);
+[kernel] tests/builtin/strcmp.c:68: Warning: 
+  all target addresses were invalid. This path is assumed to be dead.
+[eva:alarm] tests/builtin/strcmp.c:68: Warning: 
+  accessing uninitialized left-value. assert \initialized(&process_status_18);
+[eva:alarm] tests/builtin/strcmp.c:71: Warning: 
+  function __gen_e_acsl_strncmp: precondition 'valid_string_s1' got status invalid.
+[eva:alarm] tests/builtin/strcmp.c:71: Warning: 
+  accessing uninitialized left-value. assert \initialized(&process_status_19);
+[eva:alarm] tests/builtin/strcmp.c:72: Warning: 
+  function __gen_e_acsl_strncmp: precondition 'valid_string_s2' got status invalid.
+[eva:alarm] tests/builtin/strcmp.c:72: Warning: 
+  accessing uninitialized left-value. assert \initialized(&process_status_20);
+[eva:alarm] tests/builtin/strcmp.c:73: Warning: 
+  out of bounds write. assert \valid(dl + 3);
+[kernel] tests/builtin/strcmp.c:73: Warning: 
+  all target addresses were invalid. This path is assumed to be dead.
+[eva:alarm] tests/builtin/strcmp.c:73: Warning: 
+  accessing uninitialized left-value. assert \initialized(&process_status_21);
+[eva:alarm] tests/builtin/strcmp.c:74: Warning: 
+  out of bounds write. assert \valid(dr + 3);
+[kernel] tests/builtin/strcmp.c:74: Warning: 
+  all target addresses were invalid. This path is assumed to be dead.
+[eva:alarm] tests/builtin/strcmp.c:74: Warning: 
+  accessing uninitialized left-value. assert \initialized(&process_status_22);
+[eva:alarm] tests/builtin/strcmp.c:76: Warning: 
+  function free: precondition 'freeable' got status unknown.
+[eva:alarm] tests/builtin/strcmp.c:77: Warning: 
+  function free: precondition 'freeable' got status unknown.
+[eva] using specification for function __e_acsl_memory_clean
+[eva] done for function main
diff --git a/src/plugins/e-acsl/tests/builtin/oracle/strcpy.err.oracle b/src/plugins/e-acsl/tests/builtin/oracle/strcpy.err.oracle
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/src/plugins/e-acsl/tests/builtin/oracle/strcpy.res.oracle b/src/plugins/e-acsl/tests/builtin/oracle/strcpy.res.oracle
index 2c8fe2a0aa0591be58b322e9cb5dcbf82b824117..e39196409126d5cf197fe7aab5ba02d7b0ca0b66 100644
--- a/src/plugins/e-acsl/tests/builtin/oracle/strcpy.res.oracle
+++ b/src/plugins/e-acsl/tests/builtin/oracle/strcpy.res.oracle
@@ -1,62 +1,82 @@
-tests/builtin/strcpy.c:21:[kernel] warning: Calling undeclared function fork. Old style K&R code?
+[kernel:typing:implicit-function-declaration] tests/builtin/strcpy.c:21: Warning: 
+  Calling undeclared function fork. Old style K&R code?
 [e-acsl] beginning translation.
-[e-acsl] warning: annotating undefined function `exit':
-    the generated program may miss memory instrumentation
-    if there are memory-related annotations.
-[e-acsl] warning: annotating undefined function `strcpy':
-    the generated program may miss memory instrumentation
-    if there are memory-related annotations.
-[e-acsl] warning: annotating undefined function `strncpy':
-    the generated program may miss memory instrumentation
-    if there are memory-related annotations.
-[e-acsl] warning: annotating undefined function `strdup':
-    the generated program may miss memory instrumentation
-    if there are memory-related annotations.
-FRAMAC_SHARE/libc/stdio.h:150:[kernel] warning: Neither code nor specification for function printf, generating default assigns from the prototype
-FRAMAC_SHARE/libc/sys/wait.h:60:[kernel] warning: Neither code nor specification for function waitpid, generating default assigns from the prototype
-tests/builtin/strcpy.c:21:[kernel] warning: Neither code nor specification for function fork, generating default assigns from the prototype
-FRAMAC_SHARE/libc/string.h:396:[e-acsl] warning: E-ACSL construct `logic function application' is not yet supported.
-    Ignoring annotation.
-FRAMAC_SHARE/libc/string.h:396:[e-acsl] warning: E-ACSL construct `assigns clause in behavior' is not yet supported.
-    Ignoring annotation.
-FRAMAC_SHARE/libc/string.h:399:[e-acsl] warning: E-ACSL construct `trange' is not yet supported. Ignoring annotation.
-FRAMAC_SHARE/libc/string.h:321:[e-acsl] warning: E-ACSL construct `logic function application' is not yet supported.
-    Ignoring annotation.
-FRAMAC_SHARE/libc/string.h:322:[e-acsl] warning: E-ACSL construct `trange' is not yet supported. Ignoring annotation.
-FRAMAC_SHARE/libc/string.h:328:[e-acsl] warning: E-ACSL construct `logic function returning an integer' is not yet supported.
-    Ignoring annotation.
-FRAMAC_SHARE/libc/string.h:328:[e-acsl] warning: E-ACSL construct `assigns clause in behavior' is not yet supported.
-    Ignoring annotation.
-FRAMAC_SHARE/libc/string.h:326:[e-acsl] warning: E-ACSL construct `trange' is not yet supported. Ignoring annotation.
-FRAMAC_SHARE/libc/string.h:331:[e-acsl] warning: E-ACSL construct `logic function returning an integer' is not yet supported.
-    Ignoring annotation.
-FRAMAC_SHARE/libc/string.h:309:[e-acsl] warning: E-ACSL construct `logic function application' is not yet supported.
-    Ignoring annotation.
-FRAMAC_SHARE/libc/string.h:310:[e-acsl] warning: E-ACSL construct `trange' is not yet supported. Ignoring annotation.
-FRAMAC_SHARE/libc/string.h:312:[e-acsl] warning: E-ACSL construct `\separated' is not yet supported. Ignoring annotation.
-FRAMAC_SHARE/libc/string.h:312:[e-acsl] warning: E-ACSL construct `assigns clause in behavior' is not yet supported.
-    Ignoring annotation.
-FRAMAC_SHARE/libc/string.h:315:[e-acsl] warning: E-ACSL construct `logic function returning an integer' is not yet supported.
-    Ignoring annotation.
-FRAMAC_SHARE/libc/string.h:316:[e-acsl] warning: E-ACSL construct `assigns clause in behavior' is not yet supported.
-    Ignoring annotation.
+[e-acsl] Warning: annotating undefined function `exit':
+  the generated program may miss memory instrumentation
+  if there are memory-related annotations.
+[e-acsl] Warning: annotating undefined function `waitpid':
+  the generated program may miss memory instrumentation
+  if there are memory-related annotations.
+[e-acsl] Warning: annotating undefined function `strcpy':
+  the generated program may miss memory instrumentation
+  if there are memory-related annotations.
+[e-acsl] Warning: annotating undefined function `strncpy':
+  the generated program may miss memory instrumentation
+  if there are memory-related annotations.
+[e-acsl] Warning: annotating undefined function `strdup':
+  the generated program may miss memory instrumentation
+  if there are memory-related annotations.
+[kernel:annot:missing-spec] FRAMAC_SHARE/libc/stdio.h:169: Warning: 
+  Neither code nor specification for function printf, generating default assigns from the prototype
+[kernel:annot:missing-spec] tests/builtin/strcpy.c:21: Warning: 
+  Neither code nor specification for function fork, generating default assigns from the prototype
+[e-acsl] FRAMAC_SHARE/libc/stdlib.h:404: Warning: 
+  E-ACSL construct `assigns clause in behavior' is not yet supported.
+  Ignoring annotation.
+[e-acsl] FRAMAC_SHARE/libc/string.h:446: Warning: 
+  E-ACSL construct `logic function application' is not yet supported.
+  Ignoring annotation.
+[e-acsl] FRAMAC_SHARE/libc/string.h:446: Warning: 
+  E-ACSL construct `assigns clause in behavior' is not yet supported.
+  Ignoring annotation.
+[e-acsl] FRAMAC_SHARE/libc/string.h:453: Warning: 
+  E-ACSL construct `logic function application' is not yet supported.
+  Ignoring annotation.
+[e-acsl] FRAMAC_SHARE/libc/string.h:359: Warning: 
+  E-ACSL construct `logic function application' is not yet supported.
+  Ignoring annotation.
+[e-acsl] FRAMAC_SHARE/libc/string.h:362: Warning: 
+  E-ACSL construct `\separated' is not yet supported. Ignoring annotation.
+[e-acsl] FRAMAC_SHARE/libc/string.h:368: Warning: 
+  E-ACSL construct `logic function returning an integer' is not yet supported.
+  Ignoring annotation.
+[e-acsl] FRAMAC_SHARE/libc/string.h:368: Warning: 
+  E-ACSL construct `assigns clause in behavior' is not yet supported.
+  Ignoring annotation.
+[e-acsl] FRAMAC_SHARE/libc/string.h:371: Warning: 
+  E-ACSL construct `logic function returning an integer' is not yet supported.
+  Ignoring annotation.
+[e-acsl] FRAMAC_SHARE/libc/string.h:347: Warning: 
+  E-ACSL construct `logic function application' is not yet supported.
+  Ignoring annotation.
+[e-acsl] FRAMAC_SHARE/libc/string.h:348: Warning: 
+  E-ACSL construct `logic function returning an integer' is not yet supported.
+  Ignoring annotation.
+[e-acsl] FRAMAC_SHARE/libc/string.h:350: Warning: 
+  E-ACSL construct `\separated' is not yet supported. Ignoring annotation.
+[e-acsl] FRAMAC_SHARE/libc/string.h:350: Warning: 
+  E-ACSL construct `assigns clause in behavior' is not yet supported.
+  Ignoring annotation.
+[e-acsl] FRAMAC_SHARE/libc/string.h:353: Warning: 
+  E-ACSL construct `logic function returning an integer' is not yet supported.
+  Ignoring annotation.
+[e-acsl] FRAMAC_SHARE/libc/sys/wait.h:92: Warning: 
+  E-ACSL construct `assigns clause in behavior' is not yet supported.
+  Ignoring annotation.
+[e-acsl] FRAMAC_SHARE/libc/sys/wait.h:86: Warning: 
+  E-ACSL construct `assigns clause in behavior' is not yet supported.
+  Ignoring annotation.
 [e-acsl] translation done in project "e-acsl".
-[value] Analyzing a complete application starting at main
-[value] Computing initial state
-[value] Initial state computed
-[value:initial-state] Values of globals at initialization
-  __fc_rand_max ∈ {32767}
-  __fc_heap_status ∈ [--..--]
+[eva] Analyzing a complete application starting at main
+[eva] Computing initial state
+[eva] Initial state computed
+[eva:initial-state] Values of globals at initialization
   __e_acsl_init ∈ [--..--]
-  __fc_fopen[0..15] ∈ {0}
-  __fc_p_fopen ∈ {{ &__fc_fopen[0] }}
   __e_acsl_heap_allocation_size ∈ [--..--]
   __e_acsl_math_HUGE_VAL ∈ [-1.79769313486e+308 .. 1.79769313486e+308]
   __e_acsl_math_HUGE_VALF ∈ [-3.40282346639e+38 .. 3.40282346639e+38]
   __e_acsl_math_INFINITY ∈ [-1.79769313486e+308 .. 1.79769313486e+308]
-  __fc_time ∈ [--..--]
   testno ∈ {0}
-  __fc_strtok_ptr ∈ {0}
   __gen_e_acsl_literal_string ∈ {0}
   __gen_e_acsl_literal_string_2 ∈ {0}
   __gen_e_acsl_literal_string_3 ∈ {0}
@@ -81,13 +101,132 @@ FRAMAC_SHARE/libc/string.h:316:[e-acsl] warning: E-ACSL construct `assigns claus
   __gen_e_acsl_literal_string_22 ∈ {0}
   __gen_e_acsl_literal_string_23 ∈ {0}
   __gen_e_acsl_literal_string_24 ∈ {0}
-[value] using specification for function __e_acsl_memory_init
-[value] using specification for function __e_acsl_store_block
-[value] using specification for function __e_acsl_full_init
-[value] using specification for function __e_acsl_mark_readonly
-[value] using specification for function strdup
-FRAMAC_SHARE/libc/string.h:396:[value] warning: ignoring unsupported \allocates clause
-FRAMAC_SHARE/libc/string.h:399:[value] warning: function strdup: this postcondition evaluates to false in this context.
-    If it is valid, either a precondition was not verified for this call,
-    or some assigns/from clauses are incomplete (or incorrect).
-[value] done for function main
+[eva] using specification for function __e_acsl_memory_init
+[eva] using specification for function __e_acsl_store_block
+[eva] using specification for function __e_acsl_full_init
+[eva] using specification for function __e_acsl_mark_readonly
+[eva] using specification for function strdup
+[eva:libc:unsupported-spec] FRAMAC_SHARE/libc/string.h:443: Warning: 
+  The specification of function 'strdup' is currently not supported by Eva.
+  Consider adding FRAMAC_SHARE/libc/string.c
+  to the analyzed source files.
+[eva] FRAMAC_SHARE/libc/string.h:443: Warning: 
+  ignoring unsupported \allocates clause
+[eva] using specification for function __e_acsl_delete_block
+[eva:alarm] FRAMAC_SHARE/libc/string.h:449: Warning: 
+  function __gen_e_acsl_strdup, behavior allocation: postcondition 'allocation' got status unknown. (Behavior may be inactive, no reduction performed.)
+[eva:alarm] FRAMAC_SHARE/libc/string.h:451: Warning: 
+  function __gen_e_acsl_strdup, behavior allocation: postcondition 'result_valid_string_and_same_contents' got status invalid. (Behavior may be inactive, no reduction performed.)
+[eva:alarm] FRAMAC_SHARE/libc/string.h:456: Warning: 
+  function __gen_e_acsl_strdup, behavior no_allocation: postcondition 'result_null' got status unknown. (Behavior may be inactive, no reduction performed.)
+[eva] tests/builtin/strcpy.c:13: allocating variable __malloc_main_l13
+[eva] tests/builtin/strcpy.c:14: allocating variable __malloc_main_l14
+[eva] tests/builtin/strcpy.c:18: allocating variable __malloc_main_l18
+[eva] using specification for function fork
+[eva:alarm] tests/builtin/strcpy.c:21: Warning: 
+  function __gen_e_acsl_strcpy: precondition 'valid_string_src' got status invalid.
+[eva] using specification for function __e_acsl_valid
+[eva] using specification for function __e_acsl_assert
+[eva] using specification for function waitpid
+[eva] using specification for function __e_acsl_initialized
+[eva:alarm] FRAMAC_SHARE/libc/sys/wait.h:86: Warning: 
+  function __e_acsl_assert: precondition got status unknown.
+[eva:alarm] FRAMAC_SHARE/libc/sys/wait.h:86: Warning: 
+  function __gen_e_acsl_waitpid: postcondition 'initialization,stat_loc_init_on_success' got status unknown.
+[eva:alarm] tests/builtin/strcpy.c:21: Warning: 
+  accessing uninitialized left-value. assert \initialized(&process_status);
+[eva] using specification for function printf
+[eva] using specification for function exit
+[eva] using specification for function __e_acsl_builtin_strcpy
+[eva] FRAMAC_SHARE/libc/string.h:353: 
+  cannot evaluate ACSL term, unsupported ACSL construct: logic function strcmp
+[eva:alarm] FRAMAC_SHARE/libc/string.h:353: Warning: 
+  function __gen_e_acsl_strcpy: postcondition 'equal_contents' got status unknown.
+[eva:alarm] tests/builtin/strcpy.c:22: Warning: 
+  accessing uninitialized left-value. assert \initialized(&process_status_0);
+[eva:alarm] tests/builtin/strcpy.c:23: Warning: 
+  function __gen_e_acsl_strcpy: precondition 'valid_string_src' got status invalid.
+[eva:alarm] tests/builtin/strcpy.c:23: Warning: 
+  accessing uninitialized left-value. assert \initialized(&process_status_1);
+[eva:alarm] tests/builtin/strcpy.c:24: Warning: 
+  accessing left-value that contains escaping addresses.
+  assert ¬\dangling(&unalloc_str);
+[eva:alarm] tests/builtin/strcpy.c:24: Warning: 
+  function __gen_e_acsl_strcpy: precondition 'valid_string_src' got status invalid.
+[eva:alarm] tests/builtin/strcpy.c:24: Warning: 
+  accessing uninitialized left-value. assert \initialized(&process_status_2);
+[eva:alarm] tests/builtin/strcpy.c:25: Warning: 
+  function __gen_e_acsl_strcpy: precondition 'valid_string_src' got status invalid.
+[eva:alarm] tests/builtin/strcpy.c:25: Warning: 
+  accessing uninitialized left-value. assert \initialized(&process_status_3);
+[eva:alarm] tests/builtin/strcpy.c:26: Warning: 
+  function __gen_e_acsl_strcpy: precondition 'room_string' got status invalid.
+[eva:alarm] tests/builtin/strcpy.c:26: Warning: 
+  accessing uninitialized left-value. assert \initialized(&process_status_4);
+[eva:alarm] tests/builtin/strcpy.c:27: Warning: 
+  function __gen_e_acsl_strcpy: precondition 'valid_string_src' got status invalid.
+[eva:alarm] tests/builtin/strcpy.c:27: Warning: 
+  accessing uninitialized left-value. assert \initialized(&process_status_5);
+[eva:alarm] tests/builtin/strcpy.c:28: Warning: 
+  accessing uninitialized left-value. assert \initialized(&process_status_6);
+[eva:alarm] tests/builtin/strcpy.c:29: Warning: 
+  function __gen_e_acsl_strcpy: precondition 'separation' got status invalid.
+[eva:alarm] tests/builtin/strcpy.c:29: Warning: 
+  accessing uninitialized left-value. assert \initialized(&process_status_7);
+[eva:alarm] tests/builtin/strcpy.c:32: Warning: 
+  function __gen_e_acsl_strncpy: precondition 'valid_string_src' got status invalid.
+[eva:alarm] tests/builtin/strcpy.c:32: Warning: 
+  accessing uninitialized left-value. assert \initialized(&process_status_8);
+[eva:alarm] tests/builtin/strcpy.c:33: Warning: 
+  function __gen_e_acsl_strncpy: precondition 'valid_string_src' got status invalid.
+[eva:alarm] tests/builtin/strcpy.c:33: Warning: 
+  accessing uninitialized left-value. assert \initialized(&process_status_9);
+[eva:alarm] tests/builtin/strcpy.c:34: Warning: 
+  accessing left-value that contains escaping addresses.
+  assert ¬\dangling(&unalloc_str);
+[eva:alarm] tests/builtin/strcpy.c:34: Warning: 
+  function __gen_e_acsl_strncpy: precondition 'valid_string_src' got status invalid.
+[eva:alarm] tests/builtin/strcpy.c:34: Warning: 
+  accessing uninitialized left-value. assert \initialized(&process_status_10);
+[eva:alarm] tests/builtin/strcpy.c:35: Warning: 
+  function __gen_e_acsl_strncpy: precondition 'valid_string_src' got status invalid.
+[eva:alarm] tests/builtin/strcpy.c:35: Warning: 
+  accessing uninitialized left-value. assert \initialized(&process_status_11);
+[eva:alarm] tests/builtin/strcpy.c:36: Warning: 
+  function __gen_e_acsl_strncpy: precondition 'room_nstring' got status invalid.
+[eva:alarm] tests/builtin/strcpy.c:36: Warning: 
+  accessing uninitialized left-value. assert \initialized(&process_status_12);
+[eva:alarm] tests/builtin/strcpy.c:37: Warning: 
+  function __gen_e_acsl_strncpy: precondition 'valid_string_src' got status invalid.
+[eva:alarm] tests/builtin/strcpy.c:37: Warning: 
+  accessing uninitialized left-value. assert \initialized(&process_status_13);
+[eva] using specification for function __gmpz_init_set_ui
+[eva] using specification for function __gmpz_init_set
+[eva] using specification for function __gmpz_clear
+[eva:alarm] FRAMAC_SHARE/libc/string.h:358: Warning: 
+  function __gmpz_init_set: precondition ¬\initialized(z) got status unknown.
+[eva] using specification for function __gmpz_init_set_si
+[eva] using specification for function __gmpz_init
+[eva] using specification for function __gmpz_sub
+[eva] using specification for function __gmpz_mul
+[eva] using specification for function __gmpz_cmp
+[eva:alarm] FRAMAC_SHARE/libc/string.h:360: Warning: 
+  function __e_acsl_assert: precondition got status unknown.
+[eva] using specification for function __gmpz_get_ui
+[eva] using specification for function __e_acsl_builtin_strncpy
+[eva] FRAMAC_SHARE/libc/string.h:369: 
+  cannot evaluate ACSL term, unsupported ACSL construct: logic function strcmp
+[eva:alarm] FRAMAC_SHARE/libc/string.h:366: Warning: 
+  function __e_acsl_assert: precondition got status unknown.
+[eva:alarm] FRAMAC_SHARE/libc/string.h:369: Warning: 
+  function __gen_e_acsl_strncpy, behavior complete: postcondition 'equal_after_copy' got status unknown.
+[eva:alarm] tests/builtin/strcpy.c:38: Warning: 
+  accessing uninitialized left-value. assert \initialized(&process_status_14);
+[eva:alarm] tests/builtin/strcpy.c:39: Warning: 
+  function __gen_e_acsl_strncpy: precondition 'separation' got status invalid.
+[eva:alarm] tests/builtin/strcpy.c:39: Warning: 
+  accessing uninitialized left-value. assert \initialized(&process_status_15);
+[eva:alarm] tests/builtin/strcpy.c:41: Warning: 
+  function free: precondition 'freeable' got status unknown.
+[eva] using specification for function __e_acsl_memory_clean
+[eva] done for function main
diff --git a/src/plugins/e-acsl/tests/builtin/oracle/strlen.err.oracle b/src/plugins/e-acsl/tests/builtin/oracle/strlen.err.oracle
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/src/plugins/e-acsl/tests/builtin/oracle/strlen.res.oracle b/src/plugins/e-acsl/tests/builtin/oracle/strlen.res.oracle
index 675c7462d45230c72704dbd497d4bdac24771fc0..10bba2830aa280e21895a86b3bf4455039ffba2f 100644
--- a/src/plugins/e-acsl/tests/builtin/oracle/strlen.res.oracle
+++ b/src/plugins/e-acsl/tests/builtin/oracle/strlen.res.oracle
@@ -1,52 +1,66 @@
-tests/builtin/strlen.c:18:[kernel] warning: Calling undeclared function fork. Old style K&R code?
+[kernel:typing:implicit-function-declaration] tests/builtin/strlen.c:18: Warning: 
+  Calling undeclared function fork. Old style K&R code?
 [e-acsl] beginning translation.
-[e-acsl] warning: annotating undefined function `abort':
-    the generated program may miss memory instrumentation
-    if there are memory-related annotations.
-[e-acsl] warning: annotating undefined function `exit':
-    the generated program may miss memory instrumentation
-    if there are memory-related annotations.
-[e-acsl] warning: annotating undefined function `strlen':
-    the generated program may miss memory instrumentation
-    if there are memory-related annotations.
-[e-acsl] warning: annotating undefined function `strdup':
-    the generated program may miss memory instrumentation
-    if there are memory-related annotations.
-FRAMAC_SHARE/libc/stdio.h:150:[kernel] warning: Neither code nor specification for function printf, generating default assigns from the prototype
-FRAMAC_SHARE/libc/sys/wait.h:60:[kernel] warning: Neither code nor specification for function waitpid, generating default assigns from the prototype
-tests/builtin/strlen.c:18:[kernel] warning: Neither code nor specification for function fork, generating default assigns from the prototype
-FRAMAC_SHARE/libc/string.h:396:[e-acsl] warning: E-ACSL construct `logic function application' is not yet supported.
-    Ignoring annotation.
-FRAMAC_SHARE/libc/string.h:396:[e-acsl] warning: E-ACSL construct `assigns clause in behavior' is not yet supported.
-    Ignoring annotation.
-FRAMAC_SHARE/libc/string.h:399:[e-acsl] warning: E-ACSL construct `trange' is not yet supported. Ignoring annotation.
-FRAMAC_SHARE/libc/string.h:108:[e-acsl] warning: E-ACSL construct `logic function application' is not yet supported.
-    Ignoring annotation.
-FRAMAC_SHARE/libc/string.h:108:[e-acsl] warning: E-ACSL construct `assigns clause in behavior' is not yet supported.
-    Ignoring annotation.
-FRAMAC_SHARE/libc/string.h:110:[e-acsl] warning: E-ACSL construct `logic function returning an integer' is not yet supported.
-    Ignoring annotation.
-FRAMAC_SHARE/libc/string.h:110:[e-acsl] warning: E-ACSL construct `assigns clause in behavior' is not yet supported.
-    Ignoring annotation.
-FRAMAC_SHARE/libc/stdlib.h:415:[e-acsl] warning: E-ACSL construct `assigns clause in behavior' is not yet supported.
-    Ignoring annotation.
+[e-acsl] Warning: annotating undefined function `abort':
+  the generated program may miss memory instrumentation
+  if there are memory-related annotations.
+[e-acsl] Warning: annotating undefined function `exit':
+  the generated program may miss memory instrumentation
+  if there are memory-related annotations.
+[e-acsl] Warning: annotating undefined function `waitpid':
+  the generated program may miss memory instrumentation
+  if there are memory-related annotations.
+[e-acsl] Warning: annotating undefined function `strlen':
+  the generated program may miss memory instrumentation
+  if there are memory-related annotations.
+[e-acsl] Warning: annotating undefined function `strdup':
+  the generated program may miss memory instrumentation
+  if there are memory-related annotations.
+[kernel:annot:missing-spec] FRAMAC_SHARE/libc/stdio.h:169: Warning: 
+  Neither code nor specification for function printf, generating default assigns from the prototype
+[kernel:annot:missing-spec] tests/builtin/strlen.c:18: Warning: 
+  Neither code nor specification for function fork, generating default assigns from the prototype
+[e-acsl] FRAMAC_SHARE/libc/stdlib.h:394: Warning: 
+  E-ACSL construct `assigns clause in behavior' is not yet supported.
+  Ignoring annotation.
+[e-acsl] FRAMAC_SHARE/libc/string.h:446: Warning: 
+  E-ACSL construct `logic function application' is not yet supported.
+  Ignoring annotation.
+[e-acsl] FRAMAC_SHARE/libc/string.h:446: Warning: 
+  E-ACSL construct `assigns clause in behavior' is not yet supported.
+  Ignoring annotation.
+[e-acsl] FRAMAC_SHARE/libc/string.h:453: Warning: 
+  E-ACSL construct `logic function application' is not yet supported.
+  Ignoring annotation.
+[e-acsl] FRAMAC_SHARE/libc/string.h:125: Warning: 
+  E-ACSL construct `logic function application' is not yet supported.
+  Ignoring annotation.
+[e-acsl] FRAMAC_SHARE/libc/string.h:125: Warning: 
+  E-ACSL construct `assigns clause in behavior' is not yet supported.
+  Ignoring annotation.
+[e-acsl] FRAMAC_SHARE/libc/string.h:127: Warning: 
+  E-ACSL construct `logic function returning an integer' is not yet supported.
+  Ignoring annotation.
+[e-acsl] FRAMAC_SHARE/libc/sys/wait.h:92: Warning: 
+  E-ACSL construct `assigns clause in behavior' is not yet supported.
+  Ignoring annotation.
+[e-acsl] FRAMAC_SHARE/libc/sys/wait.h:86: Warning: 
+  E-ACSL construct `assigns clause in behavior' is not yet supported.
+  Ignoring annotation.
+[e-acsl] FRAMAC_SHARE/libc/stdlib.h:406: Warning: 
+  E-ACSL construct `assigns clause in behavior' is not yet supported.
+  Ignoring annotation.
 [e-acsl] translation done in project "e-acsl".
-[value] Analyzing a complete application starting at main
-[value] Computing initial state
-[value] Initial state computed
-[value:initial-state] Values of globals at initialization
-  __fc_rand_max ∈ {32767}
-  __fc_heap_status ∈ [--..--]
+[eva] Analyzing a complete application starting at main
+[eva] Computing initial state
+[eva] Initial state computed
+[eva:initial-state] Values of globals at initialization
   __e_acsl_init ∈ [--..--]
-  __fc_fopen[0..15] ∈ {0}
-  __fc_p_fopen ∈ {{ &__fc_fopen[0] }}
   __e_acsl_heap_allocation_size ∈ [--..--]
   __e_acsl_math_HUGE_VAL ∈ [-1.79769313486e+308 .. 1.79769313486e+308]
   __e_acsl_math_HUGE_VALF ∈ [-3.40282346639e+38 .. 3.40282346639e+38]
   __e_acsl_math_INFINITY ∈ [-1.79769313486e+308 .. 1.79769313486e+308]
-  __fc_time ∈ [--..--]
   testno ∈ {0}
-  __fc_strtok_ptr ∈ {0}
   __gen_e_acsl_literal_string ∈ {0}
   __gen_e_acsl_literal_string_2 ∈ {0}
   __gen_e_acsl_literal_string_3 ∈ {0}
@@ -62,13 +76,49 @@ FRAMAC_SHARE/libc/stdlib.h:415:[e-acsl] warning: E-ACSL construct `assigns claus
   __gen_e_acsl_literal_string_13 ∈ {0}
   __gen_e_acsl_literal_string_14 ∈ {0}
   __gen_e_acsl_literal_string_15 ∈ {0}
-[value] using specification for function __e_acsl_memory_init
-[value] using specification for function __e_acsl_store_block
-[value] using specification for function __e_acsl_full_init
-[value] using specification for function __e_acsl_mark_readonly
-[value] using specification for function strdup
-FRAMAC_SHARE/libc/string.h:396:[value] warning: ignoring unsupported \allocates clause
-FRAMAC_SHARE/libc/string.h:399:[value] warning: function strdup: this postcondition evaluates to false in this context.
-    If it is valid, either a precondition was not verified for this call,
-    or some assigns/from clauses are incomplete (or incorrect).
-[value] done for function main
+[eva] using specification for function __e_acsl_memory_init
+[eva] using specification for function __e_acsl_store_block
+[eva] using specification for function __e_acsl_full_init
+[eva] using specification for function __e_acsl_mark_readonly
+[eva] using specification for function strdup
+[eva:libc:unsupported-spec] FRAMAC_SHARE/libc/string.h:443: Warning: 
+  The specification of function 'strdup' is currently not supported by Eva.
+  Consider adding FRAMAC_SHARE/libc/string.c
+  to the analyzed source files.
+[eva] FRAMAC_SHARE/libc/string.h:443: Warning: 
+  ignoring unsupported \allocates clause
+[eva] using specification for function __e_acsl_delete_block
+[eva:alarm] FRAMAC_SHARE/libc/string.h:449: Warning: 
+  function __gen_e_acsl_strdup, behavior allocation: postcondition 'allocation' got status unknown. (Behavior may be inactive, no reduction performed.)
+[eva:alarm] FRAMAC_SHARE/libc/string.h:451: Warning: 
+  function __gen_e_acsl_strdup, behavior allocation: postcondition 'result_valid_string_and_same_contents' got status invalid. (Behavior may be inactive, no reduction performed.)
+[eva:alarm] FRAMAC_SHARE/libc/string.h:456: Warning: 
+  function __gen_e_acsl_strdup, behavior no_allocation: postcondition 'result_null' got status unknown. (Behavior may be inactive, no reduction performed.)
+[eva] using specification for function fork
+[eva] using specification for function __e_acsl_builtin_strlen
+[eva] using specification for function exit
+[eva] using specification for function __e_acsl_valid
+[eva] using specification for function __e_acsl_assert
+[eva] using specification for function waitpid
+[eva] using specification for function __e_acsl_initialized
+[eva:alarm] FRAMAC_SHARE/libc/sys/wait.h:86: Warning: 
+  function __e_acsl_assert: precondition got status unknown.
+[eva:alarm] FRAMAC_SHARE/libc/sys/wait.h:86: Warning: 
+  function __gen_e_acsl_waitpid: postcondition 'initialization,stat_loc_init_on_success' got status unknown.
+[eva:alarm] tests/builtin/strlen.c:18: Warning: 
+  accessing uninitialized left-value. assert \initialized(&process_status);
+[eva] using specification for function printf
+[eva:alarm] tests/builtin/strlen.c:19: Warning: 
+  function __gen_e_acsl_strlen: precondition 'valid_string_s' got status invalid.
+[eva:alarm] tests/builtin/strlen.c:19: Warning: 
+  accessing uninitialized left-value. assert \initialized(&process_status_0);
+[eva:alarm] tests/builtin/strlen.c:20: Warning: 
+  accessing uninitialized left-value. assert \initialized(&process_status_1);
+[eva:alarm] tests/builtin/strlen.c:21: Warning: 
+  accessing uninitialized left-value. assert \initialized(&process_status_2);
+[eva] using specification for function __e_acsl_initialize
+[eva:alarm] tests/builtin/strlen.c:23: Warning: 
+  out of bounds write. assert \valid(heap_str + 7);
+[kernel] tests/builtin/strlen.c:23: Warning: 
+  all target addresses were invalid. This path is assumed to be dead.
+[eva] done for function main