diff --git a/src/plugins/e-acsl/tests/bts/oracle_ci/bts2252.res.oracle b/src/plugins/e-acsl/tests/bts/oracle_ci/bts2252.res.oracle index 994e5e176d8b6f2c1d0a276505cc9b85773538e7..9fa7a4c3837305fe11f1259849cd635115a40859 100644 --- a/src/plugins/e-acsl/tests/bts/oracle_ci/bts2252.res.oracle +++ b/src/plugins/e-acsl/tests/bts/oracle_ci/bts2252.res.oracle @@ -2,8 +2,6 @@ [e-acsl] Warning: annotating undefined function `strncpy': the generated program may miss memory instrumentation if there are memory-related annotations. -[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:372: Warning: E-ACSL construct `logic functions performing read accesses' is not yet supported. @@ -15,8 +13,6 @@ [e-acsl] FRAMAC_SHARE/libc/string.h:363: Warning: E-ACSL construct `logic functions with labels' is not yet supported. Ignoring annotation. -[e-acsl] FRAMAC_SHARE/libc/string.h:366: Warning: - E-ACSL construct `\separated' is not yet supported. Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/string.h:362: Warning: Some assumes clauses couldn't be translated. Ignoring complete and disjoint behaviors annotations. diff --git a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts2252.c b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts2252.c index 58c0df1de84e4233601befe38ea728af74dfe708..23e58720f83757fa2167d59192c14bfd47dfec50 100644 --- a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts2252.c +++ b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts2252.c @@ -56,6 +56,7 @@ char *__gen_e_acsl_strncpy(char * __restrict dest, __e_acsl_contract_t *__gen_e_acsl_contract; char *__retres; { + unsigned long __gen_e_acsl_size; __e_acsl_mpz_t __gen_e_acsl_n; __e_acsl_mpz_t __gen_e_acsl_; __e_acsl_mpz_t __gen_e_acsl_sub; @@ -63,7 +64,24 @@ char *__gen_e_acsl_strncpy(char * __restrict dest, __e_acsl_mpz_t __gen_e_acsl_sub_2; __e_acsl_mpz_t __gen_e_acsl_add; unsigned long __gen_e_acsl__3; + unsigned long __gen_e_acsl_if; int __gen_e_acsl_valid; + unsigned long __gen_e_acsl_size_2; + unsigned long __gen_e_acsl__4; + unsigned long __gen_e_acsl_if_2; + int __gen_e_acsl_valid_read; + unsigned long __gen_e_acsl_size_3; + unsigned long __gen_e_acsl__5; + unsigned long __gen_e_acsl_if_3; + int __gen_e_acsl_valid_read_2; + unsigned long __gen_e_acsl_size_4; + unsigned long __gen_e_acsl__6; + unsigned long __gen_e_acsl_if_4; + unsigned long __gen_e_acsl_size_5; + unsigned long __gen_e_acsl__7; + unsigned long __gen_e_acsl_if_5; + int __gen_e_acsl_separated; + __e_acsl_store_block((void *)(& src),(size_t)8); __e_acsl_store_block((void *)(& dest),(size_t)8); __gen_e_acsl_contract = __e_acsl_contract_init((size_t)2); __gmpz_init_set_ui(__gen_e_acsl_n,n); @@ -82,12 +100,54 @@ char *__gen_e_acsl_strncpy(char * __restrict dest, (__e_acsl_mpz_struct const *)(__gen_e_acsl_sub_2), (__e_acsl_mpz_struct const *)(__gen_e_acsl_)); __gen_e_acsl__3 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_add)); + __gen_e_acsl_size = 1UL * __gen_e_acsl__3; + if (__gen_e_acsl_size <= 0UL) __gen_e_acsl_if = 0UL; + else __gen_e_acsl_if = __gen_e_acsl_size; __gen_e_acsl_valid = __e_acsl_valid((void *)(dest + 1 * 0), - __gen_e_acsl__3,(void *)dest, + __gen_e_acsl_if,(void *)dest, (void *)(& dest)); __e_acsl_assert(__gen_e_acsl_valid,"Precondition","strncpy", "\\valid(dest + (0 .. n - 1))", "FRAMAC_SHARE/libc/string.h",364); + __gen_e_acsl__4 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_add)); + __gen_e_acsl_size_2 = 1UL * __gen_e_acsl__4; + if (__gen_e_acsl_size_2 <= 0UL) __gen_e_acsl_if_2 = 0UL; + else __gen_e_acsl_if_2 = __gen_e_acsl_size_2; + __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)(dest + 1 * 0), + __gen_e_acsl_if_2, + (void *)dest, + (void *)(& dest)); + /*@ assert E_ACSL: separated_guard: \valid_read(dest + (0 .. n - 1)); */ + __e_acsl_assert(__gen_e_acsl_valid_read,"RTE","strncpy", + "separated_guard: \\valid_read(dest + (0 .. n - 1))", + "FRAMAC_SHARE/libc/string.h",366); + __gen_e_acsl__5 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_add)); + __gen_e_acsl_size_3 = 1UL * __gen_e_acsl__5; + if (__gen_e_acsl_size_3 <= 0UL) __gen_e_acsl_if_3 = 0UL; + else __gen_e_acsl_if_3 = __gen_e_acsl_size_3; + __gen_e_acsl_valid_read_2 = __e_acsl_valid_read((void *)(src + 1 * 0), + __gen_e_acsl_if_3, + (void *)src, + (void *)(& src)); + /*@ assert E_ACSL: separated_guard: \valid_read(src + (0 .. n - 1)); */ + __e_acsl_assert(__gen_e_acsl_valid_read_2,"RTE","strncpy", + "separated_guard: \\valid_read(src + (0 .. n - 1))", + "FRAMAC_SHARE/libc/string.h",366); + __gen_e_acsl__6 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_add)); + __gen_e_acsl_size_4 = 1UL * __gen_e_acsl__6; + if (__gen_e_acsl_size_4 <= 0UL) __gen_e_acsl_if_4 = 0UL; + else __gen_e_acsl_if_4 = __gen_e_acsl_size_4; + __gen_e_acsl__7 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_add)); + __gen_e_acsl_size_5 = 1UL * __gen_e_acsl__7; + if (__gen_e_acsl_size_5 <= 0UL) __gen_e_acsl_if_5 = 0UL; + else __gen_e_acsl_if_5 = __gen_e_acsl_size_5; + __gen_e_acsl_separated = __e_acsl_separated((size_t)2,dest + 1 * 0, + __gen_e_acsl_if_4, + src + 1 * 0, + __gen_e_acsl_if_5); + __e_acsl_assert(__gen_e_acsl_separated,"Precondition","strncpy", + "\\separated(dest + (0 .. n - 1), src + (0 .. n - 1))", + "FRAMAC_SHARE/libc/string.h",366); __gmpz_clear(__gen_e_acsl_n); __gmpz_clear(__gen_e_acsl_); __gmpz_clear(__gen_e_acsl_sub); @@ -106,42 +166,48 @@ char *__gen_e_acsl_strncpy(char * __restrict dest, __gen_e_acsl_at = dest; __retres = strncpy(dest,src,n); { - __e_acsl_mpz_t __gen_e_acsl__4; + unsigned long __gen_e_acsl_size_6; + __e_acsl_mpz_t __gen_e_acsl__8; __e_acsl_mpz_t __gen_e_acsl_sub_3; - __e_acsl_mpz_t __gen_e_acsl__5; + __e_acsl_mpz_t __gen_e_acsl__9; __e_acsl_mpz_t __gen_e_acsl_sub_4; __e_acsl_mpz_t __gen_e_acsl_add_2; - unsigned long __gen_e_acsl__6; + unsigned long __gen_e_acsl__10; + unsigned long __gen_e_acsl_if_6; int __gen_e_acsl_initialized; __e_acsl_assert(__retres == __gen_e_acsl_at,"Postcondition","strncpy", "\\result == \\old(dest)","FRAMAC_SHARE/libc/string.h", 369); - __gmpz_init_set_si(__gen_e_acsl__4,1L); + __gmpz_init_set_si(__gen_e_acsl__8,1L); __gmpz_init(__gen_e_acsl_sub_3); __gmpz_sub(__gen_e_acsl_sub_3, (__e_acsl_mpz_struct const *)(__gen_e_acsl_at_3), - (__e_acsl_mpz_struct const *)(__gen_e_acsl__4)); - __gmpz_init_set_si(__gen_e_acsl__5,0L); + (__e_acsl_mpz_struct const *)(__gen_e_acsl__8)); + __gmpz_init_set_si(__gen_e_acsl__9,0L); __gmpz_init(__gen_e_acsl_sub_4); __gmpz_sub(__gen_e_acsl_sub_4, (__e_acsl_mpz_struct const *)(__gen_e_acsl_sub_3), - (__e_acsl_mpz_struct const *)(__gen_e_acsl__5)); + (__e_acsl_mpz_struct const *)(__gen_e_acsl__9)); __gmpz_init(__gen_e_acsl_add_2); __gmpz_add(__gen_e_acsl_add_2, (__e_acsl_mpz_struct const *)(__gen_e_acsl_sub_4), - (__e_acsl_mpz_struct const *)(__gen_e_acsl__4)); - __gen_e_acsl__6 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_add_2)); + (__e_acsl_mpz_struct const *)(__gen_e_acsl__8)); + __gen_e_acsl__10 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_add_2)); + __gen_e_acsl_size_6 = 1UL * __gen_e_acsl__10; + if (__gen_e_acsl_size_6 <= 0UL) __gen_e_acsl_if_6 = 0UL; + else __gen_e_acsl_if_6 = __gen_e_acsl_size_6; __gen_e_acsl_initialized = __e_acsl_initialized((void *)(__gen_e_acsl_at_2 + 1 * 0), - __gen_e_acsl__6); + __gen_e_acsl_if_6); __e_acsl_assert(__gen_e_acsl_initialized,"Postcondition","strncpy", "\\initialized(\\old(dest) + (0 .. \\old(n) - 1))", "FRAMAC_SHARE/libc/string.h",370); __e_acsl_contract_clean(__gen_e_acsl_contract); + __e_acsl_delete_block((void *)(& src)); __e_acsl_delete_block((void *)(& dest)); - __gmpz_clear(__gen_e_acsl__4); + __gmpz_clear(__gen_e_acsl__8); __gmpz_clear(__gen_e_acsl_sub_3); - __gmpz_clear(__gen_e_acsl__5); + __gmpz_clear(__gen_e_acsl__9); __gmpz_clear(__gen_e_acsl_sub_4); __gmpz_clear(__gen_e_acsl_add_2); __gmpz_clear(__gen_e_acsl_at_3); diff --git a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts2406.c b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts2406.c index 3c48bb9e56162ba5522dfccc4ab3b1564e640cad..08f3b321a24ee68353bd2d629d1f6859c1458c26 100644 --- a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts2406.c +++ b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts2406.c @@ -28,16 +28,28 @@ int main(void) __e_acsl_store_block((void *)(& p),(size_t)8); __e_acsl_full_init((void *)(& p)); { + int __gen_e_acsl_size; + int __gen_e_acsl_if; int __gen_e_acsl_valid; - __gen_e_acsl_valid = __e_acsl_valid((void *)(p + 1 * 0),(size_t)10, - (void *)p,(void *)(& p)); + __gen_e_acsl_size = 1 * ((9 - 0) + 1); + if (__gen_e_acsl_size <= 0) __gen_e_acsl_if = 0; + else __gen_e_acsl_if = __gen_e_acsl_size; + __gen_e_acsl_valid = __e_acsl_valid((void *)(p + 1 * 0), + (size_t)__gen_e_acsl_if,(void *)p, + (void *)(& p)); __e_acsl_assert(! __gen_e_acsl_valid,"Assertion","main", "!\\valid(p + (0 .. 9))","tests/bts/bts2406.c",10); } /*@ assert ¬\valid(p + (0 .. 9)); */ ; { + int __gen_e_acsl_size_2; + int __gen_e_acsl_if_2; int __gen_e_acsl_valid_2; - __gen_e_acsl_valid_2 = __e_acsl_valid((void *)(& t + 1 * 0),(size_t)10, + __gen_e_acsl_size_2 = 1 * ((9 - 0) + 1); + if (__gen_e_acsl_size_2 <= 0) __gen_e_acsl_if_2 = 0; + else __gen_e_acsl_if_2 = __gen_e_acsl_size_2; + __gen_e_acsl_valid_2 = __e_acsl_valid((void *)(& t + 1 * 0), + (size_t)__gen_e_acsl_if_2, (void *)(& t),(void *)0); __e_acsl_assert(__gen_e_acsl_valid_2,"Assertion","main", "\\valid(&t[0 .. 9])","tests/bts/bts2406.c",11); diff --git a/src/plugins/e-acsl/tests/format/oracle_ci/gen_printf.c b/src/plugins/e-acsl/tests/format/oracle_ci/gen_printf.c index 86a8665ee99080f618094bcf2f7a7024b80ca31f..09554f35c6239bf11140f87b8473afb363a08eaf 100644 --- a/src/plugins/e-acsl/tests/format/oracle_ci/gen_printf.c +++ b/src/plugins/e-acsl/tests/format/oracle_ci/gen_printf.c @@ -171,6 +171,7 @@ char *__gen_e_acsl_literal_string_12; char *__gen_e_acsl_literal_string_35; char *__gen_e_acsl_literal_string_9; char *__gen_e_acsl_literal_string_6; +char *__gen_e_acsl_literal_string_338; char *__gen_e_acsl_literal_string_70; char *__gen_e_acsl_literal_string_47; char *__gen_e_acsl_literal_string_32; @@ -491,6 +492,7 @@ void test_specifier_application(char const *allowed, char const *fmt, size_t tmp; unsigned long __lengthof_format; int i; + __e_acsl_store_block((void *)(& fmt),(size_t)8); __e_acsl_store_block((void *)(& allowed),(size_t)8); tmp = __gen_e_acsl_strlen(fmt); int len = (int)tmp; @@ -581,6 +583,7 @@ void test_specifier_application(char const *allowed, char const *fmt, } __e_acsl_delete_block((void *)format); /* __fc_vla_free((void *)format); */ + __e_acsl_delete_block((void *)(& fmt)); __e_acsl_delete_block((void *)(& allowed)); __e_acsl_delete_block((void *)(& format)); return; @@ -700,11 +703,13 @@ char *__gen_e_acsl_strcpy(char * __restrict dest, char const * __restrict src) { char *__gen_e_acsl_at; char *__retres; + __e_acsl_store_block((void *)(& src),(size_t)8); __e_acsl_store_block((void *)(& dest),(size_t)8); __gen_e_acsl_at = dest; __retres = strcpy(dest,src); __e_acsl_assert(__retres == __gen_e_acsl_at,"Postcondition","strcpy", "\\result == \\old(dest)","FRAMAC_SHARE/libc/string.h",358); + __e_acsl_delete_block((void *)(& src)); __e_acsl_delete_block((void *)(& dest)); return __retres; } @@ -821,7 +826,9 @@ char *__gen_e_acsl_strchr(char const *s, int c) size_t __gen_e_acsl_strlen(char const *s) { size_t __retres; + __e_acsl_store_block((void *)(& s),(size_t)8); __retres = strlen(s); + __e_acsl_delete_block((void *)(& s)); return __retres; } @@ -1655,6 +1662,11 @@ void __e_acsl_globals_init(void) sizeof("fFeEgGaA")); __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_338 = "diouxfFeEgGaAcspn"; + __e_acsl_store_block((void *)__gen_e_acsl_literal_string_338, + sizeof("diouxfFeEgGaAcspn")); + __e_acsl_full_init((void *)__gen_e_acsl_literal_string_338); + __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_338); __gen_e_acsl_literal_string_70 = "diouxXncsaAeEfFgG"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_70, sizeof("diouxXncsaAeEfFgG")); @@ -2531,6 +2543,8 @@ void __e_acsl_globals_init(void) sizeof("% n")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_323); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_323); + __e_acsl_store_block((void *)(& valid_specifiers),(size_t)8); + __e_acsl_full_init((void *)(& valid_specifiers)); __e_acsl_store_block((void *)(& __fc_p_time_tm),(size_t)8); __e_acsl_full_init((void *)(& __fc_p_time_tm)); __e_acsl_store_block((void *)(& __fc_time_tm),(size_t)36); @@ -2541,6 +2555,7 @@ void __e_acsl_globals_init(void) void __e_acsl_globals_clean(void) { + __e_acsl_delete_block((void *)(& valid_specifiers)); __e_acsl_delete_block((void *)(& __fc_p_time_tm)); __e_acsl_delete_block((void *)(& __fc_time_tm)); } diff --git a/src/plugins/e-acsl/tests/format/oracle_ci/printf.res.oracle b/src/plugins/e-acsl/tests/format/oracle_ci/printf.res.oracle index 7e9dbd5e9e4cc0ccf159e9c4c9bdbb7ba25a2110..c34d2188fe098363b7362b92d86f6bfa743eb423 100644 --- a/src/plugins/e-acsl/tests/format/oracle_ci/printf.res.oracle +++ b/src/plugins/e-acsl/tests/format/oracle_ci/printf.res.oracle @@ -23,8 +23,6 @@ [e-acsl] Warning: annotating undefined function `waitpid': the generated program may miss memory instrumentation if there are memory-related annotations. -[e-acsl] FRAMAC_SHARE/libc/string.h:351: Warning: - E-ACSL construct `\separated' is not yet supported. Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/sys/wait.h:79: Warning: E-ACSL construct `assigns clause in behavior' is not yet supported. Ignoring annotation. @@ -42,7 +40,9 @@ is not yet supported. Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/string.h:354: Warning: - E-ACSL construct `\separated' is not yet supported. Ignoring annotation. + E-ACSL construct `logic functions performing read accesses' + is not yet supported. + Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/string.h:351: Warning: E-ACSL construct `assigns clause in behavior' is not yet supported. Ignoring annotation. diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_ranges_in_builtins.c b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_ranges_in_builtins.c index d34788a14e92d66e46d0a3a1a20c57184474b438..9e15dfb8febf6839dcddb1f65f9d0a7d19c24353 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_ranges_in_builtins.c +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_ranges_in_builtins.c @@ -36,12 +36,14 @@ int main(void) char *b; double t2[4]; float t3[7][2][4]; + int t4[10][10][10]; struct S s; int **multi_dynamic; int i; __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8); __e_acsl_store_block((void *)(& multi_dynamic),(size_t)8); __e_acsl_store_block((void *)(& s),(size_t)24); + __e_acsl_store_block((void *)(t4),(size_t)4000); __e_acsl_store_block((void *)(t3),(size_t)224); __e_acsl_store_block((void *)(t2),(size_t)32); __e_acsl_store_block((void *)(& b),(size_t)8); @@ -49,9 +51,15 @@ int main(void) __e_acsl_full_init((void *)(& a)); a = (int *)malloc((unsigned long)10 * sizeof(int)); { + int __gen_e_acsl_size; + int __gen_e_acsl_if; int __gen_e_acsl_valid; + __gen_e_acsl_size = 4 * ((4 - 0) + 1); + if (__gen_e_acsl_size <= 0) __gen_e_acsl_if = 0; + else __gen_e_acsl_if = __gen_e_acsl_size; __gen_e_acsl_valid = __e_acsl_valid((void *)((char *)a + 4 * 0), - (size_t)20,(void *)a,(void *)(& a)); + (size_t)__gen_e_acsl_if,(void *)a, + (void *)(& a)); __e_acsl_assert(__gen_e_acsl_valid,"Assertion","main", "\\valid(a + (0 .. 4))", "tests/memory/ranges_in_builtins.c",19); @@ -59,9 +67,14 @@ int main(void) /*@ assert \valid(a + (0 .. 4)); */ ; int j = 2; { + long __gen_e_acsl_size_2; + long __gen_e_acsl_if_2; int __gen_e_acsl_valid_2; + __gen_e_acsl_size_2 = 4L * (((7L + j) - 4L) + 1L); + if (__gen_e_acsl_size_2 <= 0L) __gen_e_acsl_if_2 = 0L; + else __gen_e_acsl_if_2 = __gen_e_acsl_size_2; __gen_e_acsl_valid_2 = __e_acsl_valid((void *)((char *)a + 4 * 4), - (size_t)(4L * (((7L + j) - 4L) + 1L)), + (size_t)__gen_e_acsl_if_2, (void *)a,(void *)(& a)); __e_acsl_assert(__gen_e_acsl_valid_2,"Assertion","main", "\\valid(a + (4 .. 7 + j))", @@ -69,9 +82,15 @@ int main(void) } /*@ assert \valid(a + (4 .. 7 + j)); */ ; { + int __gen_e_acsl_size_3; + int __gen_e_acsl_if_3; int __gen_e_acsl_valid_3; + __gen_e_acsl_size_3 = 4 * ((11 - 10) + 1); + if (__gen_e_acsl_size_3 <= 0) __gen_e_acsl_if_3 = 0; + else __gen_e_acsl_if_3 = __gen_e_acsl_size_3; __gen_e_acsl_valid_3 = __e_acsl_valid((void *)((char *)a + 4 * 10), - (size_t)8,(void *)a,(void *)(& a)); + (size_t)__gen_e_acsl_if_3, + (void *)a,(void *)(& a)); __e_acsl_assert(! __gen_e_acsl_valid_3,"Assertion","main", "!\\valid(a + (10 .. 11))", "tests/memory/ranges_in_builtins.c",22); @@ -81,8 +100,14 @@ int main(void) __e_acsl_full_init((void *)(& b)); b = (char *)malloc((unsigned long)10 * sizeof(char)); { + int __gen_e_acsl_size_4; + int __gen_e_acsl_if_4; int __gen_e_acsl_valid_4; - __gen_e_acsl_valid_4 = __e_acsl_valid((void *)(b + 1 * 0),(size_t)10, + __gen_e_acsl_size_4 = 1 * ((9 - 0) + 1); + if (__gen_e_acsl_size_4 <= 0) __gen_e_acsl_if_4 = 0; + else __gen_e_acsl_if_4 = __gen_e_acsl_size_4; + __gen_e_acsl_valid_4 = __e_acsl_valid((void *)(b + 1 * 0), + (size_t)__gen_e_acsl_if_4, (void *)b,(void *)(& b)); __e_acsl_assert(__gen_e_acsl_valid_4,"Assertion","main", "\\valid(b + (0 .. 9))", @@ -90,8 +115,14 @@ int main(void) } /*@ assert \valid(b + (0 .. 9)); */ ; { + int __gen_e_acsl_size_5; + int __gen_e_acsl_if_5; int __gen_e_acsl_valid_5; - __gen_e_acsl_valid_5 = __e_acsl_valid((void *)(b + 1 * 10),(size_t)6, + __gen_e_acsl_size_5 = 1 * ((15 - 10) + 1); + if (__gen_e_acsl_size_5 <= 0) __gen_e_acsl_if_5 = 0; + else __gen_e_acsl_if_5 = __gen_e_acsl_size_5; + __gen_e_acsl_valid_5 = __e_acsl_valid((void *)(b + 1 * 10), + (size_t)__gen_e_acsl_if_5, (void *)b,(void *)(& b)); __e_acsl_assert(! __gen_e_acsl_valid_5,"Assertion","main", "!\\valid(b + (10 .. 15))", @@ -102,18 +133,30 @@ int main(void) __e_acsl_store_block((void *)(t),(size_t)24); __e_acsl_full_init((void *)(& t)); { + int __gen_e_acsl_size_6; + int __gen_e_acsl_if_6; int __gen_e_acsl_valid_6; + __gen_e_acsl_size_6 = 8 * ((2 - 0) + 1); + if (__gen_e_acsl_size_6 <= 0) __gen_e_acsl_if_6 = 0; + else __gen_e_acsl_if_6 = __gen_e_acsl_size_6; __gen_e_acsl_valid_6 = __e_acsl_valid((void *)((char *)(& t) + 8 * 0), - (size_t)24,(void *)(& t),(void *)0); + (size_t)__gen_e_acsl_if_6, + (void *)(& t),(void *)0); __e_acsl_assert(__gen_e_acsl_valid_6,"Assertion","main", "\\valid(&t[0 .. 2])", "tests/memory/ranges_in_builtins.c",31); } /*@ assert \valid(&t[0 .. 2]); */ ; { + int __gen_e_acsl_size_7; + int __gen_e_acsl_if_7; int __gen_e_acsl_valid_7; + __gen_e_acsl_size_7 = 8 * ((5 - 3) + 1); + if (__gen_e_acsl_size_7 <= 0) __gen_e_acsl_if_7 = 0; + else __gen_e_acsl_if_7 = __gen_e_acsl_size_7; __gen_e_acsl_valid_7 = __e_acsl_valid((void *)((char *)(& t) + 8 * 3), - (size_t)24,(void *)(& t),(void *)0); + (size_t)__gen_e_acsl_if_7, + (void *)(& t),(void *)0); __e_acsl_assert(! __gen_e_acsl_valid_7,"Assertion","main", "!\\valid(&t[3 .. 5])", "tests/memory/ranges_in_builtins.c",32); @@ -125,29 +168,44 @@ int main(void) __e_acsl_initialize((void *)(& t2[1]),sizeof(double)); t2[1] = 1.5; { + int __gen_e_acsl_size_8; + int __gen_e_acsl_if_8; int __gen_e_acsl_initialized; + __gen_e_acsl_size_8 = 8 * ((1 - 0) + 1); + if (__gen_e_acsl_size_8 <= 0) __gen_e_acsl_if_8 = 0; + else __gen_e_acsl_if_8 = __gen_e_acsl_size_8; __gen_e_acsl_initialized = __e_acsl_initialized((void *)((char *)(& t2) + 8 * 0), - (size_t)16); + (size_t)__gen_e_acsl_if_8); __e_acsl_assert(__gen_e_acsl_initialized,"Assertion","main", "\\initialized(&t2[0 .. 1])", "tests/memory/ranges_in_builtins.c",38); } /*@ assert \initialized(&t2[0 .. 1]); */ ; { + int __gen_e_acsl_size_9; + int __gen_e_acsl_if_9; int __gen_e_acsl_initialized_2; + __gen_e_acsl_size_9 = 8 * ((3 - 2) + 1); + if (__gen_e_acsl_size_9 <= 0) __gen_e_acsl_if_9 = 0; + else __gen_e_acsl_if_9 = __gen_e_acsl_size_9; __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)((char *)(& t2) + 8 * 2), - (size_t)16); + (size_t)__gen_e_acsl_if_9); __e_acsl_assert(! __gen_e_acsl_initialized_2,"Assertion","main", "!\\initialized(&t2[2 .. 3])", "tests/memory/ranges_in_builtins.c",39); } /*@ assert ¬\initialized(&t2[2 .. 3]); */ ; { + int __gen_e_acsl_size_10; + int __gen_e_acsl_if_10; int __gen_e_acsl_initialized_3; + __gen_e_acsl_size_10 = 1 * ((9 - 0) + 1); + if (__gen_e_acsl_size_10 <= 0) __gen_e_acsl_if_10 = 0; + else __gen_e_acsl_if_10 = __gen_e_acsl_size_10; __gen_e_acsl_initialized_3 = __e_acsl_initialized((void *)(b + 1 * 0), - (size_t)10); + (size_t)__gen_e_acsl_if_10); __e_acsl_assert(! __gen_e_acsl_initialized_3,"Assertion","main", "!\\initialized(b + (0 .. 9))", "tests/memory/ranges_in_builtins.c",41); @@ -197,9 +255,15 @@ int main(void) } /*@ assert ¬\initialized(&t3[n - 1 .. n + 2][1][0 .. 1]); */ ; { + int __gen_e_acsl_size_11; + int __gen_e_acsl_if_11; int __gen_e_acsl_valid_read; + __gen_e_acsl_size_11 = 4 * ((10 - 2) + 1); + if (__gen_e_acsl_size_11 <= 0) __gen_e_acsl_if_11 = 0; + else __gen_e_acsl_if_11 = __gen_e_acsl_size_11; __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)((char *)(& t3[6][1][0]) + - 4 * 2),(size_t)36, + 4 * 2), + (size_t)__gen_e_acsl_if_11, (void *)(& t3[6][1][0]), (void *)0); __e_acsl_assert(! __gen_e_acsl_valid_read,"Assertion","main", @@ -234,29 +298,68 @@ int main(void) "tests/memory/ranges_in_builtins.c",49); } /*@ assert \valid_read(&t3[n - 1 .. n + 2][1]); */ ; + { + int __gen_e_acsl_x; + int __gen_e_acsl_forall_4; + int __gen_e_acsl_range_4; + __gen_e_acsl_x = 5; + __gen_e_acsl_forall_4 = 1; + __gen_e_acsl_range_4 = 0; + while (1) { + if (__gen_e_acsl_range_4 <= __gen_e_acsl_x) ; else break; + { + int __gen_e_acsl_valid_8; + __gen_e_acsl_valid_8 = __e_acsl_valid((void *)(& t4[4][__gen_e_acsl_range_4][2]), + sizeof(int), + (void *)(& t4[4][__gen_e_acsl_range_4][2]), + (void *)0); + if (__gen_e_acsl_valid_8) ; + else { + __gen_e_acsl_forall_4 = 0; + goto e_acsl_end_loop4; + } + } + __gen_e_acsl_range_4 ++; + } + e_acsl_end_loop4: ; + __e_acsl_assert(__gen_e_acsl_forall_4,"Assertion","main", + "\\let x = 5; \\valid(&t4[4][0 .. x][2])", + "tests/memory/ranges_in_builtins.c",52); + } + /*@ assert \let x = 5; \valid(&t4[4][0 .. x][2]); */ ; __e_acsl_initialize((void *)(& s.a[0]),sizeof(int)); s.a[0] = 7; __e_acsl_initialize((void *)(& s.a[1]),sizeof(int)); s.a[1] = 8; { + int __gen_e_acsl_size_12; + int __gen_e_acsl_if_12; int __gen_e_acsl_initialized_5; + __gen_e_acsl_size_12 = 4 * ((1 - 1) + 1); + if (__gen_e_acsl_size_12 <= 0) __gen_e_acsl_if_12 = 0; + else __gen_e_acsl_if_12 = __gen_e_acsl_size_12; __gen_e_acsl_initialized_5 = __e_acsl_initialized((void *)((char *)(& s.a[0]) + 4 * 1), - (size_t)4); + (size_t)__gen_e_acsl_if_12); __e_acsl_assert(__gen_e_acsl_initialized_5,"Assertion","main", "\\initialized(&s.a[0] + (1 .. 1))", - "tests/memory/ranges_in_builtins.c",53); + "tests/memory/ranges_in_builtins.c",56); } /*@ assert \initialized(&s.a[0] + (1 .. 1)); */ ; { + int __gen_e_acsl_size_13; + int __gen_e_acsl_if_13; int __gen_e_acsl_initialized_6; + __gen_e_acsl_size_13 = 4 * ((1 - 0) + 1); + if (__gen_e_acsl_size_13 <= 0) __gen_e_acsl_if_13 = 0; + else __gen_e_acsl_if_13 = __gen_e_acsl_size_13; /*@ assert Eva: initialization: \initialized(&s.b); */ __gen_e_acsl_initialized_6 = __e_acsl_initialized((void *)((char *)s.b + 4 * 0), - (size_t)8); + (size_t)__gen_e_acsl_if_13); __e_acsl_assert(! __gen_e_acsl_initialized_6,"Assertion","main", "!\\initialized(s.b + (0 .. 1))", - "tests/memory/ranges_in_builtins.c",54); + "tests/memory/ranges_in_builtins.c",57); } /*@ assert ¬\initialized(s.b + (0 .. 1)); */ ; int size1 = 5; @@ -272,21 +375,27 @@ int main(void) } { int __gen_e_acsl_valid_read_3; - int __gen_e_acsl_valid_8; + int __gen_e_acsl_size_14; + int __gen_e_acsl_if_14; + int __gen_e_acsl_valid_9; __gen_e_acsl_valid_read_3 = __e_acsl_valid_read((void *)(multi_dynamic + 4), sizeof(int *), (void *)multi_dynamic, (void *)(& multi_dynamic)); __e_acsl_assert(__gen_e_acsl_valid_read_3,"RTE","main", "mem_access: \\valid_read(multi_dynamic + 4)", - "tests/memory/ranges_in_builtins.c",63); - __gen_e_acsl_valid_8 = __e_acsl_valid((void *)((char *)*(multi_dynamic + 4) + - 4 * 1),(size_t)28, + "tests/memory/ranges_in_builtins.c",66); + __gen_e_acsl_size_14 = 4 * ((7 - 1) + 1); + if (__gen_e_acsl_size_14 <= 0) __gen_e_acsl_if_14 = 0; + else __gen_e_acsl_if_14 = __gen_e_acsl_size_14; + __gen_e_acsl_valid_9 = __e_acsl_valid((void *)((char *)*(multi_dynamic + 4) + + 4 * 1), + (size_t)__gen_e_acsl_if_14, (void *)*(multi_dynamic + 4), (void *)(multi_dynamic + 4)); - __e_acsl_assert(__gen_e_acsl_valid_8,"Assertion","main", + __e_acsl_assert(__gen_e_acsl_valid_9,"Assertion","main", "\\valid(*(multi_dynamic + 4) + (1 .. 7))", - "tests/memory/ranges_in_builtins.c",63); + "tests/memory/ranges_in_builtins.c",66); } /*@ assert \valid(*(multi_dynamic + 4) + (1 .. 7)); */ ; /*@ assert \valid(*(multi_dynamic + (2 .. 4)) + (1 .. 7)); */ ; @@ -304,6 +413,7 @@ int main(void) __e_acsl_delete_block((void *)(& c)); __e_acsl_delete_block((void *)(& multi_dynamic)); __e_acsl_delete_block((void *)(& s)); + __e_acsl_delete_block((void *)(t4)); __e_acsl_delete_block((void *)(t3)); __e_acsl_delete_block((void *)(t2)); __e_acsl_delete_block((void *)(t)); @@ -321,105 +431,93 @@ void __gen_e_acsl_g(long *ptr, size_t size) __e_acsl_mpz_t __gen_e_acsl_at_2; long *__gen_e_acsl_at; { - __e_acsl_mpz_t __gen_e_acsl_; - __e_acsl_mpz_t __gen_e_acsl_sizeof; __e_acsl_mpz_t __gen_e_acsl_size; - __e_acsl_mpz_t __gen_e_acsl__2; + __e_acsl_mpz_t __gen_e_acsl_sizeof; + __e_acsl_mpz_t __gen_e_acsl_size_2; + __e_acsl_mpz_t __gen_e_acsl_; __e_acsl_mpz_t __gen_e_acsl_sub; + __e_acsl_mpz_t __gen_e_acsl__2; __e_acsl_mpz_t __gen_e_acsl_sub_2; __e_acsl_mpz_t __gen_e_acsl_add; __e_acsl_mpz_t __gen_e_acsl_mul; int __gen_e_acsl_le; - int __gen_e_acsl_and; - unsigned long __gen_e_acsl_size_3; + __e_acsl_mpz_t __gen_e_acsl_if; + __e_acsl_mpz_t __gen_e_acsl__4; + int __gen_e_acsl_le_2; + __e_acsl_mpz_t __gen_e_acsl_size_3; + int __gen_e_acsl_le_3; + unsigned long __gen_e_acsl_size_4; int __gen_e_acsl_valid; __e_acsl_store_block((void *)(& ptr),(size_t)8); - __gmpz_init_set_si(__gen_e_acsl_,0L); __gmpz_init_set_si(__gen_e_acsl_sizeof,8L); - __gmpz_init_set_ui(__gen_e_acsl_size,size); - __gmpz_init_set_si(__gen_e_acsl__2,1L); + __gmpz_init_set_ui(__gen_e_acsl_size_2,size); + __gmpz_init_set_si(__gen_e_acsl_,1L); __gmpz_init(__gen_e_acsl_sub); __gmpz_sub(__gen_e_acsl_sub, - (__e_acsl_mpz_struct const *)(__gen_e_acsl_size), - (__e_acsl_mpz_struct const *)(__gen_e_acsl__2)); + (__e_acsl_mpz_struct const *)(__gen_e_acsl_size_2), + (__e_acsl_mpz_struct const *)(__gen_e_acsl_)); + __gmpz_init_set_si(__gen_e_acsl__2,0L); __gmpz_init(__gen_e_acsl_sub_2); __gmpz_sub(__gen_e_acsl_sub_2, (__e_acsl_mpz_struct const *)(__gen_e_acsl_sub), - (__e_acsl_mpz_struct const *)(__gen_e_acsl_)); + (__e_acsl_mpz_struct const *)(__gen_e_acsl__2)); __gmpz_init(__gen_e_acsl_add); __gmpz_add(__gen_e_acsl_add, (__e_acsl_mpz_struct const *)(__gen_e_acsl_sub_2), - (__e_acsl_mpz_struct const *)(__gen_e_acsl__2)); + (__e_acsl_mpz_struct const *)(__gen_e_acsl_)); __gmpz_init(__gen_e_acsl_mul); __gmpz_mul(__gen_e_acsl_mul, (__e_acsl_mpz_struct const *)(__gen_e_acsl_sizeof), (__e_acsl_mpz_struct const *)(__gen_e_acsl_add)); - __gen_e_acsl_le = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_), - (__e_acsl_mpz_struct const *)(__gen_e_acsl_mul)); + __gmpz_init_set(__gen_e_acsl_size, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_mul)); + __gen_e_acsl_le = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_size), + (__e_acsl_mpz_struct const *)(__gen_e_acsl__2)); if (__gen_e_acsl_le <= 0) { - __e_acsl_mpz_t __gen_e_acsl_sizeof_2; - __e_acsl_mpz_t __gen_e_acsl_size_2; __e_acsl_mpz_t __gen_e_acsl__3; - __e_acsl_mpz_t __gen_e_acsl_sub_3; - __e_acsl_mpz_t __gen_e_acsl__4; - __e_acsl_mpz_t __gen_e_acsl_sub_4; - __e_acsl_mpz_t __gen_e_acsl_add_2; - __e_acsl_mpz_t __gen_e_acsl_mul_2; - __e_acsl_mpz_t __gen_e_acsl__5; - int __gen_e_acsl_lt; - __gmpz_init_set_si(__gen_e_acsl_sizeof_2,8L); - __gmpz_init_set_ui(__gen_e_acsl_size_2,size); - __gmpz_init_set_si(__gen_e_acsl__3,1L); - __gmpz_init(__gen_e_acsl_sub_3); - __gmpz_sub(__gen_e_acsl_sub_3, - (__e_acsl_mpz_struct const *)(__gen_e_acsl_size_2), - (__e_acsl_mpz_struct const *)(__gen_e_acsl__3)); - __gmpz_init_set_si(__gen_e_acsl__4,0L); - __gmpz_init(__gen_e_acsl_sub_4); - __gmpz_sub(__gen_e_acsl_sub_4, - (__e_acsl_mpz_struct const *)(__gen_e_acsl_sub_3), - (__e_acsl_mpz_struct const *)(__gen_e_acsl__4)); - __gmpz_init(__gen_e_acsl_add_2); - __gmpz_add(__gen_e_acsl_add_2, - (__e_acsl_mpz_struct const *)(__gen_e_acsl_sub_4), - (__e_acsl_mpz_struct const *)(__gen_e_acsl__3)); - __gmpz_init(__gen_e_acsl_mul_2); - __gmpz_mul(__gen_e_acsl_mul_2, - (__e_acsl_mpz_struct const *)(__gen_e_acsl_sizeof_2), - (__e_acsl_mpz_struct const *)(__gen_e_acsl_add_2)); - __gmpz_init_set_ui(__gen_e_acsl__5,18446744073709551615UL); - __gen_e_acsl_lt = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_mul_2), - (__e_acsl_mpz_struct const *)(__gen_e_acsl__5)); - __gen_e_acsl_and = __gen_e_acsl_lt < 0; - __gmpz_clear(__gen_e_acsl_sizeof_2); - __gmpz_clear(__gen_e_acsl_size_2); + __gmpz_init_set_si(__gen_e_acsl__3,0L); + __gmpz_init_set(__gen_e_acsl_if, + (__e_acsl_mpz_struct const *)(__gen_e_acsl__3)); __gmpz_clear(__gen_e_acsl__3); - __gmpz_clear(__gen_e_acsl_sub_3); - __gmpz_clear(__gen_e_acsl__4); - __gmpz_clear(__gen_e_acsl_sub_4); - __gmpz_clear(__gen_e_acsl_add_2); - __gmpz_clear(__gen_e_acsl_mul_2); - __gmpz_clear(__gen_e_acsl__5); } - else __gen_e_acsl_and = 0; - __e_acsl_assert(__gen_e_acsl_and,"RTE","g", + else __gmpz_init_set(__gen_e_acsl_if, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_size)); + __gmpz_init_set_ui(__gen_e_acsl__4,18446744073709551615UL); + __gen_e_acsl_le_2 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_if), + (__e_acsl_mpz_struct const *)(__gen_e_acsl__4)); + __gmpz_init_set(__gen_e_acsl_size_3, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_mul)); + __gen_e_acsl_le_3 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_size_3), + (__e_acsl_mpz_struct const *)(__gen_e_acsl__2)); + __e_acsl_assert(__gen_e_acsl_le_2 <= 0,"RTE","g", "\\valid(ptr + (0 .. size - 1))", "tests/memory/ranges_in_builtins.c",7); - __gen_e_acsl_size_3 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_mul)); + __gen_e_acsl_size_4 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_if)); __gen_e_acsl_valid = __e_acsl_valid((void *)((char *)ptr + 8 * 0), - __gen_e_acsl_size_3,(void *)ptr, + __gen_e_acsl_size_4,(void *)ptr, (void *)(& ptr)); __e_acsl_assert(__gen_e_acsl_valid,"Precondition","g", "\\valid(ptr + (0 .. size - 1))", "tests/memory/ranges_in_builtins.c",7); - __gmpz_clear(__gen_e_acsl_); - __gmpz_clear(__gen_e_acsl_sizeof); __gmpz_clear(__gen_e_acsl_size); - __gmpz_clear(__gen_e_acsl__2); + __gmpz_clear(__gen_e_acsl_sizeof); + __gmpz_clear(__gen_e_acsl_size_2); + __gmpz_clear(__gen_e_acsl_); __gmpz_clear(__gen_e_acsl_sub); + __gmpz_clear(__gen_e_acsl__2); __gmpz_clear(__gen_e_acsl_sub_2); __gmpz_clear(__gen_e_acsl_add); __gmpz_clear(__gen_e_acsl_mul); + __gmpz_clear(__gen_e_acsl_if); + __gmpz_clear(__gen_e_acsl__4); + __gmpz_clear(__gen_e_acsl_size_3); + } + { + __e_acsl_mpz_t __gen_e_acsl_size_8; + __gmpz_init_set_ui(__gen_e_acsl_size_8,size); + __gmpz_init_set(__gen_e_acsl_at_2, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_size_8)); + __gmpz_clear(__gen_e_acsl_size_8); } { __e_acsl_mpz_t __gen_e_acsl_size_6; @@ -428,118 +526,88 @@ void __gen_e_acsl_g(long *ptr, size_t size) (__e_acsl_mpz_struct const *)(__gen_e_acsl_size_6)); __gmpz_clear(__gen_e_acsl_size_6); } - { - __e_acsl_mpz_t __gen_e_acsl_size_5; - __gmpz_init_set_ui(__gen_e_acsl_size_5,size); - __gmpz_init_set(__gen_e_acsl_at_2, - (__e_acsl_mpz_struct const *)(__gen_e_acsl_size_5)); - __gmpz_clear(__gen_e_acsl_size_5); - } - { - __e_acsl_mpz_t __gen_e_acsl_size_4; - __gmpz_init_set_ui(__gen_e_acsl_size_4,size); - __gmpz_init_set(__gen_e_acsl_at_2, - (__e_acsl_mpz_struct const *)(__gen_e_acsl_size_4)); - __gmpz_clear(__gen_e_acsl_size_4); - } __gen_e_acsl_at = ptr; g(ptr,size); { + __e_acsl_mpz_t __gen_e_acsl_size_5; + __e_acsl_mpz_t __gen_e_acsl_sizeof_2; __e_acsl_mpz_t __gen_e_acsl__6; - __e_acsl_mpz_t __gen_e_acsl_sizeof_3; + __e_acsl_mpz_t __gen_e_acsl_add_2; __e_acsl_mpz_t __gen_e_acsl__7; + __e_acsl_mpz_t __gen_e_acsl_sub_3; __e_acsl_mpz_t __gen_e_acsl_add_3; - __e_acsl_mpz_t __gen_e_acsl_sub_5; - __e_acsl_mpz_t __gen_e_acsl_add_4; - __e_acsl_mpz_t __gen_e_acsl_mul_3; - int __gen_e_acsl_le_2; - int __gen_e_acsl_and_2; - unsigned long __gen_e_acsl_size_7; + __e_acsl_mpz_t __gen_e_acsl_mul_2; + int __gen_e_acsl_le_4; + __e_acsl_mpz_t __gen_e_acsl_if_2; + __e_acsl_mpz_t __gen_e_acsl__9; + int __gen_e_acsl_le_5; + __e_acsl_mpz_t __gen_e_acsl_size_7; + int __gen_e_acsl_le_6; + unsigned long __gen_e_acsl_size_9; int __gen_e_acsl_valid_2; - __gmpz_init_set_si(__gen_e_acsl__6,0L); - __gmpz_init_set_si(__gen_e_acsl_sizeof_3,8L); - __gmpz_init_set_si(__gen_e_acsl__7,1L); - __gmpz_init(__gen_e_acsl_add_3); - __gmpz_add(__gen_e_acsl_add_3, + __gmpz_init_set_si(__gen_e_acsl_sizeof_2,8L); + __gmpz_init_set_si(__gen_e_acsl__6,1L); + __gmpz_init(__gen_e_acsl_add_2); + __gmpz_add(__gen_e_acsl_add_2, (__e_acsl_mpz_struct const *)(__gen_e_acsl_at_2), - (__e_acsl_mpz_struct const *)(__gen_e_acsl__7)); - __gmpz_init(__gen_e_acsl_sub_5); - __gmpz_sub(__gen_e_acsl_sub_5, - (__e_acsl_mpz_struct const *)(__gen_e_acsl_add_3), (__e_acsl_mpz_struct const *)(__gen_e_acsl__6)); - __gmpz_init(__gen_e_acsl_add_4); - __gmpz_add(__gen_e_acsl_add_4, - (__e_acsl_mpz_struct const *)(__gen_e_acsl_sub_5), + __gmpz_init_set_si(__gen_e_acsl__7,0L); + __gmpz_init(__gen_e_acsl_sub_3); + __gmpz_sub(__gen_e_acsl_sub_3, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_add_2), (__e_acsl_mpz_struct const *)(__gen_e_acsl__7)); - __gmpz_init(__gen_e_acsl_mul_3); - __gmpz_mul(__gen_e_acsl_mul_3, - (__e_acsl_mpz_struct const *)(__gen_e_acsl_sizeof_3), - (__e_acsl_mpz_struct const *)(__gen_e_acsl_add_4)); - __gen_e_acsl_le_2 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl__6), - (__e_acsl_mpz_struct const *)(__gen_e_acsl_mul_3)); - if (__gen_e_acsl_le_2 <= 0) { - __e_acsl_mpz_t __gen_e_acsl_sizeof_4; + __gmpz_init(__gen_e_acsl_add_3); + __gmpz_add(__gen_e_acsl_add_3, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_sub_3), + (__e_acsl_mpz_struct const *)(__gen_e_acsl__6)); + __gmpz_init(__gen_e_acsl_mul_2); + __gmpz_mul(__gen_e_acsl_mul_2, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_sizeof_2), + (__e_acsl_mpz_struct const *)(__gen_e_acsl_add_3)); + __gmpz_init_set(__gen_e_acsl_size_5, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_mul_2)); + __gen_e_acsl_le_4 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_size_5), + (__e_acsl_mpz_struct const *)(__gen_e_acsl__7)); + if (__gen_e_acsl_le_4 <= 0) { __e_acsl_mpz_t __gen_e_acsl__8; - __e_acsl_mpz_t __gen_e_acsl_add_5; - __e_acsl_mpz_t __gen_e_acsl__9; - __e_acsl_mpz_t __gen_e_acsl_sub_6; - __e_acsl_mpz_t __gen_e_acsl_add_6; - __e_acsl_mpz_t __gen_e_acsl_mul_4; - __e_acsl_mpz_t __gen_e_acsl__10; - int __gen_e_acsl_lt_2; - __gmpz_init_set_si(__gen_e_acsl_sizeof_4,8L); - __gmpz_init_set_si(__gen_e_acsl__8,1L); - __gmpz_init(__gen_e_acsl_add_5); - __gmpz_add(__gen_e_acsl_add_5, - (__e_acsl_mpz_struct const *)(__gen_e_acsl_at_2), - (__e_acsl_mpz_struct const *)(__gen_e_acsl__8)); - __gmpz_init_set_si(__gen_e_acsl__9,0L); - __gmpz_init(__gen_e_acsl_sub_6); - __gmpz_sub(__gen_e_acsl_sub_6, - (__e_acsl_mpz_struct const *)(__gen_e_acsl_add_5), - (__e_acsl_mpz_struct const *)(__gen_e_acsl__9)); - __gmpz_init(__gen_e_acsl_add_6); - __gmpz_add(__gen_e_acsl_add_6, - (__e_acsl_mpz_struct const *)(__gen_e_acsl_sub_6), - (__e_acsl_mpz_struct const *)(__gen_e_acsl__8)); - __gmpz_init(__gen_e_acsl_mul_4); - __gmpz_mul(__gen_e_acsl_mul_4, - (__e_acsl_mpz_struct const *)(__gen_e_acsl_sizeof_4), - (__e_acsl_mpz_struct const *)(__gen_e_acsl_add_6)); - __gmpz_init_set_ui(__gen_e_acsl__10,18446744073709551615UL); - __gen_e_acsl_lt_2 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_mul_4), - (__e_acsl_mpz_struct const *)(__gen_e_acsl__10)); - __gen_e_acsl_and_2 = __gen_e_acsl_lt_2 < 0; - __gmpz_clear(__gen_e_acsl_sizeof_4); + __gmpz_init_set_si(__gen_e_acsl__8,0L); + __gmpz_init_set(__gen_e_acsl_if_2, + (__e_acsl_mpz_struct const *)(__gen_e_acsl__8)); __gmpz_clear(__gen_e_acsl__8); - __gmpz_clear(__gen_e_acsl_add_5); - __gmpz_clear(__gen_e_acsl__9); - __gmpz_clear(__gen_e_acsl_sub_6); - __gmpz_clear(__gen_e_acsl_add_6); - __gmpz_clear(__gen_e_acsl_mul_4); - __gmpz_clear(__gen_e_acsl__10); } - else __gen_e_acsl_and_2 = 0; - __e_acsl_assert(__gen_e_acsl_and_2,"RTE","g", + else __gmpz_init_set(__gen_e_acsl_if_2, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_size_5)); + __gmpz_init_set_ui(__gen_e_acsl__9,18446744073709551615UL); + __gen_e_acsl_le_5 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_if_2), + (__e_acsl_mpz_struct const *)(__gen_e_acsl__9)); + __gmpz_init_set(__gen_e_acsl_size_7, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_mul_2)); + __gen_e_acsl_le_6 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_size_7), + (__e_acsl_mpz_struct const *)(__gen_e_acsl__7)); + __e_acsl_assert(__gen_e_acsl_le_5 <= 0,"RTE","g", "\\valid(\\old(ptr) + (0 .. \\old(size) + 1))", "tests/memory/ranges_in_builtins.c",8); - __gen_e_acsl_size_7 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_mul_3)); + __gen_e_acsl_size_9 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_if_2)); __gen_e_acsl_valid_2 = __e_acsl_valid((void *)((char *)__gen_e_acsl_at + 8 * 0), - __gen_e_acsl_size_7, + __gen_e_acsl_size_9, (void *)__gen_e_acsl_at, (void *)(& __gen_e_acsl_at)); __e_acsl_assert(! __gen_e_acsl_valid_2,"Postcondition","g", "!\\valid(\\old(ptr) + (0 .. \\old(size) + 1))", "tests/memory/ranges_in_builtins.c",8); __e_acsl_delete_block((void *)(& ptr)); + __gmpz_clear(__gen_e_acsl_size_5); + __gmpz_clear(__gen_e_acsl_sizeof_2); __gmpz_clear(__gen_e_acsl__6); - __gmpz_clear(__gen_e_acsl_sizeof_3); + __gmpz_clear(__gen_e_acsl_add_2); __gmpz_clear(__gen_e_acsl__7); + __gmpz_clear(__gen_e_acsl_sub_3); __gmpz_clear(__gen_e_acsl_add_3); - __gmpz_clear(__gen_e_acsl_sub_5); - __gmpz_clear(__gen_e_acsl_add_4); - __gmpz_clear(__gen_e_acsl_mul_3); + __gmpz_clear(__gen_e_acsl_mul_2); + __gmpz_clear(__gen_e_acsl_if_2); + __gmpz_clear(__gen_e_acsl__9); + __gmpz_clear(__gen_e_acsl_size_7); __gmpz_clear(__gen_e_acsl_at_2); return; } @@ -549,114 +617,92 @@ void __gen_e_acsl_g(long *ptr, size_t size) void __gen_e_acsl_f(char *s, long n) { { - __e_acsl_mpz_t __gen_e_acsl_; + __e_acsl_mpz_t __gen_e_acsl_size; __e_acsl_mpz_t __gen_e_acsl_sizeof; __e_acsl_mpz_t __gen_e_acsl_n; - __e_acsl_mpz_t __gen_e_acsl__2; + __e_acsl_mpz_t __gen_e_acsl_; __e_acsl_mpz_t __gen_e_acsl_add; - __e_acsl_mpz_t __gen_e_acsl__3; + __e_acsl_mpz_t __gen_e_acsl__2; __e_acsl_mpz_t __gen_e_acsl_sub; - __e_acsl_mpz_t __gen_e_acsl__4; + __e_acsl_mpz_t __gen_e_acsl__3; __e_acsl_mpz_t __gen_e_acsl_add_2; __e_acsl_mpz_t __gen_e_acsl_mul; + __e_acsl_mpz_t __gen_e_acsl__4; int __gen_e_acsl_le; - int __gen_e_acsl_and; - unsigned long __gen_e_acsl_size; + __e_acsl_mpz_t __gen_e_acsl_if; + __e_acsl_mpz_t __gen_e_acsl__6; + int __gen_e_acsl_le_2; + __e_acsl_mpz_t __gen_e_acsl_size_2; + int __gen_e_acsl_le_3; + unsigned long __gen_e_acsl_size_3; int __gen_e_acsl_valid; __e_acsl_store_block((void *)(& s),(size_t)8); - __gmpz_init_set_si(__gen_e_acsl_,0L); __gmpz_init_set_si(__gen_e_acsl_sizeof,1L); __gmpz_init_set_si(__gen_e_acsl_n,n); - __gmpz_init_set_si(__gen_e_acsl__2,1000L); + __gmpz_init_set_si(__gen_e_acsl_,1000L); __gmpz_init(__gen_e_acsl_add); __gmpz_add(__gen_e_acsl_add, (__e_acsl_mpz_struct const *)(__gen_e_acsl_n), - (__e_acsl_mpz_struct const *)(__gen_e_acsl__2)); - __gmpz_init_set_si(__gen_e_acsl__3,3L); + (__e_acsl_mpz_struct const *)(__gen_e_acsl_)); + __gmpz_init_set_si(__gen_e_acsl__2,3L); __gmpz_init(__gen_e_acsl_sub); __gmpz_sub(__gen_e_acsl_sub, (__e_acsl_mpz_struct const *)(__gen_e_acsl_add), - (__e_acsl_mpz_struct const *)(__gen_e_acsl__3)); - __gmpz_init_set_si(__gen_e_acsl__4,1L); + (__e_acsl_mpz_struct const *)(__gen_e_acsl__2)); + __gmpz_init_set_si(__gen_e_acsl__3,1L); __gmpz_init(__gen_e_acsl_add_2); __gmpz_add(__gen_e_acsl_add_2, (__e_acsl_mpz_struct const *)(__gen_e_acsl_sub), - (__e_acsl_mpz_struct const *)(__gen_e_acsl__4)); + (__e_acsl_mpz_struct const *)(__gen_e_acsl__3)); __gmpz_init(__gen_e_acsl_mul); __gmpz_mul(__gen_e_acsl_mul, (__e_acsl_mpz_struct const *)(__gen_e_acsl_sizeof), (__e_acsl_mpz_struct const *)(__gen_e_acsl_add_2)); - __gen_e_acsl_le = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_), - (__e_acsl_mpz_struct const *)(__gen_e_acsl_mul)); + __gmpz_init_set(__gen_e_acsl_size, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_mul)); + __gmpz_init_set_si(__gen_e_acsl__4,0L); + __gen_e_acsl_le = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_size), + (__e_acsl_mpz_struct const *)(__gen_e_acsl__4)); if (__gen_e_acsl_le <= 0) { - __e_acsl_mpz_t __gen_e_acsl_sizeof_2; - __e_acsl_mpz_t __gen_e_acsl_n_2; __e_acsl_mpz_t __gen_e_acsl__5; - __e_acsl_mpz_t __gen_e_acsl_add_3; - __e_acsl_mpz_t __gen_e_acsl__6; - __e_acsl_mpz_t __gen_e_acsl_sub_2; - __e_acsl_mpz_t __gen_e_acsl__7; - __e_acsl_mpz_t __gen_e_acsl_add_4; - __e_acsl_mpz_t __gen_e_acsl_mul_2; - __e_acsl_mpz_t __gen_e_acsl__8; - int __gen_e_acsl_lt; - __gmpz_init_set_si(__gen_e_acsl_sizeof_2,1L); - __gmpz_init_set_si(__gen_e_acsl_n_2,n); - __gmpz_init_set_si(__gen_e_acsl__5,1000L); - __gmpz_init(__gen_e_acsl_add_3); - __gmpz_add(__gen_e_acsl_add_3, - (__e_acsl_mpz_struct const *)(__gen_e_acsl_n_2), - (__e_acsl_mpz_struct const *)(__gen_e_acsl__5)); - __gmpz_init_set_si(__gen_e_acsl__6,3L); - __gmpz_init(__gen_e_acsl_sub_2); - __gmpz_sub(__gen_e_acsl_sub_2, - (__e_acsl_mpz_struct const *)(__gen_e_acsl_add_3), - (__e_acsl_mpz_struct const *)(__gen_e_acsl__6)); - __gmpz_init_set_si(__gen_e_acsl__7,1L); - __gmpz_init(__gen_e_acsl_add_4); - __gmpz_add(__gen_e_acsl_add_4, - (__e_acsl_mpz_struct const *)(__gen_e_acsl_sub_2), - (__e_acsl_mpz_struct const *)(__gen_e_acsl__7)); - __gmpz_init(__gen_e_acsl_mul_2); - __gmpz_mul(__gen_e_acsl_mul_2, - (__e_acsl_mpz_struct const *)(__gen_e_acsl_sizeof_2), - (__e_acsl_mpz_struct const *)(__gen_e_acsl_add_4)); - __gmpz_init_set_ui(__gen_e_acsl__8,18446744073709551615UL); - __gen_e_acsl_lt = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_mul_2), - (__e_acsl_mpz_struct const *)(__gen_e_acsl__8)); - __gen_e_acsl_and = __gen_e_acsl_lt < 0; - __gmpz_clear(__gen_e_acsl_sizeof_2); - __gmpz_clear(__gen_e_acsl_n_2); + __gmpz_init_set_si(__gen_e_acsl__5,0L); + __gmpz_init_set(__gen_e_acsl_if, + (__e_acsl_mpz_struct const *)(__gen_e_acsl__5)); __gmpz_clear(__gen_e_acsl__5); - __gmpz_clear(__gen_e_acsl_add_3); - __gmpz_clear(__gen_e_acsl__6); - __gmpz_clear(__gen_e_acsl_sub_2); - __gmpz_clear(__gen_e_acsl__7); - __gmpz_clear(__gen_e_acsl_add_4); - __gmpz_clear(__gen_e_acsl_mul_2); - __gmpz_clear(__gen_e_acsl__8); } - else __gen_e_acsl_and = 0; - __e_acsl_assert(__gen_e_acsl_and,"RTE","f", + else __gmpz_init_set(__gen_e_acsl_if, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_size)); + __gmpz_init_set_ui(__gen_e_acsl__6,18446744073709551615UL); + __gen_e_acsl_le_2 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_if), + (__e_acsl_mpz_struct const *)(__gen_e_acsl__6)); + __gmpz_init_set(__gen_e_acsl_size_2, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_mul)); + __gen_e_acsl_le_3 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_size_2), + (__e_acsl_mpz_struct const *)(__gen_e_acsl__4)); + __e_acsl_assert(__gen_e_acsl_le_2 <= 0,"RTE","f", "\\valid(s + (3 .. n + 1000))", "tests/memory/ranges_in_builtins.c",5); - __gen_e_acsl_size = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_mul)); + __gen_e_acsl_size_3 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_if)); __gen_e_acsl_valid = __e_acsl_valid((void *)(s + 1 * 3), - __gen_e_acsl_size,(void *)s, + __gen_e_acsl_size_3,(void *)s, (void *)(& s)); __e_acsl_assert(! __gen_e_acsl_valid,"Precondition","f", "!\\valid(s + (3 .. n + 1000))", "tests/memory/ranges_in_builtins.c",5); - __gmpz_clear(__gen_e_acsl_); + __gmpz_clear(__gen_e_acsl_size); __gmpz_clear(__gen_e_acsl_sizeof); __gmpz_clear(__gen_e_acsl_n); - __gmpz_clear(__gen_e_acsl__2); + __gmpz_clear(__gen_e_acsl_); __gmpz_clear(__gen_e_acsl_add); - __gmpz_clear(__gen_e_acsl__3); + __gmpz_clear(__gen_e_acsl__2); __gmpz_clear(__gen_e_acsl_sub); - __gmpz_clear(__gen_e_acsl__4); + __gmpz_clear(__gen_e_acsl__3); __gmpz_clear(__gen_e_acsl_add_2); __gmpz_clear(__gen_e_acsl_mul); + __gmpz_clear(__gen_e_acsl__4); + __gmpz_clear(__gen_e_acsl_if); + __gmpz_clear(__gen_e_acsl__6); + __gmpz_clear(__gen_e_acsl_size_2); } f(s,n); __e_acsl_delete_block((void *)(& s)); diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_separated.c b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_separated.c index 6a5a747d509ac2596667b6f684ccf9e640a62b0f..10644067af706030bda70f5b9223838e183558e8 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_separated.c +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_separated.c @@ -1,4 +1,5 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" #include "stdlib.h" int main(void) @@ -49,9 +50,8 @@ int main(void) __e_acsl_assert(__gen_e_acsl_valid_read_3,"RTE","main", "separated_guard: \\valid_read(&c)", "tests/memory/separated.c",14); - __gen_e_acsl_separated = __e_acsl_separated((size_t)3,(void *)(& c), - sizeof(int),(void *)(& b), - sizeof(int),(void *)(& a), + __gen_e_acsl_separated = __e_acsl_separated((size_t)3,& a,sizeof(int), + & b,sizeof(int),& c, sizeof(int)); __e_acsl_assert(__gen_e_acsl_separated,"Assertion","main", "\\separated(&a, &b, &c)","tests/memory/separated.c", @@ -104,13 +104,10 @@ int main(void) __e_acsl_assert(__gen_e_acsl_and,"RTE","main", "separated_guard: \\valid_read(d)", "tests/memory/separated.c",15); - __gen_e_acsl_separated_2 = __e_acsl_separated((size_t)4,(void *)d, - sizeof(int), - (void *)(& c), - sizeof(int), - (void *)(& b), - sizeof(int), - (void *)(& a), + __gen_e_acsl_separated_2 = __e_acsl_separated((size_t)4,& a, + sizeof(int),& b, + sizeof(int),& c, + sizeof(int),d, sizeof(int)); __e_acsl_assert(! __gen_e_acsl_separated_2,"Assertion","main", "!\\separated(&a, &b, &c, d)", @@ -127,96 +124,156 @@ int main(void) __e_acsl_store_block((void *)(array),(size_t)160); __e_acsl_full_init((void *)(& array)); { + int __gen_e_acsl_size; + int __gen_e_acsl_if; int __gen_e_acsl_valid_read_8; + int __gen_e_acsl_size_2; + int __gen_e_acsl_if_2; int __gen_e_acsl_valid_read_9; + int __gen_e_acsl_size_3; + int __gen_e_acsl_if_3; + int __gen_e_acsl_size_4; + int __gen_e_acsl_if_4; int __gen_e_acsl_separated_3; + __gen_e_acsl_size = 8 * ((9 - 0) + 1); + if (__gen_e_acsl_size <= 0) __gen_e_acsl_if = 0; + else __gen_e_acsl_if = __gen_e_acsl_size; __gen_e_acsl_valid_read_8 = __e_acsl_valid_read((void *)((char *)(& array) + 8 * 0), - (size_t)80, + (size_t)__gen_e_acsl_if, (void *)(& array), (void *)0); /*@ assert E_ACSL: separated_guard: \valid_read(&array[0 .. 9]); */ __e_acsl_assert(__gen_e_acsl_valid_read_8,"RTE","main", "separated_guard: \\valid_read(&array[0 .. 9])", "tests/memory/separated.c",21); + __gen_e_acsl_size_2 = 8 * ((19 - 10) + 1); + if (__gen_e_acsl_size_2 <= 0) __gen_e_acsl_if_2 = 0; + else __gen_e_acsl_if_2 = __gen_e_acsl_size_2; __gen_e_acsl_valid_read_9 = __e_acsl_valid_read((void *)((char *)(& array) + 8 * 10), - (size_t)80, + (size_t)__gen_e_acsl_if_2, (void *)(& array), (void *)0); /*@ assert E_ACSL: separated_guard: \valid_read(&array[10 .. 19]); */ __e_acsl_assert(__gen_e_acsl_valid_read_9,"RTE","main", "separated_guard: \\valid_read(&array[10 .. 19])", "tests/memory/separated.c",21); + __gen_e_acsl_size_3 = 8 * ((9 - 0) + 1); + if (__gen_e_acsl_size_3 <= 0) __gen_e_acsl_if_3 = 0; + else __gen_e_acsl_if_3 = __gen_e_acsl_size_3; + __gen_e_acsl_size_4 = 8 * ((19 - 10) + 1); + if (__gen_e_acsl_size_4 <= 0) __gen_e_acsl_if_4 = 0; + else __gen_e_acsl_if_4 = __gen_e_acsl_size_4; __gen_e_acsl_separated_3 = __e_acsl_separated((size_t)2, - (void *)((char *)(& array) + - 8 * 10),80, - (void *)((char *)(& array) + - 8 * 0),80); + (char *)(& array) + 8 * 0, + __gen_e_acsl_if_3, + (char *)(& array) + + 8 * 10,__gen_e_acsl_if_4); __e_acsl_assert(__gen_e_acsl_separated_3,"Assertion","main", "\\separated(&array[0 .. 9], &array[10 .. 19])", "tests/memory/separated.c",21); } /*@ assert \separated(&array[0 .. 9], &array[10 .. 19]); */ ; { + int __gen_e_acsl_size_5; + int __gen_e_acsl_if_5; int __gen_e_acsl_valid_read_10; + int __gen_e_acsl_size_6; + int __gen_e_acsl_if_6; int __gen_e_acsl_valid_read_11; + int __gen_e_acsl_size_7; + int __gen_e_acsl_if_7; + int __gen_e_acsl_size_8; + int __gen_e_acsl_if_8; int __gen_e_acsl_separated_4; + __gen_e_acsl_size_5 = 8 * ((10 - 0) + 1); + if (__gen_e_acsl_size_5 <= 0) __gen_e_acsl_if_5 = 0; + else __gen_e_acsl_if_5 = __gen_e_acsl_size_5; __gen_e_acsl_valid_read_10 = __e_acsl_valid_read((void *)((char *)(& array) + 8 * 0), - (size_t)88, + (size_t)__gen_e_acsl_if_5, (void *)(& array), (void *)0); /*@ assert E_ACSL: separated_guard: \valid_read(&array[0 .. 10]); */ __e_acsl_assert(__gen_e_acsl_valid_read_10,"RTE","main", "separated_guard: \\valid_read(&array[0 .. 10])", "tests/memory/separated.c",22); + __gen_e_acsl_size_6 = 8 * ((15 - 5) + 1); + if (__gen_e_acsl_size_6 <= 0) __gen_e_acsl_if_6 = 0; + else __gen_e_acsl_if_6 = __gen_e_acsl_size_6; __gen_e_acsl_valid_read_11 = __e_acsl_valid_read((void *)((char *)(& array) + 8 * 5), - (size_t)88, + (size_t)__gen_e_acsl_if_6, (void *)(& array), (void *)0); /*@ assert E_ACSL: separated_guard: \valid_read(&array[5 .. 15]); */ __e_acsl_assert(__gen_e_acsl_valid_read_11,"RTE","main", "separated_guard: \\valid_read(&array[5 .. 15])", "tests/memory/separated.c",22); + __gen_e_acsl_size_7 = 8 * ((10 - 0) + 1); + if (__gen_e_acsl_size_7 <= 0) __gen_e_acsl_if_7 = 0; + else __gen_e_acsl_if_7 = __gen_e_acsl_size_7; + __gen_e_acsl_size_8 = 8 * ((15 - 5) + 1); + if (__gen_e_acsl_size_8 <= 0) __gen_e_acsl_if_8 = 0; + else __gen_e_acsl_if_8 = __gen_e_acsl_size_8; __gen_e_acsl_separated_4 = __e_acsl_separated((size_t)2, - (void *)((char *)(& array) + - 8 * 5),88, - (void *)((char *)(& array) + - 8 * 0),88); + (char *)(& array) + 8 * 0, + __gen_e_acsl_if_7, + (char *)(& array) + 8 * 5, + __gen_e_acsl_if_8); __e_acsl_assert(! __gen_e_acsl_separated_4,"Assertion","main", "!\\separated(&array[0 .. 10], &array[5 .. 15])", "tests/memory/separated.c",22); } /*@ assert ¬\separated(&array[0 .. 10], &array[5 .. 15]); */ ; { + int __gen_e_acsl_size_9; + int __gen_e_acsl_if_9; int __gen_e_acsl_valid_read_12; + int __gen_e_acsl_size_10; + int __gen_e_acsl_if_10; int __gen_e_acsl_valid_read_13; + int __gen_e_acsl_size_11; + int __gen_e_acsl_if_11; + int __gen_e_acsl_size_12; + int __gen_e_acsl_if_12; int __gen_e_acsl_separated_5; + __gen_e_acsl_size_9 = 8 * ((19 - 0) + 1); + if (__gen_e_acsl_size_9 <= 0) __gen_e_acsl_if_9 = 0; + else __gen_e_acsl_if_9 = __gen_e_acsl_size_9; __gen_e_acsl_valid_read_12 = __e_acsl_valid_read((void *)((char *)(& array) + 8 * 0), - (size_t)160, + (size_t)__gen_e_acsl_if_9, (void *)(& array), (void *)0); /*@ assert E_ACSL: separated_guard: \valid_read(&array[0 .. 19]); */ __e_acsl_assert(__gen_e_acsl_valid_read_12,"RTE","main", "separated_guard: \\valid_read(&array[0 .. 19])", "tests/memory/separated.c",23); + __gen_e_acsl_size_10 = 8 * ((15 - 5) + 1); + if (__gen_e_acsl_size_10 <= 0) __gen_e_acsl_if_10 = 0; + else __gen_e_acsl_if_10 = __gen_e_acsl_size_10; __gen_e_acsl_valid_read_13 = __e_acsl_valid_read((void *)((char *)(& array) + 8 * 5), - (size_t)88, + (size_t)__gen_e_acsl_if_10, (void *)(& array), (void *)0); /*@ assert E_ACSL: separated_guard: \valid_read(&array[5 .. 15]); */ __e_acsl_assert(__gen_e_acsl_valid_read_13,"RTE","main", "separated_guard: \\valid_read(&array[5 .. 15])", "tests/memory/separated.c",23); + __gen_e_acsl_size_11 = 8 * ((19 - 0) + 1); + if (__gen_e_acsl_size_11 <= 0) __gen_e_acsl_if_11 = 0; + else __gen_e_acsl_if_11 = __gen_e_acsl_size_11; + __gen_e_acsl_size_12 = 8 * ((15 - 5) + 1); + if (__gen_e_acsl_size_12 <= 0) __gen_e_acsl_if_12 = 0; + else __gen_e_acsl_if_12 = __gen_e_acsl_size_12; __gen_e_acsl_separated_5 = __e_acsl_separated((size_t)2, - (void *)((char *)(& array) + - 8 * 5),88, - (void *)((char *)(& array) + - 8 * 0),160); + (char *)(& array) + 8 * 0, + __gen_e_acsl_if_11, + (char *)(& array) + 8 * 5, + __gen_e_acsl_if_12); __e_acsl_assert(! __gen_e_acsl_separated_5,"Assertion","main", "!\\separated(&array[0 .. 19], &array[5 .. 15])", "tests/memory/separated.c",23); @@ -242,10 +299,9 @@ int main(void) __e_acsl_assert(__gen_e_acsl_valid_read_15,"RTE","main", "separated_guard: \\valid_read(&array[1])", "tests/memory/separated.c",24); - __gen_e_acsl_separated_6 = __e_acsl_separated((size_t)2, - (void *)(& array[1]), + __gen_e_acsl_separated_6 = __e_acsl_separated((size_t)2,array, sizeof(double), - (void *)(array), + & array[1], sizeof(double)); __e_acsl_assert(__gen_e_acsl_separated_6,"Assertion","main", "\\separated((double *)array, &array[1])", @@ -253,37 +309,162 @@ int main(void) } /*@ assert \separated((double *)array, &array[1]); */ ; { + int __gen_e_acsl_size_13; + int __gen_e_acsl_if_13; int __gen_e_acsl_valid_read_16; + int __gen_e_acsl_size_14; + int __gen_e_acsl_if_14; int __gen_e_acsl_valid_read_17; + int __gen_e_acsl_size_15; + int __gen_e_acsl_if_15; + int __gen_e_acsl_size_16; + int __gen_e_acsl_if_16; int __gen_e_acsl_separated_7; + __gen_e_acsl_size_13 = 8 * ((1 - 0) + 1); + if (__gen_e_acsl_size_13 <= 0) __gen_e_acsl_if_13 = 0; + else __gen_e_acsl_if_13 = __gen_e_acsl_size_13; __gen_e_acsl_valid_read_16 = __e_acsl_valid_read((void *)((char *)(& array) + 8 * 0), - (size_t)16, + (size_t)__gen_e_acsl_if_13, (void *)(& array), (void *)0); /*@ assert E_ACSL: separated_guard: \valid_read(&array[0 .. 1]); */ __e_acsl_assert(__gen_e_acsl_valid_read_16,"RTE","main", "separated_guard: \\valid_read(&array[0 .. 1])", "tests/memory/separated.c",25); + __gen_e_acsl_size_14 = 8 * ((2 - 1) + 1); + if (__gen_e_acsl_size_14 <= 0) __gen_e_acsl_if_14 = 0; + else __gen_e_acsl_if_14 = __gen_e_acsl_size_14; __gen_e_acsl_valid_read_17 = __e_acsl_valid_read((void *)((char *)(& array) + 8 * 1), - (size_t)16, + (size_t)__gen_e_acsl_if_14, (void *)(& array), (void *)0); /*@ assert E_ACSL: separated_guard: \valid_read(&array[1 .. 2]); */ __e_acsl_assert(__gen_e_acsl_valid_read_17,"RTE","main", "separated_guard: \\valid_read(&array[1 .. 2])", "tests/memory/separated.c",25); + __gen_e_acsl_size_15 = 8 * ((1 - 0) + 1); + if (__gen_e_acsl_size_15 <= 0) __gen_e_acsl_if_15 = 0; + else __gen_e_acsl_if_15 = __gen_e_acsl_size_15; + __gen_e_acsl_size_16 = 8 * ((2 - 1) + 1); + if (__gen_e_acsl_size_16 <= 0) __gen_e_acsl_if_16 = 0; + else __gen_e_acsl_if_16 = __gen_e_acsl_size_16; __gen_e_acsl_separated_7 = __e_acsl_separated((size_t)2, - (void *)((char *)(& array) + - 8 * 1),16, - (void *)((char *)(& array) + - 8 * 0),16); + (char *)(& array) + 8 * 0, + __gen_e_acsl_if_15, + (char *)(& array) + 8 * 1, + __gen_e_acsl_if_16); __e_acsl_assert(! __gen_e_acsl_separated_7,"Assertion","main", "!\\separated(&array[0 .. 1], &array[1 .. 2])", "tests/memory/separated.c",25); } /*@ assert ¬\separated(&array[0 .. 1], &array[1 .. 2]); */ ; + { + int __gen_e_acsl_size_17; + int __gen_e_acsl_if_17; + int __gen_e_acsl_valid_read_18; + int __gen_e_acsl_size_18; + int __gen_e_acsl_if_18; + int __gen_e_acsl_valid_read_19; + int __gen_e_acsl_size_19; + int __gen_e_acsl_if_19; + int __gen_e_acsl_size_20; + int __gen_e_acsl_if_20; + int __gen_e_acsl_separated_8; + __gen_e_acsl_size_17 = 8 * ((5 - 15) + 1); + if (__gen_e_acsl_size_17 <= 0) __gen_e_acsl_if_17 = 0; + else __gen_e_acsl_if_17 = __gen_e_acsl_size_17; + __gen_e_acsl_valid_read_18 = __e_acsl_valid_read((void *)((char *)(& array) + + 8 * 15), + (size_t)__gen_e_acsl_if_17, + (void *)(& array), + (void *)0); + /*@ assert E_ACSL: separated_guard: \valid_read(&array[15 .. 5]); */ + __e_acsl_assert(__gen_e_acsl_valid_read_18,"RTE","main", + "separated_guard: \\valid_read(&array[15 .. 5])", + "tests/memory/separated.c",26); + __gen_e_acsl_size_18 = 8 * ((19 - 0) + 1); + if (__gen_e_acsl_size_18 <= 0) __gen_e_acsl_if_18 = 0; + else __gen_e_acsl_if_18 = __gen_e_acsl_size_18; + __gen_e_acsl_valid_read_19 = __e_acsl_valid_read((void *)((char *)(& array) + + 8 * 0), + (size_t)__gen_e_acsl_if_18, + (void *)(& array), + (void *)0); + /*@ assert E_ACSL: separated_guard: \valid_read(&array[0 .. 19]); */ + __e_acsl_assert(__gen_e_acsl_valid_read_19,"RTE","main", + "separated_guard: \\valid_read(&array[0 .. 19])", + "tests/memory/separated.c",26); + __gen_e_acsl_size_19 = 8 * ((5 - 15) + 1); + if (__gen_e_acsl_size_19 <= 0) __gen_e_acsl_if_19 = 0; + else __gen_e_acsl_if_19 = __gen_e_acsl_size_19; + __gen_e_acsl_size_20 = 8 * ((19 - 0) + 1); + if (__gen_e_acsl_size_20 <= 0) __gen_e_acsl_if_20 = 0; + else __gen_e_acsl_if_20 = __gen_e_acsl_size_20; + __gen_e_acsl_separated_8 = __e_acsl_separated((size_t)2, + (char *)(& array) + + 8 * 15, + __gen_e_acsl_if_19, + (char *)(& array) + 8 * 0, + __gen_e_acsl_if_20); + __e_acsl_assert(__gen_e_acsl_separated_8,"Assertion","main", + "\\separated(&array[15 .. 5], &array[0 .. 19])", + "tests/memory/separated.c",26); + } + /*@ assert \separated(&array[15 .. 5], &array[0 .. 19]); */ ; + { + int __gen_e_acsl_size_21; + int __gen_e_acsl_if_21; + int __gen_e_acsl_valid_read_20; + int __gen_e_acsl_size_22; + int __gen_e_acsl_if_22; + int __gen_e_acsl_valid_read_21; + int __gen_e_acsl_size_23; + int __gen_e_acsl_if_23; + int __gen_e_acsl_size_24; + int __gen_e_acsl_if_24; + int __gen_e_acsl_separated_9; + __gen_e_acsl_size_21 = 8 * ((-3 - 0) + 1); + if (__gen_e_acsl_size_21 <= 0) __gen_e_acsl_if_21 = 0; + else __gen_e_acsl_if_21 = __gen_e_acsl_size_21; + __gen_e_acsl_valid_read_20 = __e_acsl_valid_read((void *)((char *)(& array) + + 8 * 0), + (size_t)__gen_e_acsl_if_21, + (void *)(& array), + (void *)0); + /*@ assert E_ACSL: separated_guard: \valid_read(&array[0 .. -3]); */ + __e_acsl_assert(__gen_e_acsl_valid_read_20,"RTE","main", + "separated_guard: \\valid_read(&array[0 .. -3])", + "tests/memory/separated.c",27); + __gen_e_acsl_size_22 = 8 * ((19 - 0) + 1); + if (__gen_e_acsl_size_22 <= 0) __gen_e_acsl_if_22 = 0; + else __gen_e_acsl_if_22 = __gen_e_acsl_size_22; + __gen_e_acsl_valid_read_21 = __e_acsl_valid_read((void *)((char *)(& array) + + 8 * 0), + (size_t)__gen_e_acsl_if_22, + (void *)(& array), + (void *)0); + /*@ assert E_ACSL: separated_guard: \valid_read(&array[0 .. 19]); */ + __e_acsl_assert(__gen_e_acsl_valid_read_21,"RTE","main", + "separated_guard: \\valid_read(&array[0 .. 19])", + "tests/memory/separated.c",27); + __gen_e_acsl_size_23 = 8 * ((-3 - 0) + 1); + if (__gen_e_acsl_size_23 <= 0) __gen_e_acsl_if_23 = 0; + else __gen_e_acsl_if_23 = __gen_e_acsl_size_23; + __gen_e_acsl_size_24 = 8 * ((19 - 0) + 1); + if (__gen_e_acsl_size_24 <= 0) __gen_e_acsl_if_24 = 0; + else __gen_e_acsl_if_24 = __gen_e_acsl_size_24; + __gen_e_acsl_separated_9 = __e_acsl_separated((size_t)2, + (char *)(& array) + 8 * 0, + __gen_e_acsl_if_23, + (char *)(& array) + 8 * 0, + __gen_e_acsl_if_24); + __e_acsl_assert(__gen_e_acsl_separated_9,"Assertion","main", + "\\separated(&array[0 .. -3], &array[0 .. 19])", + "tests/memory/separated.c",27); + } + /*@ assert \separated(&array[0 .. -3], &array[0 .. 19]); */ ; __e_acsl_delete_block((void *)(array)); } { @@ -301,42 +482,42 @@ int main(void) int __gen_e_acsl_and_2; int __gen_e_acsl_initialized_3; int __gen_e_acsl_and_3; - int __gen_e_acsl_separated_8; + int __gen_e_acsl_separated_10; __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(& a_0), sizeof(int *)); if (__gen_e_acsl_initialized_2) { - int __gen_e_acsl_valid_read_18; - __gen_e_acsl_valid_read_18 = __e_acsl_valid_read((void *)a_0, + int __gen_e_acsl_valid_read_22; + __gen_e_acsl_valid_read_22 = __e_acsl_valid_read((void *)a_0, sizeof(int), (void *)a_0, (void *)(& a_0)); - __gen_e_acsl_and_2 = __gen_e_acsl_valid_read_18; + __gen_e_acsl_and_2 = __gen_e_acsl_valid_read_22; } else __gen_e_acsl_and_2 = 0; /*@ assert E_ACSL: separated_guard: \valid_read(a_0); */ __e_acsl_assert(__gen_e_acsl_and_2,"RTE","main", "separated_guard: \\valid_read(a_0)", - "tests/memory/separated.c",34); + "tests/memory/separated.c",36); __gen_e_acsl_initialized_3 = __e_acsl_initialized((void *)(& b_0), sizeof(int *)); if (__gen_e_acsl_initialized_3) { - int __gen_e_acsl_valid_read_19; - __gen_e_acsl_valid_read_19 = __e_acsl_valid_read((void *)b_0, + int __gen_e_acsl_valid_read_23; + __gen_e_acsl_valid_read_23 = __e_acsl_valid_read((void *)b_0, sizeof(int), (void *)b_0, (void *)(& b_0)); - __gen_e_acsl_and_3 = __gen_e_acsl_valid_read_19; + __gen_e_acsl_and_3 = __gen_e_acsl_valid_read_23; } else __gen_e_acsl_and_3 = 0; /*@ assert E_ACSL: separated_guard: \valid_read(b_0); */ __e_acsl_assert(__gen_e_acsl_and_3,"RTE","main", "separated_guard: \\valid_read(b_0)", - "tests/memory/separated.c",34); - __gen_e_acsl_separated_8 = __e_acsl_separated((size_t)2,(void *)b_0, - sizeof(int),(void *)a_0, - sizeof(int)); - __e_acsl_assert(__gen_e_acsl_separated_8,"Assertion","main", - "\\separated(a_0, b_0)","tests/memory/separated.c",34); + "tests/memory/separated.c",36); + __gen_e_acsl_separated_10 = __e_acsl_separated((size_t)2,a_0, + sizeof(int),b_0, + sizeof(int)); + __e_acsl_assert(__gen_e_acsl_separated_10,"Assertion","main", + "\\separated(a_0, b_0)","tests/memory/separated.c",36); } /*@ assert \separated(a_0, b_0); */ ; { @@ -346,59 +527,59 @@ int main(void) int __gen_e_acsl_and_5; int __gen_e_acsl_initialized_6; int __gen_e_acsl_and_6; - int __gen_e_acsl_separated_9; + int __gen_e_acsl_separated_11; __gen_e_acsl_initialized_4 = __e_acsl_initialized((void *)(& a_0), sizeof(int *)); if (__gen_e_acsl_initialized_4) { - int __gen_e_acsl_valid_read_20; - __gen_e_acsl_valid_read_20 = __e_acsl_valid_read((void *)a_0, + int __gen_e_acsl_valid_read_24; + __gen_e_acsl_valid_read_24 = __e_acsl_valid_read((void *)a_0, sizeof(int), (void *)a_0, (void *)(& a_0)); - __gen_e_acsl_and_4 = __gen_e_acsl_valid_read_20; + __gen_e_acsl_and_4 = __gen_e_acsl_valid_read_24; } else __gen_e_acsl_and_4 = 0; /*@ assert E_ACSL: separated_guard: \valid_read(a_0); */ __e_acsl_assert(__gen_e_acsl_and_4,"RTE","main", "separated_guard: \\valid_read(a_0)", - "tests/memory/separated.c",35); + "tests/memory/separated.c",37); __gen_e_acsl_initialized_5 = __e_acsl_initialized((void *)(& b_0), sizeof(int *)); if (__gen_e_acsl_initialized_5) { - int __gen_e_acsl_valid_read_21; - __gen_e_acsl_valid_read_21 = __e_acsl_valid_read((void *)b_0, + int __gen_e_acsl_valid_read_25; + __gen_e_acsl_valid_read_25 = __e_acsl_valid_read((void *)b_0, sizeof(int), (void *)b_0, (void *)(& b_0)); - __gen_e_acsl_and_5 = __gen_e_acsl_valid_read_21; + __gen_e_acsl_and_5 = __gen_e_acsl_valid_read_25; } else __gen_e_acsl_and_5 = 0; /*@ assert E_ACSL: separated_guard: \valid_read(b_0); */ __e_acsl_assert(__gen_e_acsl_and_5,"RTE","main", "separated_guard: \\valid_read(b_0)", - "tests/memory/separated.c",35); + "tests/memory/separated.c",37); __gen_e_acsl_initialized_6 = __e_acsl_initialized((void *)(& c_0), sizeof(int *)); if (__gen_e_acsl_initialized_6) { - int __gen_e_acsl_valid_read_22; - __gen_e_acsl_valid_read_22 = __e_acsl_valid_read((void *)c_0, + int __gen_e_acsl_valid_read_26; + __gen_e_acsl_valid_read_26 = __e_acsl_valid_read((void *)c_0, sizeof(int), (void *)c_0, (void *)(& c_0)); - __gen_e_acsl_and_6 = __gen_e_acsl_valid_read_22; + __gen_e_acsl_and_6 = __gen_e_acsl_valid_read_26; } else __gen_e_acsl_and_6 = 0; /*@ assert E_ACSL: separated_guard: \valid_read(c_0); */ __e_acsl_assert(__gen_e_acsl_and_6,"RTE","main", "separated_guard: \\valid_read(c_0)", - "tests/memory/separated.c",35); - __gen_e_acsl_separated_9 = __e_acsl_separated((size_t)3,(void *)c_0, - sizeof(int),(void *)b_0, - sizeof(int),(void *)a_0, - sizeof(int)); - __e_acsl_assert(! __gen_e_acsl_separated_9,"Assertion","main", + "tests/memory/separated.c",37); + __gen_e_acsl_separated_11 = __e_acsl_separated((size_t)3,a_0, + sizeof(int),b_0, + sizeof(int),c_0, + sizeof(int)); + __e_acsl_assert(! __gen_e_acsl_separated_11,"Assertion","main", "!\\separated(a_0, b_0, c_0)", - "tests/memory/separated.c",35); + "tests/memory/separated.c",37); } /*@ assert ¬\separated(a_0, b_0, c_0); */ ; free((void *)a_0); @@ -412,171 +593,1209 @@ int main(void) __e_acsl_store_block((void *)(& array_0),(size_t)8); __e_acsl_full_init((void *)(& array_0)); { - int __gen_e_acsl_valid_read_23; - int __gen_e_acsl_valid_read_24; - int __gen_e_acsl_separated_10; - __gen_e_acsl_valid_read_23 = __e_acsl_valid_read((void *)((char *)array_0 + + int __gen_e_acsl_size_25; + int __gen_e_acsl_if_25; + int __gen_e_acsl_valid_read_27; + int __gen_e_acsl_size_26; + int __gen_e_acsl_if_26; + int __gen_e_acsl_valid_read_28; + int __gen_e_acsl_size_27; + int __gen_e_acsl_if_27; + int __gen_e_acsl_size_28; + int __gen_e_acsl_if_28; + int __gen_e_acsl_separated_12; + __gen_e_acsl_size_25 = 8 * ((9 - 0) + 1); + if (__gen_e_acsl_size_25 <= 0) __gen_e_acsl_if_25 = 0; + else __gen_e_acsl_if_25 = __gen_e_acsl_size_25; + __gen_e_acsl_valid_read_27 = __e_acsl_valid_read((void *)((char *)array_0 + 8 * 0), - (size_t)80, + (size_t)__gen_e_acsl_if_25, (void *)array_0, (void *)(& array_0)); /*@ assert E_ACSL: separated_guard: \valid_read(array_0 + (0 .. 9)); */ - __e_acsl_assert(__gen_e_acsl_valid_read_23,"RTE","main", + __e_acsl_assert(__gen_e_acsl_valid_read_27,"RTE","main", "separated_guard: \\valid_read(array_0 + (0 .. 9))", - "tests/memory/separated.c",44); - __gen_e_acsl_valid_read_24 = __e_acsl_valid_read((void *)((char *)array_0 + + "tests/memory/separated.c",46); + __gen_e_acsl_size_26 = 8 * ((19 - 10) + 1); + if (__gen_e_acsl_size_26 <= 0) __gen_e_acsl_if_26 = 0; + else __gen_e_acsl_if_26 = __gen_e_acsl_size_26; + __gen_e_acsl_valid_read_28 = __e_acsl_valid_read((void *)((char *)array_0 + 8 * 10), - (size_t)80, + (size_t)__gen_e_acsl_if_26, (void *)array_0, (void *)(& array_0)); /*@ assert E_ACSL: separated_guard: \valid_read(array_0 + (10 .. 19)); */ - __e_acsl_assert(__gen_e_acsl_valid_read_24,"RTE","main", + __e_acsl_assert(__gen_e_acsl_valid_read_28,"RTE","main", "separated_guard: \\valid_read(array_0 + (10 .. 19))", - "tests/memory/separated.c",44); - __gen_e_acsl_separated_10 = __e_acsl_separated((size_t)2, - (void *)((char *)array_0 + - 8 * 10),80, - (void *)((char *)array_0 + - 8 * 0),80); - __e_acsl_assert(__gen_e_acsl_separated_10,"Assertion","main", + "tests/memory/separated.c",46); + __gen_e_acsl_size_27 = 8 * ((9 - 0) + 1); + if (__gen_e_acsl_size_27 <= 0) __gen_e_acsl_if_27 = 0; + else __gen_e_acsl_if_27 = __gen_e_acsl_size_27; + __gen_e_acsl_size_28 = 8 * ((19 - 10) + 1); + if (__gen_e_acsl_size_28 <= 0) __gen_e_acsl_if_28 = 0; + else __gen_e_acsl_if_28 = __gen_e_acsl_size_28; + __gen_e_acsl_separated_12 = __e_acsl_separated((size_t)2, + (char *)array_0 + 8 * 0, + __gen_e_acsl_if_27, + (char *)array_0 + 8 * 10, + __gen_e_acsl_if_28); + __e_acsl_assert(__gen_e_acsl_separated_12,"Assertion","main", "\\separated(array_0 + (0 .. 9), array_0 + (10 .. 19))", - "tests/memory/separated.c",44); + "tests/memory/separated.c",46); } /*@ assert \separated(array_0 + (0 .. 9), array_0 + (10 .. 19)); */ ; { - int __gen_e_acsl_valid_read_25; - int __gen_e_acsl_valid_read_26; - int __gen_e_acsl_separated_11; - __gen_e_acsl_valid_read_25 = __e_acsl_valid_read((void *)((char *)array_0 + + int __gen_e_acsl_size_29; + int __gen_e_acsl_if_29; + int __gen_e_acsl_valid_read_29; + int __gen_e_acsl_size_30; + int __gen_e_acsl_if_30; + int __gen_e_acsl_valid_read_30; + int __gen_e_acsl_size_31; + int __gen_e_acsl_if_31; + int __gen_e_acsl_size_32; + int __gen_e_acsl_if_32; + int __gen_e_acsl_separated_13; + __gen_e_acsl_size_29 = 8 * ((10 - 0) + 1); + if (__gen_e_acsl_size_29 <= 0) __gen_e_acsl_if_29 = 0; + else __gen_e_acsl_if_29 = __gen_e_acsl_size_29; + __gen_e_acsl_valid_read_29 = __e_acsl_valid_read((void *)((char *)array_0 + 8 * 0), - (size_t)88, + (size_t)__gen_e_acsl_if_29, (void *)array_0, (void *)(& array_0)); /*@ assert E_ACSL: separated_guard: \valid_read(array_0 + (0 .. 10)); */ - __e_acsl_assert(__gen_e_acsl_valid_read_25,"RTE","main", + __e_acsl_assert(__gen_e_acsl_valid_read_29,"RTE","main", "separated_guard: \\valid_read(array_0 + (0 .. 10))", - "tests/memory/separated.c",45); - __gen_e_acsl_valid_read_26 = __e_acsl_valid_read((void *)((char *)array_0 + + "tests/memory/separated.c",47); + __gen_e_acsl_size_30 = 8 * ((15 - 5) + 1); + if (__gen_e_acsl_size_30 <= 0) __gen_e_acsl_if_30 = 0; + else __gen_e_acsl_if_30 = __gen_e_acsl_size_30; + __gen_e_acsl_valid_read_30 = __e_acsl_valid_read((void *)((char *)array_0 + 8 * 5), - (size_t)88, + (size_t)__gen_e_acsl_if_30, (void *)array_0, (void *)(& array_0)); /*@ assert E_ACSL: separated_guard: \valid_read(array_0 + (5 .. 15)); */ - __e_acsl_assert(__gen_e_acsl_valid_read_26,"RTE","main", + __e_acsl_assert(__gen_e_acsl_valid_read_30,"RTE","main", "separated_guard: \\valid_read(array_0 + (5 .. 15))", - "tests/memory/separated.c",45); - __gen_e_acsl_separated_11 = __e_acsl_separated((size_t)2, - (void *)((char *)array_0 + - 8 * 5),88, - (void *)((char *)array_0 + - 8 * 0),88); - __e_acsl_assert(! __gen_e_acsl_separated_11,"Assertion","main", + "tests/memory/separated.c",47); + __gen_e_acsl_size_31 = 8 * ((10 - 0) + 1); + if (__gen_e_acsl_size_31 <= 0) __gen_e_acsl_if_31 = 0; + else __gen_e_acsl_if_31 = __gen_e_acsl_size_31; + __gen_e_acsl_size_32 = 8 * ((15 - 5) + 1); + if (__gen_e_acsl_size_32 <= 0) __gen_e_acsl_if_32 = 0; + else __gen_e_acsl_if_32 = __gen_e_acsl_size_32; + __gen_e_acsl_separated_13 = __e_acsl_separated((size_t)2, + (char *)array_0 + 8 * 0, + __gen_e_acsl_if_31, + (char *)array_0 + 8 * 5, + __gen_e_acsl_if_32); + __e_acsl_assert(! __gen_e_acsl_separated_13,"Assertion","main", "!\\separated(array_0 + (0 .. 10), array_0 + (5 .. 15))", - "tests/memory/separated.c",45); + "tests/memory/separated.c",47); } /*@ assert ¬\separated(array_0 + (0 .. 10), array_0 + (5 .. 15)); */ ; { - int __gen_e_acsl_valid_read_27; - int __gen_e_acsl_valid_read_28; - int __gen_e_acsl_separated_12; - __gen_e_acsl_valid_read_27 = __e_acsl_valid_read((void *)((char *)array_0 + + int __gen_e_acsl_size_33; + int __gen_e_acsl_if_33; + int __gen_e_acsl_valid_read_31; + int __gen_e_acsl_size_34; + int __gen_e_acsl_if_34; + int __gen_e_acsl_valid_read_32; + int __gen_e_acsl_size_35; + int __gen_e_acsl_if_35; + int __gen_e_acsl_size_36; + int __gen_e_acsl_if_36; + int __gen_e_acsl_separated_14; + __gen_e_acsl_size_33 = 8 * ((19 - 0) + 1); + if (__gen_e_acsl_size_33 <= 0) __gen_e_acsl_if_33 = 0; + else __gen_e_acsl_if_33 = __gen_e_acsl_size_33; + __gen_e_acsl_valid_read_31 = __e_acsl_valid_read((void *)((char *)array_0 + 8 * 0), - (size_t)160, + (size_t)__gen_e_acsl_if_33, (void *)array_0, (void *)(& array_0)); /*@ assert E_ACSL: separated_guard: \valid_read(array_0 + (0 .. 19)); */ - __e_acsl_assert(__gen_e_acsl_valid_read_27,"RTE","main", + __e_acsl_assert(__gen_e_acsl_valid_read_31,"RTE","main", "separated_guard: \\valid_read(array_0 + (0 .. 19))", - "tests/memory/separated.c",46); - __gen_e_acsl_valid_read_28 = __e_acsl_valid_read((void *)((char *)array_0 + + "tests/memory/separated.c",48); + __gen_e_acsl_size_34 = 8 * ((15 - 5) + 1); + if (__gen_e_acsl_size_34 <= 0) __gen_e_acsl_if_34 = 0; + else __gen_e_acsl_if_34 = __gen_e_acsl_size_34; + __gen_e_acsl_valid_read_32 = __e_acsl_valid_read((void *)((char *)array_0 + 8 * 5), - (size_t)88, + (size_t)__gen_e_acsl_if_34, (void *)array_0, (void *)(& array_0)); /*@ assert E_ACSL: separated_guard: \valid_read(array_0 + (5 .. 15)); */ - __e_acsl_assert(__gen_e_acsl_valid_read_28,"RTE","main", + __e_acsl_assert(__gen_e_acsl_valid_read_32,"RTE","main", "separated_guard: \\valid_read(array_0 + (5 .. 15))", - "tests/memory/separated.c",46); - __gen_e_acsl_separated_12 = __e_acsl_separated((size_t)2, - (void *)((char *)array_0 + - 8 * 5),88, - (void *)((char *)array_0 + - 8 * 0),160); - __e_acsl_assert(! __gen_e_acsl_separated_12,"Assertion","main", + "tests/memory/separated.c",48); + __gen_e_acsl_size_35 = 8 * ((19 - 0) + 1); + if (__gen_e_acsl_size_35 <= 0) __gen_e_acsl_if_35 = 0; + else __gen_e_acsl_if_35 = __gen_e_acsl_size_35; + __gen_e_acsl_size_36 = 8 * ((15 - 5) + 1); + if (__gen_e_acsl_size_36 <= 0) __gen_e_acsl_if_36 = 0; + else __gen_e_acsl_if_36 = __gen_e_acsl_size_36; + __gen_e_acsl_separated_14 = __e_acsl_separated((size_t)2, + (char *)array_0 + 8 * 0, + __gen_e_acsl_if_35, + (char *)array_0 + 8 * 5, + __gen_e_acsl_if_36); + __e_acsl_assert(! __gen_e_acsl_separated_14,"Assertion","main", "!\\separated(array_0 + (0 .. 19), array_0 + (5 .. 15))", - "tests/memory/separated.c",46); + "tests/memory/separated.c",48); } /*@ assert ¬\separated(array_0 + (0 .. 19), array_0 + (5 .. 15)); */ ; { - int __gen_e_acsl_valid_read_29; - int __gen_e_acsl_valid_read_30; - int __gen_e_acsl_separated_13; - __gen_e_acsl_valid_read_29 = __e_acsl_valid_read((void *)(array_0 + 0), + int __gen_e_acsl_valid_read_33; + int __gen_e_acsl_valid_read_34; + int __gen_e_acsl_separated_15; + __gen_e_acsl_valid_read_33 = __e_acsl_valid_read((void *)(array_0 + 0), sizeof(double), (void *)array_0, (void *)(& array_0)); /*@ assert E_ACSL: separated_guard: \valid_read(array_0 + 0); */ - __e_acsl_assert(__gen_e_acsl_valid_read_29,"RTE","main", + __e_acsl_assert(__gen_e_acsl_valid_read_33,"RTE","main", "separated_guard: \\valid_read(array_0 + 0)", - "tests/memory/separated.c",47); - __gen_e_acsl_valid_read_30 = __e_acsl_valid_read((void *)(array_0 + 1), + "tests/memory/separated.c",49); + __gen_e_acsl_valid_read_34 = __e_acsl_valid_read((void *)(array_0 + 1), sizeof(double), (void *)array_0, (void *)(& array_0)); /*@ assert E_ACSL: separated_guard: \valid_read(array_0 + 1); */ - __e_acsl_assert(__gen_e_acsl_valid_read_30,"RTE","main", + __e_acsl_assert(__gen_e_acsl_valid_read_34,"RTE","main", "separated_guard: \\valid_read(array_0 + 1)", - "tests/memory/separated.c",47); - __gen_e_acsl_separated_13 = __e_acsl_separated((size_t)2, - (void *)(array_0 + 1), + "tests/memory/separated.c",49); + __gen_e_acsl_separated_15 = __e_acsl_separated((size_t)2,array_0 + 0, sizeof(double), - (void *)(array_0 + 0), + array_0 + 1, sizeof(double)); - __e_acsl_assert(__gen_e_acsl_separated_13,"Assertion","main", + __e_acsl_assert(__gen_e_acsl_separated_15,"Assertion","main", "\\separated(array_0 + 0, array_0 + 1)", - "tests/memory/separated.c",47); + "tests/memory/separated.c",49); } /*@ assert \separated(array_0 + 0, array_0 + 1); */ ; { - int __gen_e_acsl_valid_read_31; - int __gen_e_acsl_valid_read_32; - int __gen_e_acsl_separated_14; - __gen_e_acsl_valid_read_31 = __e_acsl_valid_read((void *)((char *)array_0 + + int __gen_e_acsl_size_37; + int __gen_e_acsl_if_37; + int __gen_e_acsl_valid_read_35; + int __gen_e_acsl_size_38; + int __gen_e_acsl_if_38; + int __gen_e_acsl_valid_read_36; + int __gen_e_acsl_size_39; + int __gen_e_acsl_if_39; + int __gen_e_acsl_size_40; + int __gen_e_acsl_if_40; + int __gen_e_acsl_separated_16; + __gen_e_acsl_size_37 = 8 * ((1 - 0) + 1); + if (__gen_e_acsl_size_37 <= 0) __gen_e_acsl_if_37 = 0; + else __gen_e_acsl_if_37 = __gen_e_acsl_size_37; + __gen_e_acsl_valid_read_35 = __e_acsl_valid_read((void *)((char *)array_0 + 8 * 0), - (size_t)16, + (size_t)__gen_e_acsl_if_37, (void *)array_0, (void *)(& array_0)); /*@ assert E_ACSL: separated_guard: \valid_read(array_0 + (0 .. 1)); */ - __e_acsl_assert(__gen_e_acsl_valid_read_31,"RTE","main", + __e_acsl_assert(__gen_e_acsl_valid_read_35,"RTE","main", "separated_guard: \\valid_read(array_0 + (0 .. 1))", - "tests/memory/separated.c",48); - __gen_e_acsl_valid_read_32 = __e_acsl_valid_read((void *)((char *)array_0 + + "tests/memory/separated.c",50); + __gen_e_acsl_size_38 = 8 * ((2 - 1) + 1); + if (__gen_e_acsl_size_38 <= 0) __gen_e_acsl_if_38 = 0; + else __gen_e_acsl_if_38 = __gen_e_acsl_size_38; + __gen_e_acsl_valid_read_36 = __e_acsl_valid_read((void *)((char *)array_0 + 8 * 1), - (size_t)16, + (size_t)__gen_e_acsl_if_38, (void *)array_0, (void *)(& array_0)); /*@ assert E_ACSL: separated_guard: \valid_read(array_0 + (1 .. 2)); */ - __e_acsl_assert(__gen_e_acsl_valid_read_32,"RTE","main", + __e_acsl_assert(__gen_e_acsl_valid_read_36,"RTE","main", "separated_guard: \\valid_read(array_0 + (1 .. 2))", - "tests/memory/separated.c",48); - __gen_e_acsl_separated_14 = __e_acsl_separated((size_t)2, - (void *)((char *)array_0 + - 8 * 1),16, - (void *)((char *)array_0 + - 8 * 0),16); - __e_acsl_assert(! __gen_e_acsl_separated_14,"Assertion","main", + "tests/memory/separated.c",50); + __gen_e_acsl_size_39 = 8 * ((1 - 0) + 1); + if (__gen_e_acsl_size_39 <= 0) __gen_e_acsl_if_39 = 0; + else __gen_e_acsl_if_39 = __gen_e_acsl_size_39; + __gen_e_acsl_size_40 = 8 * ((2 - 1) + 1); + if (__gen_e_acsl_size_40 <= 0) __gen_e_acsl_if_40 = 0; + else __gen_e_acsl_if_40 = __gen_e_acsl_size_40; + __gen_e_acsl_separated_16 = __e_acsl_separated((size_t)2, + (char *)array_0 + 8 * 0, + __gen_e_acsl_if_39, + (char *)array_0 + 8 * 1, + __gen_e_acsl_if_40); + __e_acsl_assert(! __gen_e_acsl_separated_16,"Assertion","main", "!\\separated(array_0 + (0 .. 1), array_0 + (1 .. 2))", - "tests/memory/separated.c",48); + "tests/memory/separated.c",50); } /*@ assert ¬\separated(array_0 + (0 .. 1), array_0 + (1 .. 2)); */ ; + { + int __gen_e_acsl_size_41; + int __gen_e_acsl_if_41; + int __gen_e_acsl_valid_read_37; + int __gen_e_acsl_size_42; + int __gen_e_acsl_if_42; + int __gen_e_acsl_valid_read_38; + int __gen_e_acsl_size_43; + int __gen_e_acsl_if_43; + int __gen_e_acsl_size_44; + int __gen_e_acsl_if_44; + int __gen_e_acsl_separated_17; + __gen_e_acsl_size_41 = 8 * ((5 - 15) + 1); + if (__gen_e_acsl_size_41 <= 0) __gen_e_acsl_if_41 = 0; + else __gen_e_acsl_if_41 = __gen_e_acsl_size_41; + __gen_e_acsl_valid_read_37 = __e_acsl_valid_read((void *)((char *)array_0 + + 8 * 15), + (size_t)__gen_e_acsl_if_41, + (void *)array_0, + (void *)(& array_0)); + /*@ assert E_ACSL: separated_guard: \valid_read(array_0 + (15 .. 5)); + */ + __e_acsl_assert(__gen_e_acsl_valid_read_37,"RTE","main", + "separated_guard: \\valid_read(array_0 + (15 .. 5))", + "tests/memory/separated.c",51); + __gen_e_acsl_size_42 = 8 * ((19 - 0) + 1); + if (__gen_e_acsl_size_42 <= 0) __gen_e_acsl_if_42 = 0; + else __gen_e_acsl_if_42 = __gen_e_acsl_size_42; + __gen_e_acsl_valid_read_38 = __e_acsl_valid_read((void *)((char *)array_0 + + 8 * 0), + (size_t)__gen_e_acsl_if_42, + (void *)array_0, + (void *)(& array_0)); + /*@ assert E_ACSL: separated_guard: \valid_read(array_0 + (0 .. 19)); + */ + __e_acsl_assert(__gen_e_acsl_valid_read_38,"RTE","main", + "separated_guard: \\valid_read(array_0 + (0 .. 19))", + "tests/memory/separated.c",51); + __gen_e_acsl_size_43 = 8 * ((5 - 15) + 1); + if (__gen_e_acsl_size_43 <= 0) __gen_e_acsl_if_43 = 0; + else __gen_e_acsl_if_43 = __gen_e_acsl_size_43; + __gen_e_acsl_size_44 = 8 * ((19 - 0) + 1); + if (__gen_e_acsl_size_44 <= 0) __gen_e_acsl_if_44 = 0; + else __gen_e_acsl_if_44 = __gen_e_acsl_size_44; + __gen_e_acsl_separated_17 = __e_acsl_separated((size_t)2, + (char *)array_0 + 8 * 15, + __gen_e_acsl_if_43, + (char *)array_0 + 8 * 0, + __gen_e_acsl_if_44); + __e_acsl_assert(__gen_e_acsl_separated_17,"Assertion","main", + "\\separated(array_0 + (15 .. 5), array_0 + (0 .. 19))", + "tests/memory/separated.c",51); + } + /*@ assert \separated(array_0 + (15 .. 5), array_0 + (0 .. 19)); */ ; + { + int __gen_e_acsl_size_45; + int __gen_e_acsl_if_45; + int __gen_e_acsl_valid_read_39; + int __gen_e_acsl_size_46; + int __gen_e_acsl_if_46; + int __gen_e_acsl_valid_read_40; + int __gen_e_acsl_size_47; + int __gen_e_acsl_if_47; + int __gen_e_acsl_size_48; + int __gen_e_acsl_if_48; + int __gen_e_acsl_separated_18; + __gen_e_acsl_size_45 = 8 * ((-3 - 0) + 1); + if (__gen_e_acsl_size_45 <= 0) __gen_e_acsl_if_45 = 0; + else __gen_e_acsl_if_45 = __gen_e_acsl_size_45; + __gen_e_acsl_valid_read_39 = __e_acsl_valid_read((void *)((char *)array_0 + + 8 * 0), + (size_t)__gen_e_acsl_if_45, + (void *)array_0, + (void *)(& array_0)); + /*@ assert E_ACSL: separated_guard: \valid_read(array_0 + (0 .. -3)); + */ + __e_acsl_assert(__gen_e_acsl_valid_read_39,"RTE","main", + "separated_guard: \\valid_read(array_0 + (0 .. -3))", + "tests/memory/separated.c",52); + __gen_e_acsl_size_46 = 8 * ((19 - 0) + 1); + if (__gen_e_acsl_size_46 <= 0) __gen_e_acsl_if_46 = 0; + else __gen_e_acsl_if_46 = __gen_e_acsl_size_46; + __gen_e_acsl_valid_read_40 = __e_acsl_valid_read((void *)((char *)array_0 + + 8 * 0), + (size_t)__gen_e_acsl_if_46, + (void *)array_0, + (void *)(& array_0)); + /*@ assert E_ACSL: separated_guard: \valid_read(array_0 + (0 .. 19)); + */ + __e_acsl_assert(__gen_e_acsl_valid_read_40,"RTE","main", + "separated_guard: \\valid_read(array_0 + (0 .. 19))", + "tests/memory/separated.c",52); + __gen_e_acsl_size_47 = 8 * ((-3 - 0) + 1); + if (__gen_e_acsl_size_47 <= 0) __gen_e_acsl_if_47 = 0; + else __gen_e_acsl_if_47 = __gen_e_acsl_size_47; + __gen_e_acsl_size_48 = 8 * ((19 - 0) + 1); + if (__gen_e_acsl_size_48 <= 0) __gen_e_acsl_if_48 = 0; + else __gen_e_acsl_if_48 = __gen_e_acsl_size_48; + __gen_e_acsl_separated_18 = __e_acsl_separated((size_t)2, + (char *)array_0 + 8 * 0, + __gen_e_acsl_if_47, + (char *)array_0 + 8 * 0, + __gen_e_acsl_if_48); + __e_acsl_assert(__gen_e_acsl_separated_18,"Assertion","main", + "\\separated(array_0 + (0 .. -3), array_0 + (0 .. 19))", + "tests/memory/separated.c",52); + } + /*@ assert \separated(array_0 + (0 .. -3), array_0 + (0 .. 19)); */ ; free((void *)array_0); __e_acsl_delete_block((void *)(& array_0)); } + { + double array_1[10][10][10] = {{{(double)0}}}; + __e_acsl_store_block((void *)(array_1),(size_t)8000); + __e_acsl_full_init((void *)(& array_1)); + { + int __gen_e_acsl_forall; + int __gen_e_acsl_range; + int __gen_e_acsl_forall_2; + int __gen_e_acsl_range_2; + int __gen_e_acsl_forall_3; + int __gen_e_acsl_range_3; + int __gen_e_acsl_forall_4; + int __gen_e_acsl_range_4; + __gen_e_acsl_forall = 1; + __gen_e_acsl_range = 0; + while (1) { + if (__gen_e_acsl_range <= 2) ; else break; + { + int __gen_e_acsl_valid_read_41; + __gen_e_acsl_valid_read_41 = __e_acsl_valid_read((void *)(& array_1[0][__gen_e_acsl_range][0]), + sizeof(double), + (void *)(& array_1[0][__gen_e_acsl_range][0]), + (void *)0); + if (__gen_e_acsl_valid_read_41) ; + else { + __gen_e_acsl_forall = 0; + goto e_acsl_end_loop1; + } + } + __gen_e_acsl_range ++; + } + e_acsl_end_loop1: ; + /*@ assert + E_ACSL: separated_guard: \valid_read(&array_1[0][0 .. 2][0]); + */ + __e_acsl_assert(__gen_e_acsl_forall,"RTE","main", + "separated_guard: \\valid_read(&array_1[0][0 .. 2][0])", + "tests/memory/separated.c",60); + __gen_e_acsl_forall_2 = 1; + __gen_e_acsl_range_2 = 3; + while (1) { + if (__gen_e_acsl_range_2 <= 5) ; else break; + { + int __gen_e_acsl_valid_read_42; + __gen_e_acsl_valid_read_42 = __e_acsl_valid_read((void *)(& array_1[0][__gen_e_acsl_range_2][0]), + sizeof(double), + (void *)(& array_1[0][__gen_e_acsl_range_2][0]), + (void *)0); + if (__gen_e_acsl_valid_read_42) ; + else { + __gen_e_acsl_forall_2 = 0; + goto e_acsl_end_loop2; + } + } + __gen_e_acsl_range_2 ++; + } + e_acsl_end_loop2: ; + /*@ assert + E_ACSL: separated_guard: \valid_read(&array_1[0][3 .. 5][0]); + */ + __e_acsl_assert(__gen_e_acsl_forall_2,"RTE","main", + "separated_guard: \\valid_read(&array_1[0][3 .. 5][0])", + "tests/memory/separated.c",60); + __gen_e_acsl_forall_3 = 1; + __gen_e_acsl_range_3 = 6; + while (1) { + if (__gen_e_acsl_range_3 <= 9) ; else break; + { + int __gen_e_acsl_valid_read_43; + __gen_e_acsl_valid_read_43 = __e_acsl_valid_read((void *)(& array_1[0][__gen_e_acsl_range_3][0]), + sizeof(double), + (void *)(& array_1[0][__gen_e_acsl_range_3][0]), + (void *)0); + if (__gen_e_acsl_valid_read_43) ; + else { + __gen_e_acsl_forall_3 = 0; + goto e_acsl_end_loop3; + } + } + __gen_e_acsl_range_3 ++; + } + e_acsl_end_loop3: ; + /*@ assert + E_ACSL: separated_guard: \valid_read(&array_1[0][6 .. 9][0]); + */ + __e_acsl_assert(__gen_e_acsl_forall_3,"RTE","main", + "separated_guard: \\valid_read(&array_1[0][6 .. 9][0])", + "tests/memory/separated.c",60); + __gen_e_acsl_forall_4 = 1; + __gen_e_acsl_range_4 = 6; + while (1) { + if (__gen_e_acsl_range_4 <= 9) ; else break; + { + int __gen_e_acsl_forall_5; + int __gen_e_acsl_range_5; + __gen_e_acsl_forall_5 = 1; + __gen_e_acsl_range_5 = 3; + while (1) { + if (__gen_e_acsl_range_5 <= 5) ; else break; + { + int __gen_e_acsl_forall_6; + int __gen_e_acsl_range_6; + __gen_e_acsl_forall_6 = 1; + __gen_e_acsl_range_6 = 0; + while (1) { + if (__gen_e_acsl_range_6 <= 2) ; else break; + { + int __gen_e_acsl_valid_read_44; + int __gen_e_acsl_valid_read_45; + int __gen_e_acsl_valid_read_46; + int __gen_e_acsl_separated_19; + __gen_e_acsl_valid_read_44 = __e_acsl_valid_read((void *)(& array_1[0][__gen_e_acsl_range_6][0]), + sizeof(double), + (void *)(& array_1[0][__gen_e_acsl_range_6][0]), + (void *)0); + /*@ assert + E_ACSL: separated_guard: + \valid_read(&array_1[0][range_6][0]); + */ + __e_acsl_assert(__gen_e_acsl_valid_read_44,"RTE","main", + "separated_guard: \\valid_read(&array_1[0][range_6][0])", + "tests/memory/separated.c",60); + __gen_e_acsl_valid_read_45 = __e_acsl_valid_read((void *)(& array_1[0][__gen_e_acsl_range_5][0]), + sizeof(double), + (void *)(& array_1[0][__gen_e_acsl_range_5][0]), + (void *)0); + /*@ assert + E_ACSL: separated_guard: + \valid_read(&array_1[0][range_5][0]); + */ + __e_acsl_assert(__gen_e_acsl_valid_read_45,"RTE","main", + "separated_guard: \\valid_read(&array_1[0][range_5][0])", + "tests/memory/separated.c",60); + __gen_e_acsl_valid_read_46 = __e_acsl_valid_read((void *)(& array_1[0][__gen_e_acsl_range_4][0]), + sizeof(double), + (void *)(& array_1[0][__gen_e_acsl_range_4][0]), + (void *)0); + /*@ assert + E_ACSL: separated_guard: + \valid_read(&array_1[0][range_4][0]); + */ + __e_acsl_assert(__gen_e_acsl_valid_read_46,"RTE","main", + "separated_guard: \\valid_read(&array_1[0][range_4][0])", + "tests/memory/separated.c",60); + __gen_e_acsl_separated_19 = __e_acsl_separated((size_t)3, + & array_1[0][__gen_e_acsl_range_6][0], + sizeof(double), + & array_1[0][__gen_e_acsl_range_5][0], + sizeof(double), + & array_1[0][__gen_e_acsl_range_4][0], + sizeof(double)); + if (__gen_e_acsl_separated_19) ; + else { + __gen_e_acsl_forall_6 = 0; + goto e_acsl_end_loop4; + } + } + __gen_e_acsl_range_6 ++; + } + e_acsl_end_loop4: ; + if (__gen_e_acsl_forall_6) ; + else { + __gen_e_acsl_forall_5 = 0; + goto e_acsl_end_loop5; + } + } + __gen_e_acsl_range_5 ++; + } + e_acsl_end_loop5: ; + if (__gen_e_acsl_forall_5) ; + else { + __gen_e_acsl_forall_4 = 0; + goto e_acsl_end_loop6; + } + } + __gen_e_acsl_range_4 ++; + } + e_acsl_end_loop6: ; + __e_acsl_assert(__gen_e_acsl_forall_4,"Assertion","main", + "\\separated(\n &array_1[0][0 .. 2][0], &array_1[0][3 .. 5][0], &array_1[0][6 .. 9][0]\n )", + "tests/memory/separated.c",60); + } + /*@ + assert + \separated( + &array_1[0][0 .. 2][0], &array_1[0][3 .. 5][0], &array_1[0][6 .. 9][0] + ); + */ + ; + { + int __gen_e_acsl_forall_7; + int __gen_e_acsl_range_7; + int __gen_e_acsl_forall_8; + int __gen_e_acsl_range_8; + int __gen_e_acsl_forall_9; + int __gen_e_acsl_range_9; + int __gen_e_acsl_forall_10; + int __gen_e_acsl_range_10; + __gen_e_acsl_forall_7 = 1; + __gen_e_acsl_range_7 = 0; + while (1) { + if (__gen_e_acsl_range_7 <= 2) ; else break; + { + int __gen_e_acsl_valid_read_47; + __gen_e_acsl_valid_read_47 = __e_acsl_valid_read((void *)(& array_1[0][__gen_e_acsl_range_7][0]), + sizeof(double), + (void *)(& array_1[0][__gen_e_acsl_range_7][0]), + (void *)0); + if (__gen_e_acsl_valid_read_47) ; + else { + __gen_e_acsl_forall_7 = 0; + goto e_acsl_end_loop7; + } + } + __gen_e_acsl_range_7 ++; + } + e_acsl_end_loop7: ; + /*@ assert + E_ACSL: separated_guard: \valid_read(&array_1[0][0 .. 2][0]); + */ + __e_acsl_assert(__gen_e_acsl_forall_7,"RTE","main", + "separated_guard: \\valid_read(&array_1[0][0 .. 2][0])", + "tests/memory/separated.c",61); + __gen_e_acsl_forall_8 = 1; + __gen_e_acsl_range_8 = 0; + while (1) { + if (__gen_e_acsl_range_8 <= 2) ; else break; + { + int __gen_e_acsl_valid_read_48; + __gen_e_acsl_valid_read_48 = __e_acsl_valid_read((void *)(& array_1[1][__gen_e_acsl_range_8][0]), + sizeof(double), + (void *)(& array_1[1][__gen_e_acsl_range_8][0]), + (void *)0); + if (__gen_e_acsl_valid_read_48) ; + else { + __gen_e_acsl_forall_8 = 0; + goto e_acsl_end_loop8; + } + } + __gen_e_acsl_range_8 ++; + } + e_acsl_end_loop8: ; + /*@ assert + E_ACSL: separated_guard: \valid_read(&array_1[1][0 .. 2][0]); + */ + __e_acsl_assert(__gen_e_acsl_forall_8,"RTE","main", + "separated_guard: \\valid_read(&array_1[1][0 .. 2][0])", + "tests/memory/separated.c",61); + __gen_e_acsl_forall_9 = 1; + __gen_e_acsl_range_9 = 0; + while (1) { + if (__gen_e_acsl_range_9 <= 2) ; else break; + { + int __gen_e_acsl_valid_read_49; + __gen_e_acsl_valid_read_49 = __e_acsl_valid_read((void *)(& array_1[2][__gen_e_acsl_range_9][0]), + sizeof(double), + (void *)(& array_1[2][__gen_e_acsl_range_9][0]), + (void *)0); + if (__gen_e_acsl_valid_read_49) ; + else { + __gen_e_acsl_forall_9 = 0; + goto e_acsl_end_loop9; + } + } + __gen_e_acsl_range_9 ++; + } + e_acsl_end_loop9: ; + /*@ assert + E_ACSL: separated_guard: \valid_read(&array_1[2][0 .. 2][0]); + */ + __e_acsl_assert(__gen_e_acsl_forall_9,"RTE","main", + "separated_guard: \\valid_read(&array_1[2][0 .. 2][0])", + "tests/memory/separated.c",61); + __gen_e_acsl_forall_10 = 1; + __gen_e_acsl_range_10 = 0; + while (1) { + if (__gen_e_acsl_range_10 <= 2) ; else break; + { + int __gen_e_acsl_forall_11; + int __gen_e_acsl_range_11; + __gen_e_acsl_forall_11 = 1; + __gen_e_acsl_range_11 = 0; + while (1) { + if (__gen_e_acsl_range_11 <= 2) ; else break; + { + int __gen_e_acsl_forall_12; + int __gen_e_acsl_range_12; + __gen_e_acsl_forall_12 = 1; + __gen_e_acsl_range_12 = 0; + while (1) { + if (__gen_e_acsl_range_12 <= 2) ; else break; + { + int __gen_e_acsl_valid_read_50; + int __gen_e_acsl_valid_read_51; + int __gen_e_acsl_valid_read_52; + int __gen_e_acsl_separated_20; + __gen_e_acsl_valid_read_50 = __e_acsl_valid_read((void *)(& array_1[0][__gen_e_acsl_range_12][0]), + sizeof(double), + (void *)(& array_1[0][__gen_e_acsl_range_12][0]), + (void *)0); + /*@ assert + E_ACSL: separated_guard: + \valid_read(&array_1[0][range_12][0]); + */ + __e_acsl_assert(__gen_e_acsl_valid_read_50,"RTE","main", + "separated_guard: \\valid_read(&array_1[0][range_12][0])", + "tests/memory/separated.c",61); + __gen_e_acsl_valid_read_51 = __e_acsl_valid_read((void *)(& array_1[1][__gen_e_acsl_range_11][0]), + sizeof(double), + (void *)(& array_1[1][__gen_e_acsl_range_11][0]), + (void *)0); + /*@ assert + E_ACSL: separated_guard: + \valid_read(&array_1[1][range_11][0]); + */ + __e_acsl_assert(__gen_e_acsl_valid_read_51,"RTE","main", + "separated_guard: \\valid_read(&array_1[1][range_11][0])", + "tests/memory/separated.c",61); + __gen_e_acsl_valid_read_52 = __e_acsl_valid_read((void *)(& array_1[2][__gen_e_acsl_range_10][0]), + sizeof(double), + (void *)(& array_1[2][__gen_e_acsl_range_10][0]), + (void *)0); + /*@ assert + E_ACSL: separated_guard: + \valid_read(&array_1[2][range_10][0]); + */ + __e_acsl_assert(__gen_e_acsl_valid_read_52,"RTE","main", + "separated_guard: \\valid_read(&array_1[2][range_10][0])", + "tests/memory/separated.c",61); + __gen_e_acsl_separated_20 = __e_acsl_separated((size_t)3, + & array_1[0][__gen_e_acsl_range_12][0], + sizeof(double), + & array_1[1][__gen_e_acsl_range_11][0], + sizeof(double), + & array_1[2][__gen_e_acsl_range_10][0], + sizeof(double)); + if (__gen_e_acsl_separated_20) ; + else { + __gen_e_acsl_forall_12 = 0; + goto e_acsl_end_loop10; + } + } + __gen_e_acsl_range_12 ++; + } + e_acsl_end_loop10: ; + if (__gen_e_acsl_forall_12) ; + else { + __gen_e_acsl_forall_11 = 0; + goto e_acsl_end_loop11; + } + } + __gen_e_acsl_range_11 ++; + } + e_acsl_end_loop11: ; + if (__gen_e_acsl_forall_11) ; + else { + __gen_e_acsl_forall_10 = 0; + goto e_acsl_end_loop12; + } + } + __gen_e_acsl_range_10 ++; + } + e_acsl_end_loop12: ; + __e_acsl_assert(__gen_e_acsl_forall_10,"Assertion","main", + "\\separated(\n &array_1[0][0 .. 2][0], &array_1[1][0 .. 2][0], &array_1[2][0 .. 2][0]\n )", + "tests/memory/separated.c",61); + } + /*@ + assert + \separated( + &array_1[0][0 .. 2][0], &array_1[1][0 .. 2][0], &array_1[2][0 .. 2][0] + ); + */ + ; + { + int __gen_e_acsl_forall_13; + int __gen_e_acsl_range_14; + int __gen_e_acsl_forall_15; + int __gen_e_acsl_range_16; + int __gen_e_acsl_forall_17; + int __gen_e_acsl_range_18; + __gen_e_acsl_forall_13 = 1; + __gen_e_acsl_range_14 = 0; + while (1) { + if (__gen_e_acsl_range_14 <= 2) ; else break; + { + int __gen_e_acsl_forall_14; + int __gen_e_acsl_range_13; + __gen_e_acsl_forall_14 = 1; + __gen_e_acsl_range_13 = 0; + while (1) { + if (__gen_e_acsl_range_13 <= 2) ; else break; + { + int __gen_e_acsl_valid_read_53; + __gen_e_acsl_valid_read_53 = __e_acsl_valid_read((void *)(& array_1[__gen_e_acsl_range_13][__gen_e_acsl_range_14][0]), + sizeof(double), + (void *)(& array_1[__gen_e_acsl_range_13][__gen_e_acsl_range_14][0]), + (void *)0); + if (__gen_e_acsl_valid_read_53) ; + else { + __gen_e_acsl_forall_14 = 0; + goto e_acsl_end_loop13; + } + } + __gen_e_acsl_range_13 ++; + } + e_acsl_end_loop13: ; + if (__gen_e_acsl_forall_14) ; + else { + __gen_e_acsl_forall_13 = 0; + goto e_acsl_end_loop14; + } + } + __gen_e_acsl_range_14 ++; + } + e_acsl_end_loop14: ; + /*@ assert + E_ACSL: separated_guard: \valid_read(&array_1[0 .. 2][0 .. 2][0]); + */ + __e_acsl_assert(__gen_e_acsl_forall_13,"RTE","main", + "separated_guard: \\valid_read(&array_1[0 .. 2][0 .. 2][0])", + "tests/memory/separated.c",62); + __gen_e_acsl_forall_15 = 1; + __gen_e_acsl_range_16 = 3; + while (1) { + if (__gen_e_acsl_range_16 <= 5) ; else break; + { + int __gen_e_acsl_forall_16; + int __gen_e_acsl_range_15; + __gen_e_acsl_forall_16 = 1; + __gen_e_acsl_range_15 = 0; + while (1) { + if (__gen_e_acsl_range_15 <= 2) ; else break; + { + int __gen_e_acsl_valid_read_54; + __gen_e_acsl_valid_read_54 = __e_acsl_valid_read((void *)(& array_1[__gen_e_acsl_range_15][__gen_e_acsl_range_16][0]), + sizeof(double), + (void *)(& array_1[__gen_e_acsl_range_15][__gen_e_acsl_range_16][0]), + (void *)0); + if (__gen_e_acsl_valid_read_54) ; + else { + __gen_e_acsl_forall_16 = 0; + goto e_acsl_end_loop15; + } + } + __gen_e_acsl_range_15 ++; + } + e_acsl_end_loop15: ; + if (__gen_e_acsl_forall_16) ; + else { + __gen_e_acsl_forall_15 = 0; + goto e_acsl_end_loop16; + } + } + __gen_e_acsl_range_16 ++; + } + e_acsl_end_loop16: ; + /*@ assert + E_ACSL: separated_guard: \valid_read(&array_1[0 .. 2][3 .. 5][0]); + */ + __e_acsl_assert(__gen_e_acsl_forall_15,"RTE","main", + "separated_guard: \\valid_read(&array_1[0 .. 2][3 .. 5][0])", + "tests/memory/separated.c",62); + __gen_e_acsl_forall_17 = 1; + __gen_e_acsl_range_18 = 3; + while (1) { + if (__gen_e_acsl_range_18 <= 5) ; else break; + { + int __gen_e_acsl_forall_18; + int __gen_e_acsl_range_17; + __gen_e_acsl_forall_18 = 1; + __gen_e_acsl_range_17 = 0; + while (1) { + if (__gen_e_acsl_range_17 <= 2) ; else break; + { + int __gen_e_acsl_forall_19; + int __gen_e_acsl_range_20; + __gen_e_acsl_forall_19 = 1; + __gen_e_acsl_range_20 = 0; + while (1) { + if (__gen_e_acsl_range_20 <= 2) ; else break; + { + int __gen_e_acsl_forall_20; + int __gen_e_acsl_range_19; + __gen_e_acsl_forall_20 = 1; + __gen_e_acsl_range_19 = 0; + while (1) { + if (__gen_e_acsl_range_19 <= 2) ; else break; + { + int __gen_e_acsl_valid_read_55; + int __gen_e_acsl_valid_read_56; + int __gen_e_acsl_separated_21; + __gen_e_acsl_valid_read_55 = __e_acsl_valid_read + ((void *)(& array_1[__gen_e_acsl_range_19][__gen_e_acsl_range_20][0]), + sizeof(double), + (void *)(& array_1[__gen_e_acsl_range_19][__gen_e_acsl_range_20][0]), + (void *)0); + /*@ assert + E_ACSL: separated_guard: + \valid_read(&array_1[range_19][range_20][0]); + */ + __e_acsl_assert(__gen_e_acsl_valid_read_55,"RTE", + "main", + "separated_guard: \\valid_read(&array_1[range_19][range_20][0])", + "tests/memory/separated.c",62); + __gen_e_acsl_valid_read_56 = __e_acsl_valid_read + ((void *)(& array_1[__gen_e_acsl_range_17][__gen_e_acsl_range_18][0]), + sizeof(double), + (void *)(& array_1[__gen_e_acsl_range_17][__gen_e_acsl_range_18][0]), + (void *)0); + /*@ assert + E_ACSL: separated_guard: + \valid_read(&array_1[range_17][range_18][0]); + */ + __e_acsl_assert(__gen_e_acsl_valid_read_56,"RTE", + "main", + "separated_guard: \\valid_read(&array_1[range_17][range_18][0])", + "tests/memory/separated.c",62); + __gen_e_acsl_separated_21 = __e_acsl_separated((size_t)2, + & array_1[__gen_e_acsl_range_19][__gen_e_acsl_range_20][0], + sizeof(double), + & array_1[__gen_e_acsl_range_17][__gen_e_acsl_range_18][0], + sizeof(double)); + if (__gen_e_acsl_separated_21) ; + else { + __gen_e_acsl_forall_20 = 0; + goto e_acsl_end_loop17; + } + } + __gen_e_acsl_range_19 ++; + } + e_acsl_end_loop17: ; + if (__gen_e_acsl_forall_20) ; + else { + __gen_e_acsl_forall_19 = 0; + goto e_acsl_end_loop18; + } + } + __gen_e_acsl_range_20 ++; + } + e_acsl_end_loop18: ; + if (__gen_e_acsl_forall_19) ; + else { + __gen_e_acsl_forall_18 = 0; + goto e_acsl_end_loop19; + } + } + __gen_e_acsl_range_17 ++; + } + e_acsl_end_loop19: ; + if (__gen_e_acsl_forall_18) ; + else { + __gen_e_acsl_forall_17 = 0; + goto e_acsl_end_loop20; + } + } + __gen_e_acsl_range_18 ++; + } + e_acsl_end_loop20: ; + __e_acsl_assert(__gen_e_acsl_forall_17,"Assertion","main", + "\\separated(&array_1[0 .. 2][0 .. 2][0], &array_1[0 .. 2][3 .. 5][0])", + "tests/memory/separated.c",62); + } + /*@ + assert + \separated(&array_1[0 .. 2][0 .. 2][0], &array_1[0 .. 2][3 .. 5][0]); */ + ; + { + int __gen_e_acsl_forall_21; + int __gen_e_acsl_range_22; + int __gen_e_acsl_forall_23; + int __gen_e_acsl_range_24; + int __gen_e_acsl_forall_25; + int __gen_e_acsl_range_26; + __gen_e_acsl_forall_21 = 1; + __gen_e_acsl_range_22 = 0; + while (1) { + if (__gen_e_acsl_range_22 <= 2) ; else break; + { + int __gen_e_acsl_forall_22; + int __gen_e_acsl_range_21; + __gen_e_acsl_forall_22 = 1; + __gen_e_acsl_range_21 = 0; + while (1) { + if (__gen_e_acsl_range_21 <= 3) ; else break; + { + int __gen_e_acsl_valid_read_57; + __gen_e_acsl_valid_read_57 = __e_acsl_valid_read((void *)(& array_1[__gen_e_acsl_range_21][__gen_e_acsl_range_22][0]), + sizeof(double), + (void *)(& array_1[__gen_e_acsl_range_21][__gen_e_acsl_range_22][0]), + (void *)0); + if (__gen_e_acsl_valid_read_57) ; + else { + __gen_e_acsl_forall_22 = 0; + goto e_acsl_end_loop21; + } + } + __gen_e_acsl_range_21 ++; + } + e_acsl_end_loop21: ; + if (__gen_e_acsl_forall_22) ; + else { + __gen_e_acsl_forall_21 = 0; + goto e_acsl_end_loop22; + } + } + __gen_e_acsl_range_22 ++; + } + e_acsl_end_loop22: ; + /*@ assert + E_ACSL: separated_guard: \valid_read(&array_1[0 .. 3][0 .. 2][0]); + */ + __e_acsl_assert(__gen_e_acsl_forall_21,"RTE","main", + "separated_guard: \\valid_read(&array_1[0 .. 3][0 .. 2][0])", + "tests/memory/separated.c",63); + __gen_e_acsl_forall_23 = 1; + __gen_e_acsl_range_24 = 0; + while (1) { + if (__gen_e_acsl_range_24 <= 2) ; else break; + { + int __gen_e_acsl_forall_24; + int __gen_e_acsl_range_23; + __gen_e_acsl_forall_24 = 1; + __gen_e_acsl_range_23 = 3; + while (1) { + if (__gen_e_acsl_range_23 <= 5) ; else break; + { + int __gen_e_acsl_valid_read_58; + __gen_e_acsl_valid_read_58 = __e_acsl_valid_read((void *)(& array_1[__gen_e_acsl_range_23][__gen_e_acsl_range_24][0]), + sizeof(double), + (void *)(& array_1[__gen_e_acsl_range_23][__gen_e_acsl_range_24][0]), + (void *)0); + if (__gen_e_acsl_valid_read_58) ; + else { + __gen_e_acsl_forall_24 = 0; + goto e_acsl_end_loop23; + } + } + __gen_e_acsl_range_23 ++; + } + e_acsl_end_loop23: ; + if (__gen_e_acsl_forall_24) ; + else { + __gen_e_acsl_forall_23 = 0; + goto e_acsl_end_loop24; + } + } + __gen_e_acsl_range_24 ++; + } + e_acsl_end_loop24: ; + /*@ assert + E_ACSL: separated_guard: \valid_read(&array_1[3 .. 5][0 .. 2][0]); + */ + __e_acsl_assert(__gen_e_acsl_forall_23,"RTE","main", + "separated_guard: \\valid_read(&array_1[3 .. 5][0 .. 2][0])", + "tests/memory/separated.c",63); + __gen_e_acsl_forall_25 = 1; + __gen_e_acsl_range_26 = 0; + while (1) { + if (__gen_e_acsl_range_26 <= 2) ; else break; + { + int __gen_e_acsl_forall_26; + int __gen_e_acsl_range_25; + __gen_e_acsl_forall_26 = 1; + __gen_e_acsl_range_25 = 3; + while (1) { + if (__gen_e_acsl_range_25 <= 5) ; else break; + { + int __gen_e_acsl_forall_27; + int __gen_e_acsl_range_28; + __gen_e_acsl_forall_27 = 1; + __gen_e_acsl_range_28 = 0; + while (1) { + if (__gen_e_acsl_range_28 <= 2) ; else break; + { + int __gen_e_acsl_forall_28; + int __gen_e_acsl_range_27; + __gen_e_acsl_forall_28 = 1; + __gen_e_acsl_range_27 = 0; + while (1) { + if (__gen_e_acsl_range_27 <= 3) ; else break; + { + int __gen_e_acsl_valid_read_59; + int __gen_e_acsl_valid_read_60; + int __gen_e_acsl_separated_22; + __gen_e_acsl_valid_read_59 = __e_acsl_valid_read + ((void *)(& array_1[__gen_e_acsl_range_27][__gen_e_acsl_range_28][0]), + sizeof(double), + (void *)(& array_1[__gen_e_acsl_range_27][__gen_e_acsl_range_28][0]), + (void *)0); + /*@ assert + E_ACSL: separated_guard: + \valid_read(&array_1[range_27][range_28][0]); + */ + __e_acsl_assert(__gen_e_acsl_valid_read_59,"RTE", + "main", + "separated_guard: \\valid_read(&array_1[range_27][range_28][0])", + "tests/memory/separated.c",63); + __gen_e_acsl_valid_read_60 = __e_acsl_valid_read + ((void *)(& array_1[__gen_e_acsl_range_25][__gen_e_acsl_range_26][0]), + sizeof(double), + (void *)(& array_1[__gen_e_acsl_range_25][__gen_e_acsl_range_26][0]), + (void *)0); + /*@ assert + E_ACSL: separated_guard: + \valid_read(&array_1[range_25][range_26][0]); + */ + __e_acsl_assert(__gen_e_acsl_valid_read_60,"RTE", + "main", + "separated_guard: \\valid_read(&array_1[range_25][range_26][0])", + "tests/memory/separated.c",63); + __gen_e_acsl_separated_22 = __e_acsl_separated((size_t)2, + & array_1[__gen_e_acsl_range_27][__gen_e_acsl_range_28][0], + sizeof(double), + & array_1[__gen_e_acsl_range_25][__gen_e_acsl_range_26][0], + sizeof(double)); + if (__gen_e_acsl_separated_22) ; + else { + __gen_e_acsl_forall_28 = 0; + goto e_acsl_end_loop25; + } + } + __gen_e_acsl_range_27 ++; + } + e_acsl_end_loop25: ; + if (__gen_e_acsl_forall_28) ; + else { + __gen_e_acsl_forall_27 = 0; + goto e_acsl_end_loop26; + } + } + __gen_e_acsl_range_28 ++; + } + e_acsl_end_loop26: ; + if (__gen_e_acsl_forall_27) ; + else { + __gen_e_acsl_forall_26 = 0; + goto e_acsl_end_loop27; + } + } + __gen_e_acsl_range_25 ++; + } + e_acsl_end_loop27: ; + if (__gen_e_acsl_forall_26) ; + else { + __gen_e_acsl_forall_25 = 0; + goto e_acsl_end_loop28; + } + } + __gen_e_acsl_range_26 ++; + } + e_acsl_end_loop28: ; + __e_acsl_assert(! __gen_e_acsl_forall_25,"Assertion","main", + "!\\separated(&array_1[0 .. 3][0 .. 2][0], &array_1[3 .. 5][0 .. 2][0])", + "tests/memory/separated.c",63); + } + /*@ + assert + ¬\separated(&array_1[0 .. 3][0 .. 2][0], &array_1[3 .. 5][0 .. 2][0]); + */ + ; + { + int __gen_e_acsl_forall_29; + int __gen_e_acsl_range_32; + int __gen_e_acsl_forall_31; + int __gen_e_acsl_range_34; + /*@ assert + E_ACSL: separated_guard: \valid_read(&array_1[0 .. 3][2 .. 0][0]); + */ + __e_acsl_assert(1,"RTE","main", + "separated_guard: \\valid_read(&array_1[0 .. 3][2 .. 0][0])", + "tests/memory/separated.c",64); + __gen_e_acsl_forall_29 = 1; + __gen_e_acsl_range_32 = 0; + while (1) { + if (__gen_e_acsl_range_32 <= 2) ; else break; + { + int __gen_e_acsl_forall_30; + int __gen_e_acsl_range_31; + __gen_e_acsl_forall_30 = 1; + __gen_e_acsl_range_31 = 3; + while (1) { + if (__gen_e_acsl_range_31 <= 5) ; else break; + { + int __gen_e_acsl_valid_read_61; + __gen_e_acsl_valid_read_61 = __e_acsl_valid_read((void *)(& array_1[__gen_e_acsl_range_31][__gen_e_acsl_range_32][0]), + sizeof(double), + (void *)(& array_1[__gen_e_acsl_range_31][__gen_e_acsl_range_32][0]), + (void *)0); + if (__gen_e_acsl_valid_read_61) ; + else { + __gen_e_acsl_forall_30 = 0; + goto e_acsl_end_loop29; + } + } + __gen_e_acsl_range_31 ++; + } + e_acsl_end_loop29: ; + if (__gen_e_acsl_forall_30) ; + else { + __gen_e_acsl_forall_29 = 0; + goto e_acsl_end_loop30; + } + } + __gen_e_acsl_range_32 ++; + } + e_acsl_end_loop30: ; + /*@ assert + E_ACSL: separated_guard: \valid_read(&array_1[3 .. 5][0 .. 2][0]); + */ + __e_acsl_assert(__gen_e_acsl_forall_29,"RTE","main", + "separated_guard: \\valid_read(&array_1[3 .. 5][0 .. 2][0])", + "tests/memory/separated.c",64); + __gen_e_acsl_forall_31 = 1; + __gen_e_acsl_range_34 = 0; + while (1) { + if (__gen_e_acsl_range_34 <= 2) ; else break; + { + int __gen_e_acsl_forall_32; + int __gen_e_acsl_range_33; + __gen_e_acsl_forall_32 = 1; + __gen_e_acsl_range_33 = 3; + while (1) { + if (__gen_e_acsl_range_33 <= 5) ; else break; + if (1) ; + else { + __gen_e_acsl_forall_32 = 0; + goto e_acsl_end_loop31; + } + __gen_e_acsl_range_33 ++; + } + e_acsl_end_loop31: ; + if (__gen_e_acsl_forall_32) ; + else { + __gen_e_acsl_forall_31 = 0; + goto e_acsl_end_loop32; + } + } + __gen_e_acsl_range_34 ++; + } + e_acsl_end_loop32: ; + __e_acsl_assert(__gen_e_acsl_forall_31,"Assertion","main", + "\\separated(&array_1[0 .. 3][2 .. 0][0], &array_1[3 .. 5][0 .. 2][0])", + "tests/memory/separated.c",64); + } + /*@ + assert + \separated(&array_1[0 .. 3][2 .. 0][0], &array_1[3 .. 5][0 .. 2][0]); */ + ; + __e_acsl_delete_block((void *)(array_1)); + } __retres = 0; __e_acsl_memory_clean(); return __retres; diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/ranges_in_builtins.res.oracle b/src/plugins/e-acsl/tests/memory/oracle_ci/ranges_in_builtins.res.oracle index 74e130d7182ee876c8f3b1bc3fb688967cb221a4..c4eecf13293934aa893ac8472a4b90df152140b2 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/ranges_in_builtins.res.oracle +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/ranges_in_builtins.res.oracle @@ -1,5 +1,5 @@ [e-acsl] beginning translation. -[e-acsl] tests/memory/ranges_in_builtins.c:64: Warning: +[e-acsl] tests/memory/ranges_in_builtins.c:67: Warning: E-ACSL construct `arithmetic over set of pointers or arrays' is not yet supported. Ignoring annotation. @@ -8,13 +8,15 @@ function __e_acsl_assert: precondition got status unknown. [eva:alarm] tests/memory/ranges_in_builtins.c:8: Warning: function __gmpz_init_set: precondition ¬\initialized(z) got status unknown. -[eva:alarm] tests/memory/ranges_in_builtins.c:8: Warning: - function __gmpz_init_set: precondition ¬\initialized(z) got status unknown. [eva:alarm] tests/memory/ranges_in_builtins.c:8: Warning: function __e_acsl_assert: precondition got status unknown. [eva:alarm] tests/memory/ranges_in_builtins.c:8: Warning: function __e_acsl_assert: precondition got status unknown. [eva:alarm] tests/memory/ranges_in_builtins.c:49: Warning: function __e_acsl_assert: precondition got status unknown. -[eva:alarm] tests/memory/ranges_in_builtins.c:54: Warning: +[eva:alarm] tests/memory/ranges_in_builtins.c:52: Warning: + function __e_acsl_assert: precondition got status unknown. +[eva:alarm] tests/memory/ranges_in_builtins.c:52: Warning: + assertion got status unknown. +[eva:alarm] tests/memory/ranges_in_builtins.c:57: Warning: accessing uninitialized left-value. assert \initialized(&s.b); diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/separated.res.oracle b/src/plugins/e-acsl/tests/memory/oracle_ci/separated.res.oracle index beb1260483ced4c4fd7fec20e74713d99c944702..dd7095867a867791209b2f41797c646d32ef2dcc 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/separated.res.oracle +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/separated.res.oracle @@ -14,13 +14,13 @@ function __e_acsl_assert: precondition got status unknown. [eva:alarm] tests/memory/separated.c:25: Warning: function __e_acsl_assert: precondition got status unknown. -[eva:alarm] tests/memory/separated.c:34: Warning: +[eva:alarm] tests/memory/separated.c:26: Warning: function __e_acsl_assert: precondition got status unknown. -[eva:alarm] tests/memory/separated.c:35: Warning: +[eva:alarm] tests/memory/separated.c:27: Warning: function __e_acsl_assert: precondition got status unknown. -[eva:alarm] tests/memory/separated.c:44: Warning: +[eva:alarm] tests/memory/separated.c:36: Warning: function __e_acsl_assert: precondition got status unknown. -[eva:alarm] tests/memory/separated.c:45: Warning: +[eva:alarm] tests/memory/separated.c:37: Warning: function __e_acsl_assert: precondition got status unknown. [eva:alarm] tests/memory/separated.c:46: Warning: function __e_acsl_assert: precondition got status unknown. @@ -28,3 +28,33 @@ function __e_acsl_assert: precondition got status unknown. [eva:alarm] tests/memory/separated.c:48: Warning: function __e_acsl_assert: precondition got status unknown. +[eva:alarm] tests/memory/separated.c:49: Warning: + function __e_acsl_assert: precondition got status unknown. +[eva:alarm] tests/memory/separated.c:50: Warning: + function __e_acsl_assert: precondition got status unknown. +[eva:alarm] tests/memory/separated.c:51: Warning: + function __e_acsl_assert: precondition got status unknown. +[eva:alarm] tests/memory/separated.c:52: Warning: + function __e_acsl_assert: precondition got status unknown. +[eva:alarm] tests/memory/separated.c:60: Warning: + function __e_acsl_assert: precondition got status unknown. +[eva:alarm] tests/memory/separated.c:60: Warning: + assertion 'E_ACSL,separated_guard' got status unknown. +[eva:alarm] tests/memory/separated.c:61: Warning: + function __e_acsl_assert: precondition got status unknown. +[eva:alarm] tests/memory/separated.c:61: Warning: + assertion 'E_ACSL,separated_guard' got status unknown. +[eva:alarm] tests/memory/separated.c:62: Warning: + function __e_acsl_assert: precondition got status unknown. +[eva:alarm] tests/memory/separated.c:62: Warning: + assertion 'E_ACSL,separated_guard' got status unknown. +[eva:alarm] tests/memory/separated.c:62: Warning: assertion got status unknown. +[eva:alarm] tests/memory/separated.c:63: Warning: + function __e_acsl_assert: precondition got status unknown. +[eva:alarm] tests/memory/separated.c:63: Warning: + assertion 'E_ACSL,separated_guard' got status unknown. +[eva:alarm] tests/memory/separated.c:63: Warning: + function __e_acsl_assert: precondition got status unknown. +[eva:alarm] tests/memory/separated.c:63: Warning: assertion got status unknown. +[eva:alarm] tests/memory/separated.c:64: Warning: + function __e_acsl_assert: precondition got status unknown. diff --git a/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_memcpy.c b/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_memcpy.c index 3b0511fa9b1b81d990817fb3c5eb74072f572a8d..202dc5fc2e2511398bc35cb4db26897e44e77296 100644 --- a/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_memcpy.c +++ b/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_memcpy.c @@ -432,16 +432,109 @@ void *__gen_e_acsl_memcpy(void * __restrict dest, { void *__gen_e_acsl_at; void *__retres; - __e_acsl_store_block((void *)(& dest),(size_t)8); - __e_acsl_temporal_pull_parameter((void *)(& dest),0U,8UL); - __e_acsl_temporal_reset_parameters(); - __e_acsl_temporal_reset_return(); - __e_acsl_temporal_save_nreferent_parameter((void *)(& dest),0U); - __e_acsl_temporal_memcpy(dest,(void *)src,n); + { + unsigned long __gen_e_acsl_size; + __e_acsl_mpz_t __gen_e_acsl_n; + __e_acsl_mpz_t __gen_e_acsl_; + __e_acsl_mpz_t __gen_e_acsl_sub; + __e_acsl_mpz_t __gen_e_acsl__2; + __e_acsl_mpz_t __gen_e_acsl_sub_2; + __e_acsl_mpz_t __gen_e_acsl_add; + unsigned long __gen_e_acsl__3; + unsigned long __gen_e_acsl_if; + int __gen_e_acsl_valid_read; + unsigned long __gen_e_acsl_size_2; + unsigned long __gen_e_acsl__4; + unsigned long __gen_e_acsl_if_2; + int __gen_e_acsl_valid_read_2; + unsigned long __gen_e_acsl_size_3; + unsigned long __gen_e_acsl__5; + unsigned long __gen_e_acsl_if_3; + unsigned long __gen_e_acsl_size_4; + unsigned long __gen_e_acsl__6; + unsigned long __gen_e_acsl_if_4; + int __gen_e_acsl_separated; + __e_acsl_store_block((void *)(& src),(size_t)8); + __e_acsl_store_block((void *)(& dest),(size_t)8); + __e_acsl_temporal_pull_parameter((void *)(& dest),0U,8UL); + __e_acsl_temporal_pull_parameter((void *)(& src),1U,8UL); + __gmpz_init_set_ui(__gen_e_acsl_n,n); + __gmpz_init_set_si(__gen_e_acsl_,1L); + __gmpz_init(__gen_e_acsl_sub); + __gmpz_sub(__gen_e_acsl_sub, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_n), + (__e_acsl_mpz_struct const *)(__gen_e_acsl_)); + __gmpz_init_set_si(__gen_e_acsl__2,0L); + __gmpz_init(__gen_e_acsl_sub_2); + __gmpz_sub(__gen_e_acsl_sub_2, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_sub), + (__e_acsl_mpz_struct const *)(__gen_e_acsl__2)); + __gmpz_init(__gen_e_acsl_add); + __gmpz_add(__gen_e_acsl_add, + (__e_acsl_mpz_struct const *)(__gen_e_acsl_sub_2), + (__e_acsl_mpz_struct const *)(__gen_e_acsl_)); + __gen_e_acsl__3 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_add)); + __gen_e_acsl_size = 1UL * __gen_e_acsl__3; + if (__gen_e_acsl_size <= 0UL) __gen_e_acsl_if = 0UL; + else __gen_e_acsl_if = __gen_e_acsl_size; + __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)((char *)dest + + 1 * 0), + __gen_e_acsl_if,dest, + (void *)(& dest)); + /*@ assert + E_ACSL: separated_guard: \valid_read((char *)dest + (0 .. n - 1)); + */ + __e_acsl_assert(__gen_e_acsl_valid_read,"RTE","memcpy", + "separated_guard: \\valid_read((char *)dest + (0 .. n - 1))", + "FRAMAC_SHARE/libc/string.h",95); + __gen_e_acsl__4 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_add)); + __gen_e_acsl_size_2 = 1UL * __gen_e_acsl__4; + if (__gen_e_acsl_size_2 <= 0UL) __gen_e_acsl_if_2 = 0UL; + else __gen_e_acsl_if_2 = __gen_e_acsl_size_2; + __gen_e_acsl_valid_read_2 = __e_acsl_valid_read((void *)((char *)src + + 1 * 0), + __gen_e_acsl_if_2, + (void *)src, + (void *)(& src)); + /*@ assert + E_ACSL: separated_guard: \valid_read((char *)src + (0 .. n - 1)); + */ + __e_acsl_assert(__gen_e_acsl_valid_read_2,"RTE","memcpy", + "separated_guard: \\valid_read((char *)src + (0 .. n - 1))", + "FRAMAC_SHARE/libc/string.h",95); + __gen_e_acsl__5 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_add)); + __gen_e_acsl_size_3 = 1UL * __gen_e_acsl__5; + if (__gen_e_acsl_size_3 <= 0UL) __gen_e_acsl_if_3 = 0UL; + else __gen_e_acsl_if_3 = __gen_e_acsl_size_3; + __gen_e_acsl__6 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_add)); + __gen_e_acsl_size_4 = 1UL * __gen_e_acsl__6; + if (__gen_e_acsl_size_4 <= 0UL) __gen_e_acsl_if_4 = 0UL; + else __gen_e_acsl_if_4 = __gen_e_acsl_size_4; + __gen_e_acsl_separated = __e_acsl_separated((size_t)2, + (char *)dest + 1 * 0, + __gen_e_acsl_if_3, + (char *)src + 1 * 0, + __gen_e_acsl_if_4); + __e_acsl_assert(__gen_e_acsl_separated,"Precondition","memcpy", + "\\separated((char *)dest + (0 .. n - 1), (char *)src + (0 .. n - 1))", + "FRAMAC_SHARE/libc/string.h",95); + __e_acsl_temporal_reset_parameters(); + __e_acsl_temporal_reset_return(); + __e_acsl_temporal_save_nreferent_parameter((void *)(& dest),0U); + __e_acsl_temporal_save_nreferent_parameter((void *)(& src),1U); + __e_acsl_temporal_memcpy(dest,(void *)src,n); + __gmpz_clear(__gen_e_acsl_n); + __gmpz_clear(__gen_e_acsl_); + __gmpz_clear(__gen_e_acsl_sub); + __gmpz_clear(__gen_e_acsl__2); + __gmpz_clear(__gen_e_acsl_sub_2); + __gmpz_clear(__gen_e_acsl_add); + } __gen_e_acsl_at = dest; __retres = memcpy(dest,src,n); __e_acsl_assert(__retres == __gen_e_acsl_at,"Postcondition","memcpy", "\\result == \\old(dest)","FRAMAC_SHARE/libc/string.h",99); + __e_acsl_delete_block((void *)(& src)); __e_acsl_delete_block((void *)(& dest)); return __retres; } diff --git a/src/plugins/e-acsl/tests/temporal/oracle_ci/t_memcpy.res.oracle b/src/plugins/e-acsl/tests/temporal/oracle_ci/t_memcpy.res.oracle index 101a07c7fb68b6985cbe8896de359855582c12bd..e91a2fc3fa0ca04f001d5e2fd86af2e94f0cb603 100644 --- a/src/plugins/e-acsl/tests/temporal/oracle_ci/t_memcpy.res.oracle +++ b/src/plugins/e-acsl/tests/temporal/oracle_ci/t_memcpy.res.oracle @@ -5,8 +5,6 @@ [e-acsl] Warning: annotating undefined function `memset': the generated program may miss memory instrumentation if there are memory-related annotations. -[e-acsl] FRAMAC_SHARE/libc/string.h:92: Warning: - E-ACSL construct `\separated' is not yet supported. Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/string.h:115: Warning: E-ACSL construct `logic functions with labels' is not yet supported. Ignoring annotation. @@ -22,8 +20,6 @@ [e-acsl] FRAMAC_SHARE/libc/string.h:93: Warning: E-ACSL construct `logic functions with labels' is not yet supported. Ignoring annotation. -[e-acsl] FRAMAC_SHARE/libc/string.h:95: Warning: - E-ACSL construct `\separated' is not yet supported. Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/string.h:92: Warning: E-ACSL construct `assigns clause in behavior' is not yet supported. Ignoring annotation. @@ -32,6 +28,8 @@ is not yet supported. Ignoring annotation. [e-acsl] translation done in project "e-acsl". +[eva:alarm] FRAMAC_SHARE/libc/string.h:95: Warning: + function __e_acsl_assert: precondition got status unknown. [eva:alarm] FRAMAC_SHARE/libc/string.h:98: Warning: function __gen_e_acsl_memcpy: postcondition 'copied_contents' got status unknown. [eva:alarm] FRAMAC_SHARE/libc/string.h:118: Warning: