diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_mainargs.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_mainargs.c index cb9e2c5662cc9c03f14a4df0b1d00c07585d11f2..0e669f9d45241b210c1f25cf89653692f1ac1e94 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_mainargs.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_mainargs.c @@ -136,7 +136,8 @@ axiomatic MemCmp { */ /*@ axiomatic MemChr { - logic 𔹠memchr{L}(char *s, ℤ c, ℤ n) ; + logic 𔹠memchr{L}(char *s, ℤ c, ℤ n) + reads *(s+(0 .. n-1)); axiom memchr_def{L}: ∀ char *s; @@ -149,7 +150,8 @@ axiomatic MemChr { */ /*@ axiomatic MemSet { - logic 𔹠memset{L}(char *s, ℤ c, ℤ n) ; + logic 𔹠memset{L}(char *s, ℤ c, ℤ n) + reads *(s+(0 .. n-1)); axiom memset_def{L}: ∀ char *s; @@ -162,7 +164,8 @@ axiomatic MemSet { */ /*@ axiomatic StrLen { - logic ℤ strlen{L}(char *s) ; + logic ℤ strlen{L}(char *s) + reads *(s+(0 ..)); axiom strlen_pos_or_null{L}: ∀ char *s; @@ -237,7 +240,8 @@ axiomatic StrLen { */ /*@ axiomatic StrCmp { - logic ℤ strcmp{L}(char *s1, char *s2) ; + logic ℤ strcmp{L}(char *s1, char *s2) + reads *(s1+(0 .. strlen{L}(s1))), *(s2+(0 .. strlen{L}(s2))); axiom strcmp_zero{L}: ∀ char *s1, char *s2; @@ -249,7 +253,8 @@ axiomatic StrCmp { */ /*@ axiomatic StrNCmp { - logic ℤ strncmp{L}(char *s1, char *s2, ℤ n) ; + logic ℤ strncmp{L}(char *s1, char *s2, ℤ n) + reads *(s1+(0 .. n-1)), *(s2+(0 .. n-1)); axiom strncmp_zero{L}: ∀ char *s1, char *s2; @@ -262,7 +267,8 @@ axiomatic StrNCmp { */ /*@ axiomatic StrChr { - logic 𔹠strchr{L}(char *s, ℤ c) ; + logic 𔹠strchr{L}(char *s, ℤ c) + reads *(s+(0 .. strlen{L}(s))); axiom strchr_def{L}: ∀ char *s; @@ -274,7 +280,8 @@ axiomatic StrChr { */ /*@ axiomatic WcsLen { - logic ℤ wcslen{L}(wchar_t *s) ; + logic ℤ wcslen{L}(wchar_t *s) + reads *(s+(0 ..)); axiom wcslen_pos_or_null{L}: ∀ wchar_t *s; @@ -324,7 +331,8 @@ axiomatic WcsLen { */ /*@ axiomatic WcsCmp { - logic ℤ wcscmp{L}(wchar_t *s1, wchar_t *s2) ; + logic ℤ wcscmp{L}(wchar_t *s1, wchar_t *s2) + reads *(s1+(0 .. wcslen{L}(s1))), *(s2+(0 .. wcslen{L}(s2))); axiom wcscmp_zero{L}: ∀ wchar_t *s1, wchar_t *s2; @@ -336,7 +344,8 @@ axiomatic WcsCmp { */ /*@ axiomatic WcsNCmp { - logic ℤ wcsncmp{L}(wchar_t *s1, wchar_t *s2, ℤ n) ; + logic ℤ wcsncmp{L}(wchar_t *s1, wchar_t *s2, ℤ n) + reads *(s1+(0 .. n-1)), *(s2+(0 .. n-1)); axiom wcsncmp_zero{L}: ∀ wchar_t *s1, wchar_t *s2; diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_mainargs2.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_mainargs2.c index cec8ad6df9f721c28b6d8e94247eea43de3b2b7a..5af50703b3d18eca6c754877a78efdba183a27ff 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_mainargs2.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_mainargs2.c @@ -177,7 +177,8 @@ axiomatic MemCmp { */ /*@ axiomatic MemChr { - logic 𔹠memchr{L}(char *s, ℤ c, ℤ n) ; + logic 𔹠memchr{L}(char *s, ℤ c, ℤ n) + reads *(s+(0 .. n-1)); axiom memchr_def{L}: ∀ char *s; @@ -190,7 +191,8 @@ axiomatic MemChr { */ /*@ axiomatic MemSet { - logic 𔹠memset{L}(char *s, ℤ c, ℤ n) ; + logic 𔹠memset{L}(char *s, ℤ c, ℤ n) + reads *(s+(0 .. n-1)); axiom memset_def{L}: ∀ char *s; @@ -203,7 +205,8 @@ axiomatic MemSet { */ /*@ axiomatic StrLen { - logic ℤ strlen{L}(char *s) ; + logic ℤ strlen{L}(char *s) + reads *(s+(0 ..)); axiom strlen_pos_or_null{L}: ∀ char *s; @@ -278,7 +281,8 @@ axiomatic StrLen { */ /*@ axiomatic StrCmp { - logic ℤ strcmp{L}(char *s1, char *s2) ; + logic ℤ strcmp{L}(char *s1, char *s2) + reads *(s1+(0 .. strlen{L}(s1))), *(s2+(0 .. strlen{L}(s2))); axiom strcmp_zero{L}: ∀ char *s1, char *s2; @@ -290,7 +294,8 @@ axiomatic StrCmp { */ /*@ axiomatic StrNCmp { - logic ℤ strncmp{L}(char *s1, char *s2, ℤ n) ; + logic ℤ strncmp{L}(char *s1, char *s2, ℤ n) + reads *(s1+(0 .. n-1)), *(s2+(0 .. n-1)); axiom strncmp_zero{L}: ∀ char *s1, char *s2; @@ -303,7 +308,8 @@ axiomatic StrNCmp { */ /*@ axiomatic StrChr { - logic 𔹠strchr{L}(char *s, ℤ c) ; + logic 𔹠strchr{L}(char *s, ℤ c) + reads *(s+(0 .. strlen{L}(s))); axiom strchr_def{L}: ∀ char *s; @@ -315,7 +321,8 @@ axiomatic StrChr { */ /*@ axiomatic WcsLen { - logic ℤ wcslen{L}(wchar_t *s) ; + logic ℤ wcslen{L}(wchar_t *s) + reads *(s+(0 ..)); axiom wcslen_pos_or_null{L}: ∀ wchar_t *s; @@ -365,7 +372,8 @@ axiomatic WcsLen { */ /*@ axiomatic WcsCmp { - logic ℤ wcscmp{L}(wchar_t *s1, wchar_t *s2) ; + logic ℤ wcscmp{L}(wchar_t *s1, wchar_t *s2) + reads *(s1+(0 .. wcslen{L}(s1))), *(s2+(0 .. wcslen{L}(s2))); axiom wcscmp_zero{L}: ∀ wchar_t *s1, wchar_t *s2; @@ -377,7 +385,8 @@ axiomatic WcsCmp { */ /*@ axiomatic WcsNCmp { - logic ℤ wcsncmp{L}(wchar_t *s1, wchar_t *s2, ℤ n) ; + logic ℤ wcsncmp{L}(wchar_t *s1, wchar_t *s2, ℤ n) + reads *(s1+(0 .. n-1)), *(s2+(0 .. n-1)); axiom wcsncmp_zero{L}: ∀ wchar_t *s1, wchar_t *s2;