Skip to content

pointer checks are now fatal #8316

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jun 14, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
CORE
pointer_subtraction.c
--no-signed-overflow-check --trace
--no-signed-overflow-check --trace --no-pointer-check
\[main\.assertion\.1\] line \d+ expected failure after pointer manipulation: FAILURE
\[main\.assertion\.2\] line \d+ expected successful after pointer manipulation: SUCCESS
\[main\.assertion\.3\] line \d+ expected failure after pointer manipulation: FAILURE
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
CORE
pointers_assume.c
--trace
--trace --no-pointer-check
\[main\.assertion\.1\] line \d+ x == y: expected failure: FAILURE
\[main\.assertion\.2\] line \d+ z >= x: expected successful: SUCCESS
\[main\.assertion\.3\] line \d+ z <= y: expected successful: SUCCESS
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ invalid_index_range.c
^EXIT=10$
^SIGNAL=0$
^VERIFICATION FAILED$
\[main\.assertion\.1\] line 9 assertion __CPROVER_exists \{ int i; \(0 <= i && i < 20\) && a\[i\] == i \*i \}: SUCCESS
^\[main\.assertion\.1\] line 9 assertion __CPROVER_exists \{ int i; \(0 <= i && i < 20\) && a\[i\] == i \*i \}: UNKNOWN$
line 9 dereference failure: pointer outside object bounds in a\[(\(signed (long|long long) int\))?i\]: FAILURE
--
--
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ smt_missing_range_check.c
^EXIT=10$
^SIGNAL=0$
^VERIFICATION FAILED$
\[main\.assertion\.1\] line \d assertion __CPROVER_exists \{ int i; a\[i\] == i \*i \}: SUCCESS
\[main\.pointer_dereference\.11\] line \d dereference failure: pointer outside object bounds in a\[(\(signed (long|long long) int\))?i\]: FAILURE
^\[main\.assertion\.1\] line \d assertion __CPROVER_exists \{ int i; a\[i\] == i \*i \}: UNKNOWN$
^\[main\.pointer_dereference\.11\] line \d dereference failure: pointer outside object bounds in a\[(\(signed (long|long long) int\))?i\]: FAILURE$
--
--
Check that memory checks fail for pointer dereferences inside an existential
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@ test_malloc_less_than_bound.c
--no-malloc-may-fail --pointer-check
^EXIT=10$
^SIGNAL=0$
\[main\.assertion\.2\] line \d+ assertion __CPROVER_forall \{ int i ; \(0 <= i && i < 10\) ==> \*\(a\+i\) == \*\(a\+i\) \}: SUCCESS
\[main\.pointer_dereference\.7\] line \d+ dereference failure: pointer NULL in a\[(\(signed (long|long long) int\))?i\]: SUCCESS
\[main\.pointer_dereference\.8\] line \d+ dereference failure: pointer invalid in a\[(\(signed (long|long long) int\))?i\]: SUCCESS
\[main\.pointer_dereference\.9\] line \d+ dereference failure: deallocated dynamic object in a\[(\(signed (long|long long) int\))?i\]: SUCCESS
\[main\.pointer_dereference\.10\] line \d+ dereference failure: dead object in a\[(\(signed (long|long long) int\))?i\]: SUCCESS
\[main\.pointer_dereference\.11\] line \d+ dereference failure: pointer outside object bounds in a\[(\(signed (long|long long) int\))?i\]: FAILURE
\[main\.pointer_dereference\.12\] line \d+ dereference failure: invalid integer address in a\[(\(signed (long|long long) int\))?i\]: SUCCESS
^\[main\.assertion\.2\] line \d+ assertion __CPROVER_forall \{ int i ; \(0 <= i && i < 10\) ==> \*\(a\+i\) == \*\(a\+i\) \}: UNKNOWN$
^\[main\.pointer_dereference\.7\] line \d+ dereference failure: pointer NULL in a\[(\(signed (long|long long) int\))?i\]: SUCCESS$
^\[main\.pointer_dereference\.8\] line \d+ dereference failure: pointer invalid in a\[(\(signed (long|long long) int\))?i\]: SUCCESS$
^\[main\.pointer_dereference\.9\] line \d+ dereference failure: deallocated dynamic object in a\[(\(signed (long|long long) int\))?i\]: SUCCESS$
^\[main\.pointer_dereference\.10\] line \d+ dereference failure: dead object in a\[(\(signed (long|long long) int\))?i\]: SUCCESS$
^\[main\.pointer_dereference\.11\] line \d+ dereference failure: pointer outside object bounds in a\[(\(signed (long|long long) int\))?i\]: FAILURE$
^\[main\.pointer_dereference\.12\] line \d+ dereference failure: invalid integer address in a\[(\(signed (long|long long) int\))?i\]: UNKNOWN$
^VERIFICATION FAILED$
--
--
Expand Down
2 changes: 1 addition & 1 deletion regression/cbmc/Function_Pointer18/test.desc
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
CORE
main.c

--no-pointer-check
^EXIT=10$
^SIGNAL=0$
\[f2.assertion.1\] line [0-9]+ assertion 0: SUCCESS
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
CORE
main.c
--function foo
--function foo --no-pointer-check
^\[foo.assertion.\d+\] line \d+ assertion other_function\(4\) == 5: FAILURE$
^\[foo.assertion.\d+\] line \d+ assertion other_function\(4\) == 4: SUCCESS$
^EXIT=10$
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
CORE
main.c
--function foo
--function foo --no-pointer-check
^\[foo.assertion.\d+\] line \d+ assertion other_function\(4\) == 5: FAILURE$
^\[foo.assertion.\d+\] line \d+ assertion other_function\(4\) >= 4: SUCCESS$
^EXIT=10$
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
CORE
test.c

--no-pointer-check
^VERIFICATION FAILED$
^\[main.assertion\.1\] line 16.*SUCCESS$
^\[main.assertion\.2\] line 17.*FAILURE$
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
CORE
test.c

--no-pointer-check
^VERIFICATION FAILED$
^\[main.assertion\.1\] line 9.*SUCCESS$
^\[main.assertion\.2\] line 10.*FAILURE$
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
CORE
test.c

--no-pointer-check
^VERIFICATION FAILED$
^\[main.assertion\.1\] line 10.*SUCCESS$
^\[main.assertion\.2\] line 11.*FAILURE$
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
CORE
test.c

--no-pointer-check
^VERIFICATION FAILED$
^\[main.assertion\.1\] line 11.*SUCCESS$
^\[main.assertion\.2\] line 12.*FAILURE$
Expand Down
2 changes: 1 addition & 1 deletion regression/cbmc/byte_update14/test.desc
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
CORE
test.c

--no-pointer-check
^VERIFICATION FAILED$
^\[main.assertion\.1\] line 10.*SUCCESS$
^\[main.assertion\.2\] line 11.*FAILURE$
Expand Down
2 changes: 1 addition & 1 deletion regression/cbmc/memory_allocation1/test.desc
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ main.c
^\[main\.pointer_dereference\.2\] .* dereference failure: invalid integer address in \*p: SUCCESS$
^\[main\.assertion\.1\] .* assertion \*p==42: SUCCESS$
^\[main\.pointer_dereference\.[0-9]+\] .* dereference failure: invalid integer address in p\[.*1\]: FAILURE$
^\[main\.assertion\.2\] .* assertion \*\(p\+1\)==42: SUCCESS$
^\[main\.assertion\.2\] .* assertion \*\(p\+1\)==42: UNKNOWN$
^VERIFICATION FAILED$
--
^warning: ignoring
Expand Down
8 changes: 4 additions & 4 deletions regression/cbmc/pointer-extra-checks/test.desc
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@ main.c
^EXIT=10$
^SIGNAL=0$
^\[main.pointer_dereference.1\] .* dereference failure: pointer NULL in \*p: FAILURE$
^\[main.pointer_dereference.2\] .* dereference failure: dead object in \*q: SUCCESS$
^\[main.pointer_dereference.3\] .* dereference failure: pointer outside object bounds in \*q: SUCCESS$
^\[main.pointer_dereference.4\] .* dereference failure: deallocated dynamic object in \*r: SUCCESS$
^\[main.pointer_dereference.5\] .* dereference failure: pointer outside dynamic object bounds in \*r: SUCCESS$
^\[main.pointer_dereference.2\] .* dereference failure: dead object in \*q: UNKNOWN$
^\[main.pointer_dereference.3\] .* dereference failure: pointer outside object bounds in \*q: UNKNOWN$
^\[main.pointer_dereference.4\] .* dereference failure: deallocated dynamic object in \*r: UNKNOWN$
^\[main.pointer_dereference.5\] .* dereference failure: pointer outside dynamic object bounds in \*r: UNKNOWN$
^\[main.pointer_dereference.6\] .* dereference failure: pointer NULL in \*s: FAILURE$
^\[main.pointer_dereference.7\] .* dereference failure: pointer invalid in \*s: FAILURE$
^\[main.pointer_dereference.8\] .* dereference failure: deallocated dynamic object in \*s: FAILURE$
Expand Down
4 changes: 2 additions & 2 deletions regression/cbmc/ptr_arithmetic_on_null/test.desc
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ main.c
^\[main.assertion.1\] line .* assertion \(\(char \*\)NULL\) != \(char \*\)\(void \*\)0 \+ (\(.*\))?1: SUCCESS$
^\[main.assertion.2\] line .* assertion \(\(char \*\)NULL\) != \(char \*\)\(void \*\)0 - (\(.*\))?1: SUCCESS$
^\[main.assertion.3\] line .* assertion \(\(char \*\)NULL\) != \(char \*\)\(void \*\)0 \+ \(.*\)offset: SUCCESS$
^\[main.assertion.4\] line .* assertion \(char \*\)\(void \*\)0 - \(char \*\)\(void \*\)0 == (\(.*\))?0: SUCCESS$
^\[main.assertion.4\] line .* assertion \(char \*\)\(void \*\)0 - \(char \*\)\(void \*\)0 == (\(.*\))?0: UNKNOWN$
^\[main.assertion.5\] line .* assertion ptr - \(signed int \*\)\(void \*\)0 == (\(.*\))?0: FAILURE$
^\[main.assertion.6\] line .* assertion \(ptr - (\(.*\))?1\) \+ (\(.*\))?1 == \(\(.* \*\)NULL\): SUCCESS$
^\[main.assertion.6\] line .* assertion \(ptr - (\(.*\))?1\) \+ (\(.*\))?1 == \(\(.* \*\)NULL\): UNKNOWN$
^\[main.assertion.7\] line .* assertion \(ptr - (\(.*\))?1\) \+ (\(.*\))?1 == \(\(.* \*\)NULL\): FAILURE$
^EXIT=10$
^SIGNAL=0$
Expand Down
2 changes: 1 addition & 1 deletion regression/cbmc/switch8/test.desc
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ main.c
^\[main\.pointer_dereference\.1\] line 36 dereference failure: dead object in \*p: SUCCESS$
^\[main\.pointer_dereference\.2\] line 36 dereference failure: pointer outside object bounds in \*p: SUCCESS$
^\[main\.assertion\.3\] line 42 assertion \*p == 42: FAILURE$
^\[main\.pointer_dereference\.5\] line 42 dereference failure: pointer outside object bounds in \*p: SUCCESS$
^\[main\.pointer_dereference\.5\] line 42 dereference failure: pointer outside object bounds in \*p: UNKNOWN$
^\[main\.pointer_dereference\.3\] line 42 dereference failure: pointer NULL in \*p: SUCCESS$
^\[main\.pointer_dereference\.4\] line 42 dereference failure: dead object in \*p: FAILURE$
^\[main\.assertion\.4\] line 49 assertion e == 42: FAILURE$
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ main.c
^EXIT=10$
^SIGNAL=0$
^\[f2.assigns.\d+\] line \d+ Check that p->buf\[(\(.*\))?0\] is assignable: FAILURE$
^\[f2.assigns.\d+\] line \d+ Check that p->size is assignable: SUCCESS$
^\[f2.assigns.\d+\] line \d+ Check that p->size is assignable: UNKNOWN$
^VERIFICATION FAILED$
--
--
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
#include <stdbool.h>
#include <stdlib.h>

bool nz(int x)
{
Expand Down Expand Up @@ -46,6 +47,9 @@ int main()
old_y = y;

char *z = malloc(1);
if(z == NULL)
return;

*z = '0';

foo(a, &x, &y, z);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@ CORE
main.c
--dfcc main --replace-call-with-contract foo
^main.c function main$
^\[main\.assertion\.\d+\] line 55 a unchanged, expecting SUCCESS: SUCCESS$
^\[main\.assertion\.\d+\] line 57 x changed, expecting FAILURE: FAILURE$
^\[main\.assertion\.\d+\] line 59 x unchanged, expecting SUCCESS: SUCCESS$
^\[main\.assertion\.\d+\] line 62 y changed, expecting FAILURE: FAILURE$
^\[main\.assertion\.\d+\] line 64 y unchanged, expecting SUCCESS: SUCCESS$
^\[main\.assertion\.\d+\] line 67 z changed, expecting FAILURE: FAILURE$
^\[main\.assertion\.\d+\] line 69 z unchanged, expecting SUCCESS: SUCCESS$
^\[main\.assertion\.\d+\] line 59 a unchanged, expecting SUCCESS: SUCCESS$
^\[main\.assertion\.\d+\] line 61 x changed, expecting FAILURE: FAILURE$
^\[main\.assertion\.\d+\] line 63 x unchanged, expecting SUCCESS: SUCCESS$
^\[main\.assertion\.\d+\] line 66 y changed, expecting FAILURE: FAILURE$
^\[main\.assertion\.\d+\] line 68 y unchanged, expecting SUCCESS: SUCCESS$
^\[main\.assertion\.\d+\] line 71 z changed, expecting FAILURE: FAILURE$
^\[main\.assertion\.\d+\] line 73 z unchanged, expecting SUCCESS: SUCCESS$
^VERIFICATION FAILED$
^EXIT=10$
^SIGNAL=0$
Expand Down
4 changes: 4 additions & 0 deletions regression/contracts-dfcc/invar_dynamic_struct_member/main.c
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
#include <stdlib.h>

typedef struct test
{
int x;
Expand All @@ -6,6 +8,8 @@ typedef struct test
void main()
{
struct test *t = malloc(sizeof(test));
if(t == NULL)
return;
t->x = 0;

unsigned n;
Expand Down
14 changes: 7 additions & 7 deletions regression/contracts-dfcc/invar_dynamic_struct_member/test.desc
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,14 @@ main.c
--dfcc main --apply-loop-contracts
^EXIT=10$
^SIGNAL=0$
^\[main.loop_assigns.\d+\] line 12 Check assigns clause inclusion for loop .*: SUCCESS$
^\[main.loop_invariant_base.\d+\] line 12 Check invariant before entry for loop .*: SUCCESS$
^\[main.loop_invariant_step.\d+\] line 12 Check invariant after step for loop .*: SUCCESS$
^\[main.loop_step_unwinding.\d+\] line 12 Check step was unwound for loop .*: SUCCESS$
^\[main.loop_assigns.\d+\] line 16 Check assigns clause inclusion for loop .*: SUCCESS$
^\[main.loop_invariant_base.\d+\] line 16 Check invariant before entry for loop .*: SUCCESS$
^\[main.loop_invariant_step.\d+\] line 16 Check invariant after step for loop .*: SUCCESS$
^\[main.loop_step_unwinding.\d+\] line 16 Check step was unwound for loop .*: SUCCESS$
^\[main.assigns.\d+\] .* Check that i is assignable: SUCCESS$
^\[main.assigns.\d+\] line 22 Check that t->x is assignable: SUCCESS$
^\[main.assigns.\d+\] line 25 Check that t->x is assignable: SUCCESS$
^\[main.assertion.\d+\] line 29 assertion .*: FAILURE$
^\[main.assigns.\d+\] line 26 Check that t->x is assignable: SUCCESS$
^\[main.assigns.\d+\] line 29 Check that t->x is assignable: SUCCESS$
^\[main.assertion.\d+\] line 33 assertion .*: FAILURE$
^VERIFICATION FAILED$
--
--
Expand Down
4 changes: 4 additions & 0 deletions regression/contracts-dfcc/loop_assigns-02/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,11 @@ struct blob
void main()
{
struct blob *b = malloc(sizeof(struct blob));
if(b == NULL)
return;
b->data = malloc(SIZE);
if(b->data == NULL)
return;

b->data[5] = 0;
for(unsigned i = 0; i < SIZE; i++)
Expand Down
8 changes: 4 additions & 4 deletions regression/contracts-dfcc/loop_assigns-02/test.desc
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@ main.c
--dfcc main --apply-loop-contracts
^EXIT=10$
^SIGNAL=0$
^\[main.loop_assigns.\d+\] line 17 Check assigns clause inclusion for loop .*: SUCCESS$
^\[main.loop_invariant_base.\d+\] line 17 Check invariant before entry for loop .*: SUCCESS$
^\[main.loop_invariant_step.\d+\] line 17 Check invariant after step for loop .*: SUCCESS$
^\[main.loop_step_unwinding.\d+\] line 17 Check step was unwound for loop .*: SUCCESS$
^\[main.loop_assigns.\d+\] line 21 Check assigns clause inclusion for loop .*: SUCCESS$
^\[main.loop_invariant_base.\d+\] line 21 Check invariant before entry for loop .*: SUCCESS$
^\[main.loop_invariant_step.\d+\] line 21 Check invariant after step for loop .*: SUCCESS$
^\[main.loop_step_unwinding.\d+\] line 21 Check step was unwound for loop .*: SUCCESS$
^\[main.assigns.\d+\] .* Check that i is assignable: SUCCESS$
^\[main.assigns.\d+\] .* Check that b->data\[(.*)i\] is assignable: FAILURE$
^VERIFICATION FAILED$
Expand Down
4 changes: 4 additions & 0 deletions regression/contracts-dfcc/loop_assigns-04/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,11 @@ void main()
{
int y;
struct blob *b = malloc(sizeof(struct blob));
if(b == NULL)
return;
b->data = malloc(SIZE);
if(b->data == NULL)
return;

b->data[5] = 0;
for(unsigned i = 0; i < SIZE; i++)
Expand Down
16 changes: 8 additions & 8 deletions regression/contracts-dfcc/loop_assigns-04/test.desc
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,14 @@ main.c
--dfcc main --apply-loop-contracts
^EXIT=10$
^SIGNAL=0$
^\[main.loop_assigns.\d+\] line 18 Check assigns clause inclusion for loop .*: SUCCESS$
^\[main.loop_invariant_base.\d+\] line 18 Check invariant before entry for loop .*: SUCCESS$
^\[main.loop_invariant_step.\d+\] line 18 Check invariant after step for loop .*: SUCCESS$
^\[main.loop_step_unwinding.\d+\] line 18 Check step was unwound for loop .*: SUCCESS$
^\[main.loop_assigns.\d+\] line 27 Check assigns clause inclusion for loop .*: FAILURE$
^\[main.loop_invariant_base.\d+\] line 27 Check invariant before entry for loop .*: SUCCESS$
^\[main.loop_invariant_step.\d+\] line 27 Check invariant after step for loop .*: SUCCESS$
^\[main.loop_step_unwinding.\d+\] line 27 Check step was unwound for loop .*: SUCCESS$
^\[main.loop_assigns.\d+\] line 22 Check assigns clause inclusion for loop .*: SUCCESS$
^\[main.loop_invariant_base.\d+\] line 22 Check invariant before entry for loop .*: SUCCESS$
^\[main.loop_invariant_step.\d+\] line 22 Check invariant after step for loop .*: SUCCESS$
^\[main.loop_step_unwinding.\d+\] line 22 Check step was unwound for loop .*: SUCCESS$
^\[main.loop_assigns.\d+\] line 31 Check assigns clause inclusion for loop .*: FAILURE$
^\[main.loop_invariant_base.\d+\] line 31 Check invariant before entry for loop .*: SUCCESS$
^\[main.loop_invariant_step.\d+\] line 31 Check invariant after step for loop .*: SUCCESS$
^\[main.loop_step_unwinding.\d+\] line 31 Check step was unwound for loop .*: SUCCESS$
^\[main.assigns.\d+\] .* Check that i is assignable: SUCCESS$
^\[main.assigns.\d+\] .* Check that j is assignable: SUCCESS$
^\[main.assigns.\d+\] .* Check that b->data\[(.*)i\] is assignable: SUCCESS$
Expand Down
8 changes: 4 additions & 4 deletions regression/contracts/assigns_enforce_free_dead/test.desc
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@ main.c
^\[foo.assigns.\d+\] line 7 Check that \*\(\*p\) is assignable: SUCCESS$
^\[foo.assigns.\d+\] line 24 Check that \*\(\*p\) is assignable: FAILURE$
^\[foo.assigns.\d+\] line \d+ Check that \*p is assignable: SUCCESS$
^\[foo.assigns.\d+\] line \d+ Check that \*q is assignable: SUCCESS$
^\[foo.assigns.\d+\] line \d+ Check that \*w is assignable: SUCCESS$
^\[foo.assigns.\d+\] line \d+ Check that \*x is assignable: SUCCESS$
^\[foo.assigns.\d+\] line \d+ Check that __CPROVER_POINTER_OBJECT\(\(void \*\)z\) is assignable: SUCCESS$
^\[foo.assigns.\d+\] line \d+ Check that \*q is assignable: UNKNOWN$
^\[foo.assigns.\d+\] line \d+ Check that \*w is assignable: UNKNOWN$
^\[foo.assigns.\d+\] line \d+ Check that \*x is assignable: UNKNOWN$
^\[foo.assigns.\d+\] line \d+ Check that __CPROVER_POINTER_OBJECT\(\(void \*\)z\) is assignable: UNKNOWN$
^EXIT=10$
^SIGNAL=0$
^VERIFICATION FAILED$
Expand Down
10 changes: 5 additions & 5 deletions regression/contracts/invar_dynamic_struct_member/test.desc
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@ main.c
--apply-loop-contracts
^EXIT=10$
^SIGNAL=0$
^\[main\.\d+\] .* Check loop invariant before entry: SUCCESS$
^\[main\.\d+\] .* Check that loop invariant is preserved: SUCCESS$
^\[main.assigns.\d+\] .* Check that i is assignable: SUCCESS$
^\[main.assigns.\d+\] line 22 Check that t->x is assignable: SUCCESS$
^\[main.assigns.\d+\] line 25 Check that t->x is assignable: SUCCESS$
^\[main\.\d+\] .* Check loop invariant before entry: UNKNOWN$
^\[main\.\d+\] .* Check that loop invariant is preserved: UNKNOWN$
^\[main.assigns.\d+\] .* Check that i is assignable: UNKNOWN$
^\[main.assigns.\d+\] line 22 Check that t->x is assignable: UNKNOWN$
^\[main.assigns.\d+\] line 25 Check that t->x is assignable: UNKNOWN$
^\[main.assertion.1\] .* assertion .*: FAILURE$
^VERIFICATION FAILED$
--
Expand Down
6 changes: 3 additions & 3 deletions regression/contracts/loop_assigns-02/test.desc
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@ main.c
--apply-loop-contracts
^EXIT=10$
^SIGNAL=0$
^\[main.\d+\] .* Check loop invariant before entry: SUCCESS$
^\[main.assigns.\d+\] .* Check that i is assignable: SUCCESS$
^\[main.\d+\] .* Check loop invariant before entry: UNKNOWN$
^\[main.assigns.\d+\] .* Check that i is assignable: UNKNOWN$
^\[main.assigns.\d+\] .* Check that b->data\[(.*)i\] is assignable: FAILURE$
^\[main.\d+\] .* Check that loop invariant is preserved: SUCCESS$
^\[main.\d+\] .* Check that loop invariant is preserved: UNKNOWN$
^\[main.assertion.\d+\] .* assertion b->data\[5\] == 0: FAILURE$
^VERIFICATION FAILED$
--
Expand Down
6 changes: 3 additions & 3 deletions regression/contracts/loop_assigns-04/test.desc
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@ main.c
--apply-loop-contracts
^EXIT=10$
^SIGNAL=0$
^\[main.assigns.\d+\] .* Check that i is assignable: SUCCESS$
^\[main.assigns.\d+\] .* Check that j is assignable: SUCCESS$
^\[main.assigns.\d+\] .* Check that b->data\[(.*)i\] is assignable: SUCCESS$
^\[main.assigns.\d+\] .* Check that i is assignable: UNKNOWN$
^\[main.assigns.\d+\] .* Check that j is assignable: UNKNOWN$
^\[main.assigns.\d+\] .* Check that b->data\[(.*)i\] is assignable: UNKNOWN$
^\[main.assigns.\d+\] .* Check that y is assignable: FAILURE$
^VERIFICATION FAILED$
--
Expand Down
2 changes: 1 addition & 1 deletion regression/contracts/loop_assigns-fail/test.desc
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ main.c
--apply-loop-contracts
^EXIT=10$
^SIGNAL=0$
^\[main.assigns.\d+\] .* Check that i is assignable: SUCCESS$
^\[main.assigns.\d+\] .* Check that i is assignable: UNKNOWN$
^\[main.assigns.\d+\] .* Check that b->data\[(.*)i\] is assignable: FAILURE$
^VERIFICATION FAILED$
--
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@ main.c
\[main.assertion.4\] .* assertion main_struct.union_contents.some_double < 14.0 && main_struct.union_contents.some_double > 12.0: SUCCESS
\[main.assertion.5\] .* assertion main_struct.pointer_contents->struct_contents.some_variable == 11: FAILURE
\[main.assertion.6\] .* assertion main_struct.struct_contents.some_variable == 10: FAILURE
\[main.assertion.7\] .* assertion main_struct.struct_contents.some_constant == 20: SUCCESS
\[main.assertion.7\] .* assertion main_struct.struct_contents.some_constant == 20: UNKNOWN
\[main.assertion.8\] .* assertion main_struct.union_contents.some_double < 14.0 && main_struct.union_contents.some_double > 12.0: FAILURE
\[main.assertion.9\] .* assertion child_struct.struct_contents.some_variable == 11: SUCCESS
\[main.assertion.10\] .* assertion child_struct.union_contents.some_integer == 31: SUCCESS
\[main.assertion.11\] .* assertion !child_struct.pointer_contents: SUCCESS
\[main.assertion.9\] .* assertion child_struct.struct_contents.some_variable == 11: UNKNOWN
\[main.assertion.10\] .* assertion child_struct.union_contents.some_integer == 31: UNKNOWN
\[main.assertion.11\] .* assertion !child_struct.pointer_contents: UNKNOWN
^VERIFICATION FAILED$
Loading
Loading