Skip to content

Commit 780b687

Browse files
authored
Merge pull request #8316 from diffblue/pointer-dereference-is-now-fatal
pointer checks are now fatal
2 parents ed51462 + 2c19fb9 commit 780b687

File tree

34 files changed

+95
-79
lines changed

34 files changed

+95
-79
lines changed

regression/cbmc-incr-smt2/pointer_arithmetic/pointer_subtraction.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
CORE
22
pointer_subtraction.c
3-
--no-signed-overflow-check --trace
3+
--no-signed-overflow-check --trace --no-pointer-check
44
\[main\.assertion\.1\] line \d+ expected failure after pointer manipulation: FAILURE
55
\[main\.assertion\.2\] line \d+ expected successful after pointer manipulation: SUCCESS
66
\[main\.assertion\.3\] line \d+ expected failure after pointer manipulation: FAILURE

regression/cbmc-incr-smt2/pointers-relational-operators/pointers_assume.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
CORE
22
pointers_assume.c
3-
--trace
3+
--trace --no-pointer-check
44
\[main\.assertion\.1\] line \d+ x == y: expected failure: FAILURE
55
\[main\.assertion\.2\] line \d+ z >= x: expected successful: SUCCESS
66
\[main\.assertion\.3\] line \d+ z <= y: expected successful: SUCCESS

regression/cbmc-primitives/exists_memory_checks/invalid_index_range.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ invalid_index_range.c
44
^EXIT=10$
55
^SIGNAL=0$
66
^VERIFICATION FAILED$
7-
\[main\.assertion\.1\] line 9 assertion __CPROVER_exists \{ int i; \(0 <= i && i < 20\) && a\[i\] == i \*i \}: SUCCESS
7+
^\[main\.assertion\.1\] line 9 assertion __CPROVER_exists \{ int i; \(0 <= i && i < 20\) && a\[i\] == i \*i \}: UNKNOWN$
88
line 9 dereference failure: pointer outside object bounds in a\[(\(signed (long|long long) int\))?i\]: FAILURE
99
--
1010
--

regression/cbmc-primitives/exists_memory_checks/smt_missing_range_check.desc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ smt_missing_range_check.c
44
^EXIT=10$
55
^SIGNAL=0$
66
^VERIFICATION FAILED$
7-
\[main\.assertion\.1\] line \d assertion __CPROVER_exists \{ int i; a\[i\] == i \*i \}: SUCCESS
8-
\[main\.pointer_dereference\.11\] line \d dereference failure: pointer outside object bounds in a\[(\(signed (long|long long) int\))?i\]: FAILURE
7+
^\[main\.assertion\.1\] line \d assertion __CPROVER_exists \{ int i; a\[i\] == i \*i \}: UNKNOWN$
8+
^\[main\.pointer_dereference\.11\] line \d dereference failure: pointer outside object bounds in a\[(\(signed (long|long long) int\))?i\]: FAILURE$
99
--
1010
--
1111
Check that memory checks fail for pointer dereferences inside an existential

regression/cbmc-primitives/forall_6231_3/test_malloc_less_than_bound.desc

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@ test_malloc_less_than_bound.c
33
--no-malloc-may-fail --pointer-check
44
^EXIT=10$
55
^SIGNAL=0$
6-
\[main\.assertion\.2\] line \d+ assertion __CPROVER_forall \{ int i ; \(0 <= i && i < 10\) ==> \*\(a\+i\) == \*\(a\+i\) \}: SUCCESS
7-
\[main\.pointer_dereference\.7\] line \d+ dereference failure: pointer NULL in a\[(\(signed (long|long long) int\))?i\]: SUCCESS
8-
\[main\.pointer_dereference\.8\] line \d+ dereference failure: pointer invalid in a\[(\(signed (long|long long) int\))?i\]: SUCCESS
9-
\[main\.pointer_dereference\.9\] line \d+ dereference failure: deallocated dynamic object in a\[(\(signed (long|long long) int\))?i\]: SUCCESS
10-
\[main\.pointer_dereference\.10\] line \d+ dereference failure: dead object in a\[(\(signed (long|long long) int\))?i\]: SUCCESS
11-
\[main\.pointer_dereference\.11\] line \d+ dereference failure: pointer outside object bounds in a\[(\(signed (long|long long) int\))?i\]: FAILURE
12-
\[main\.pointer_dereference\.12\] line \d+ dereference failure: invalid integer address in a\[(\(signed (long|long long) int\))?i\]: SUCCESS
6+
^\[main\.assertion\.2\] line \d+ assertion __CPROVER_forall \{ int i ; \(0 <= i && i < 10\) ==> \*\(a\+i\) == \*\(a\+i\) \}: UNKNOWN$
7+
^\[main\.pointer_dereference\.7\] line \d+ dereference failure: pointer NULL in a\[(\(signed (long|long long) int\))?i\]: SUCCESS$
8+
^\[main\.pointer_dereference\.8\] line \d+ dereference failure: pointer invalid in a\[(\(signed (long|long long) int\))?i\]: SUCCESS$
9+
^\[main\.pointer_dereference\.9\] line \d+ dereference failure: deallocated dynamic object in a\[(\(signed (long|long long) int\))?i\]: SUCCESS$
10+
^\[main\.pointer_dereference\.10\] line \d+ dereference failure: dead object in a\[(\(signed (long|long long) int\))?i\]: SUCCESS$
11+
^\[main\.pointer_dereference\.11\] line \d+ dereference failure: pointer outside object bounds in a\[(\(signed (long|long long) int\))?i\]: FAILURE$
12+
^\[main\.pointer_dereference\.12\] line \d+ dereference failure: invalid integer address in a\[(\(signed (long|long long) int\))?i\]: UNKNOWN$
1313
^VERIFICATION FAILED$
1414
--
1515
--

regression/cbmc/Function_Pointer18/test.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
CORE
22
main.c
3-
3+
--no-pointer-check
44
^EXIT=10$
55
^SIGNAL=0$
66
\[f2.assertion.1\] line [0-9]+ assertion 0: SUCCESS

regression/cbmc/Function_Pointer_Init_One_Candidate/test.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
CORE
22
main.c
3-
--function foo
3+
--function foo --no-pointer-check
44
^\[foo.assertion.\d+\] line \d+ assertion other_function\(4\) == 5: FAILURE$
55
^\[foo.assertion.\d+\] line \d+ assertion other_function\(4\) == 4: SUCCESS$
66
^EXIT=10$

regression/cbmc/Function_Pointer_Init_Two_Candidates/test.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
CORE
22
main.c
3-
--function foo
3+
--function foo --no-pointer-check
44
^\[foo.assertion.\d+\] line \d+ assertion other_function\(4\) == 5: FAILURE$
55
^\[foo.assertion.\d+\] line \d+ assertion other_function\(4\) >= 4: SUCCESS$
66
^EXIT=10$

regression/cbmc/array-cell-sensitivity10/test_execution.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
CORE
22
test.c
3-
3+
--no-pointer-check
44
^VERIFICATION FAILED$
55
^\[main.assertion\.1\] line 16.*SUCCESS$
66
^\[main.assertion\.2\] line 17.*FAILURE$

regression/cbmc/array-cell-sensitivity3/test_execution.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
CORE
22
test.c
3-
3+
--no-pointer-check
44
^VERIFICATION FAILED$
55
^\[main.assertion\.1\] line 9.*SUCCESS$
66
^\[main.assertion\.2\] line 10.*FAILURE$

regression/cbmc/array-cell-sensitivity7/test_execution.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
CORE
22
test.c
3-
3+
--no-pointer-check
44
^VERIFICATION FAILED$
55
^\[main.assertion\.1\] line 10.*SUCCESS$
66
^\[main.assertion\.2\] line 11.*FAILURE$

regression/cbmc/array-cell-sensitivity8/test_execution.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
CORE
22
test.c
3-
3+
--no-pointer-check
44
^VERIFICATION FAILED$
55
^\[main.assertion\.1\] line 11.*SUCCESS$
66
^\[main.assertion\.2\] line 12.*FAILURE$

regression/cbmc/byte_update14/test.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
CORE
22
test.c
3-
3+
--no-pointer-check
44
^VERIFICATION FAILED$
55
^\[main.assertion\.1\] line 10.*SUCCESS$
66
^\[main.assertion\.2\] line 11.*FAILURE$

regression/cbmc/memory_allocation1/test.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ main.c
66
^\[main\.pointer_dereference\.2\] .* dereference failure: invalid integer address in \*p: SUCCESS$
77
^\[main\.assertion\.1\] .* assertion \*p==42: SUCCESS$
88
^\[main\.pointer_dereference\.[0-9]+\] .* dereference failure: invalid integer address in p\[.*1\]: FAILURE$
9-
^\[main\.assertion\.2\] .* assertion \*\(p\+1\)==42: SUCCESS$
9+
^\[main\.assertion\.2\] .* assertion \*\(p\+1\)==42: UNKNOWN$
1010
^VERIFICATION FAILED$
1111
--
1212
^warning: ignoring

regression/cbmc/pointer-extra-checks/test.desc

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@ main.c
44
^EXIT=10$
55
^SIGNAL=0$
66
^\[main.pointer_dereference.1\] .* dereference failure: pointer NULL in \*p: FAILURE$
7-
^\[main.pointer_dereference.2\] .* dereference failure: dead object in \*q: SUCCESS$
8-
^\[main.pointer_dereference.3\] .* dereference failure: pointer outside object bounds in \*q: SUCCESS$
9-
^\[main.pointer_dereference.4\] .* dereference failure: deallocated dynamic object in \*r: SUCCESS$
10-
^\[main.pointer_dereference.5\] .* dereference failure: pointer outside dynamic object bounds in \*r: SUCCESS$
7+
^\[main.pointer_dereference.2\] .* dereference failure: dead object in \*q: UNKNOWN$
8+
^\[main.pointer_dereference.3\] .* dereference failure: pointer outside object bounds in \*q: UNKNOWN$
9+
^\[main.pointer_dereference.4\] .* dereference failure: deallocated dynamic object in \*r: UNKNOWN$
10+
^\[main.pointer_dereference.5\] .* dereference failure: pointer outside dynamic object bounds in \*r: UNKNOWN$
1111
^\[main.pointer_dereference.6\] .* dereference failure: pointer NULL in \*s: FAILURE$
1212
^\[main.pointer_dereference.7\] .* dereference failure: pointer invalid in \*s: FAILURE$
1313
^\[main.pointer_dereference.8\] .* dereference failure: deallocated dynamic object in \*s: FAILURE$

regression/cbmc/ptr_arithmetic_on_null/test.desc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ main.c
44
^\[main.assertion.1\] line .* assertion \(\(char \*\)NULL\) != \(char \*\)\(void \*\)0 \+ (\(.*\))?1: SUCCESS$
55
^\[main.assertion.2\] line .* assertion \(\(char \*\)NULL\) != \(char \*\)\(void \*\)0 - (\(.*\))?1: SUCCESS$
66
^\[main.assertion.3\] line .* assertion \(\(char \*\)NULL\) != \(char \*\)\(void \*\)0 \+ \(.*\)offset: SUCCESS$
7-
^\[main.assertion.4\] line .* assertion \(char \*\)\(void \*\)0 - \(char \*\)\(void \*\)0 == (\(.*\))?0: SUCCESS$
7+
^\[main.assertion.4\] line .* assertion \(char \*\)\(void \*\)0 - \(char \*\)\(void \*\)0 == (\(.*\))?0: UNKNOWN$
88
^\[main.assertion.5\] line .* assertion ptr - \(signed int \*\)\(void \*\)0 == (\(.*\))?0: FAILURE$
9-
^\[main.assertion.6\] line .* assertion \(ptr - (\(.*\))?1\) \+ (\(.*\))?1 == \(\(.* \*\)NULL\): SUCCESS$
9+
^\[main.assertion.6\] line .* assertion \(ptr - (\(.*\))?1\) \+ (\(.*\))?1 == \(\(.* \*\)NULL\): UNKNOWN$
1010
^\[main.assertion.7\] line .* assertion \(ptr - (\(.*\))?1\) \+ (\(.*\))?1 == \(\(.* \*\)NULL\): FAILURE$
1111
^EXIT=10$
1212
^SIGNAL=0$

regression/cbmc/switch8/test.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ main.c
88
^\[main\.pointer_dereference\.1\] line 36 dereference failure: dead object in \*p: SUCCESS$
99
^\[main\.pointer_dereference\.2\] line 36 dereference failure: pointer outside object bounds in \*p: SUCCESS$
1010
^\[main\.assertion\.3\] line 42 assertion \*p == 42: FAILURE$
11-
^\[main\.pointer_dereference\.5\] line 42 dereference failure: pointer outside object bounds in \*p: SUCCESS$
11+
^\[main\.pointer_dereference\.5\] line 42 dereference failure: pointer outside object bounds in \*p: UNKNOWN$
1212
^\[main\.pointer_dereference\.3\] line 42 dereference failure: pointer NULL in \*p: SUCCESS$
1313
^\[main\.pointer_dereference\.4\] line 42 dereference failure: dead object in \*p: FAILURE$
1414
^\[main\.assertion\.4\] line 49 assertion e == 42: FAILURE$

regression/contracts-dfcc/assigns_enforce_structs_06/test-f2.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ main.c
44
^EXIT=10$
55
^SIGNAL=0$
66
^\[f2.assigns.\d+\] line \d+ Check that p->buf\[(\(.*\))?0\] is assignable: FAILURE$
7-
^\[f2.assigns.\d+\] line \d+ Check that p->size is assignable: SUCCESS$
7+
^\[f2.assigns.\d+\] line \d+ Check that p->size is assignable: UNKNOWN$
88
^VERIFICATION FAILED$
99
--
1010
--

regression/contracts-dfcc/assigns_replace_conditional_targets/main.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
#include <stdbool.h>
2+
#include <stdlib.h>
23

34
bool nz(int x)
45
{
@@ -46,6 +47,9 @@ int main()
4647
old_y = y;
4748

4849
char *z = malloc(1);
50+
if(z == NULL)
51+
return;
52+
4953
*z = '0';
5054

5155
foo(a, &x, &y, z);

regression/contracts-dfcc/assigns_replace_conditional_targets/test.desc

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@ CORE
22
main.c
33
--dfcc main --replace-call-with-contract foo
44
^main.c function main$
5-
^\[main\.assertion\.\d+\] line 55 a unchanged, expecting SUCCESS: SUCCESS$
6-
^\[main\.assertion\.\d+\] line 57 x changed, expecting FAILURE: FAILURE$
7-
^\[main\.assertion\.\d+\] line 59 x unchanged, expecting SUCCESS: SUCCESS$
8-
^\[main\.assertion\.\d+\] line 62 y changed, expecting FAILURE: FAILURE$
9-
^\[main\.assertion\.\d+\] line 64 y unchanged, expecting SUCCESS: SUCCESS$
10-
^\[main\.assertion\.\d+\] line 67 z changed, expecting FAILURE: FAILURE$
11-
^\[main\.assertion\.\d+\] line 69 z unchanged, expecting SUCCESS: SUCCESS$
5+
^\[main\.assertion\.\d+\] line 59 a unchanged, expecting SUCCESS: SUCCESS$
6+
^\[main\.assertion\.\d+\] line 61 x changed, expecting FAILURE: FAILURE$
7+
^\[main\.assertion\.\d+\] line 63 x unchanged, expecting SUCCESS: SUCCESS$
8+
^\[main\.assertion\.\d+\] line 66 y changed, expecting FAILURE: FAILURE$
9+
^\[main\.assertion\.\d+\] line 68 y unchanged, expecting SUCCESS: SUCCESS$
10+
^\[main\.assertion\.\d+\] line 71 z changed, expecting FAILURE: FAILURE$
11+
^\[main\.assertion\.\d+\] line 73 z unchanged, expecting SUCCESS: SUCCESS$
1212
^VERIFICATION FAILED$
1313
^EXIT=10$
1414
^SIGNAL=0$

regression/contracts-dfcc/invar_dynamic_struct_member/main.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
#include <stdlib.h>
2+
13
typedef struct test
24
{
35
int x;
@@ -6,6 +8,8 @@ typedef struct test
68
void main()
79
{
810
struct test *t = malloc(sizeof(test));
11+
if(t == NULL)
12+
return;
913
t->x = 0;
1014

1115
unsigned n;

regression/contracts-dfcc/invar_dynamic_struct_member/test.desc

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@ main.c
33
--dfcc main --apply-loop-contracts
44
^EXIT=10$
55
^SIGNAL=0$
6-
^\[main.loop_assigns.\d+\] line 12 Check assigns clause inclusion for loop .*: SUCCESS$
7-
^\[main.loop_invariant_base.\d+\] line 12 Check invariant before entry for loop .*: SUCCESS$
8-
^\[main.loop_invariant_step.\d+\] line 12 Check invariant after step for loop .*: SUCCESS$
9-
^\[main.loop_step_unwinding.\d+\] line 12 Check step was unwound for loop .*: SUCCESS$
6+
^\[main.loop_assigns.\d+\] line 16 Check assigns clause inclusion for loop .*: SUCCESS$
7+
^\[main.loop_invariant_base.\d+\] line 16 Check invariant before entry for loop .*: SUCCESS$
8+
^\[main.loop_invariant_step.\d+\] line 16 Check invariant after step for loop .*: SUCCESS$
9+
^\[main.loop_step_unwinding.\d+\] line 16 Check step was unwound for loop .*: SUCCESS$
1010
^\[main.assigns.\d+\] .* Check that i is assignable: SUCCESS$
11-
^\[main.assigns.\d+\] line 22 Check that t->x is assignable: SUCCESS$
12-
^\[main.assigns.\d+\] line 25 Check that t->x is assignable: SUCCESS$
13-
^\[main.assertion.\d+\] line 29 assertion .*: FAILURE$
11+
^\[main.assigns.\d+\] line 26 Check that t->x is assignable: SUCCESS$
12+
^\[main.assigns.\d+\] line 29 Check that t->x is assignable: SUCCESS$
13+
^\[main.assertion.\d+\] line 33 assertion .*: FAILURE$
1414
^VERIFICATION FAILED$
1515
--
1616
--

regression/contracts-dfcc/loop_assigns-02/main.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,11 @@ struct blob
1111
void main()
1212
{
1313
struct blob *b = malloc(sizeof(struct blob));
14+
if(b == NULL)
15+
return;
1416
b->data = malloc(SIZE);
17+
if(b->data == NULL)
18+
return;
1519

1620
b->data[5] = 0;
1721
for(unsigned i = 0; i < SIZE; i++)

regression/contracts-dfcc/loop_assigns-02/test.desc

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@ main.c
33
--dfcc main --apply-loop-contracts
44
^EXIT=10$
55
^SIGNAL=0$
6-
^\[main.loop_assigns.\d+\] line 17 Check assigns clause inclusion for loop .*: SUCCESS$
7-
^\[main.loop_invariant_base.\d+\] line 17 Check invariant before entry for loop .*: SUCCESS$
8-
^\[main.loop_invariant_step.\d+\] line 17 Check invariant after step for loop .*: SUCCESS$
9-
^\[main.loop_step_unwinding.\d+\] line 17 Check step was unwound for loop .*: SUCCESS$
6+
^\[main.loop_assigns.\d+\] line 21 Check assigns clause inclusion for loop .*: SUCCESS$
7+
^\[main.loop_invariant_base.\d+\] line 21 Check invariant before entry for loop .*: SUCCESS$
8+
^\[main.loop_invariant_step.\d+\] line 21 Check invariant after step for loop .*: SUCCESS$
9+
^\[main.loop_step_unwinding.\d+\] line 21 Check step was unwound for loop .*: SUCCESS$
1010
^\[main.assigns.\d+\] .* Check that i is assignable: SUCCESS$
1111
^\[main.assigns.\d+\] .* Check that b->data\[(.*)i\] is assignable: FAILURE$
1212
^VERIFICATION FAILED$

regression/contracts-dfcc/loop_assigns-04/main.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,11 @@ void main()
1212
{
1313
int y;
1414
struct blob *b = malloc(sizeof(struct blob));
15+
if(b == NULL)
16+
return;
1517
b->data = malloc(SIZE);
18+
if(b->data == NULL)
19+
return;
1620

1721
b->data[5] = 0;
1822
for(unsigned i = 0; i < SIZE; i++)

regression/contracts-dfcc/loop_assigns-04/test.desc

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@ main.c
33
--dfcc main --apply-loop-contracts
44
^EXIT=10$
55
^SIGNAL=0$
6-
^\[main.loop_assigns.\d+\] line 18 Check assigns clause inclusion for loop .*: SUCCESS$
7-
^\[main.loop_invariant_base.\d+\] line 18 Check invariant before entry for loop .*: SUCCESS$
8-
^\[main.loop_invariant_step.\d+\] line 18 Check invariant after step for loop .*: SUCCESS$
9-
^\[main.loop_step_unwinding.\d+\] line 18 Check step was unwound for loop .*: SUCCESS$
10-
^\[main.loop_assigns.\d+\] line 27 Check assigns clause inclusion for loop .*: FAILURE$
11-
^\[main.loop_invariant_base.\d+\] line 27 Check invariant before entry for loop .*: SUCCESS$
12-
^\[main.loop_invariant_step.\d+\] line 27 Check invariant after step for loop .*: SUCCESS$
13-
^\[main.loop_step_unwinding.\d+\] line 27 Check step was unwound for loop .*: SUCCESS$
6+
^\[main.loop_assigns.\d+\] line 22 Check assigns clause inclusion for loop .*: SUCCESS$
7+
^\[main.loop_invariant_base.\d+\] line 22 Check invariant before entry for loop .*: SUCCESS$
8+
^\[main.loop_invariant_step.\d+\] line 22 Check invariant after step for loop .*: SUCCESS$
9+
^\[main.loop_step_unwinding.\d+\] line 22 Check step was unwound for loop .*: SUCCESS$
10+
^\[main.loop_assigns.\d+\] line 31 Check assigns clause inclusion for loop .*: FAILURE$
11+
^\[main.loop_invariant_base.\d+\] line 31 Check invariant before entry for loop .*: SUCCESS$
12+
^\[main.loop_invariant_step.\d+\] line 31 Check invariant after step for loop .*: SUCCESS$
13+
^\[main.loop_step_unwinding.\d+\] line 31 Check step was unwound for loop .*: SUCCESS$
1414
^\[main.assigns.\d+\] .* Check that i is assignable: SUCCESS$
1515
^\[main.assigns.\d+\] .* Check that j is assignable: SUCCESS$
1616
^\[main.assigns.\d+\] .* Check that b->data\[(.*)i\] is assignable: SUCCESS$

regression/contracts/assigns_enforce_free_dead/test.desc

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@ main.c
77
^\[foo.assigns.\d+\] line 7 Check that \*\(\*p\) is assignable: SUCCESS$
88
^\[foo.assigns.\d+\] line 24 Check that \*\(\*p\) is assignable: FAILURE$
99
^\[foo.assigns.\d+\] line \d+ Check that \*p is assignable: SUCCESS$
10-
^\[foo.assigns.\d+\] line \d+ Check that \*q is assignable: SUCCESS$
11-
^\[foo.assigns.\d+\] line \d+ Check that \*w is assignable: SUCCESS$
12-
^\[foo.assigns.\d+\] line \d+ Check that \*x is assignable: SUCCESS$
13-
^\[foo.assigns.\d+\] line \d+ Check that __CPROVER_POINTER_OBJECT\(\(void \*\)z\) is assignable: SUCCESS$
10+
^\[foo.assigns.\d+\] line \d+ Check that \*q is assignable: UNKNOWN$
11+
^\[foo.assigns.\d+\] line \d+ Check that \*w is assignable: UNKNOWN$
12+
^\[foo.assigns.\d+\] line \d+ Check that \*x is assignable: UNKNOWN$
13+
^\[foo.assigns.\d+\] line \d+ Check that __CPROVER_POINTER_OBJECT\(\(void \*\)z\) is assignable: UNKNOWN$
1414
^EXIT=10$
1515
^SIGNAL=0$
1616
^VERIFICATION FAILED$

regression/contracts/invar_dynamic_struct_member/test.desc

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@ main.c
33
--apply-loop-contracts
44
^EXIT=10$
55
^SIGNAL=0$
6-
^\[main\.\d+\] .* Check loop invariant before entry: SUCCESS$
7-
^\[main\.\d+\] .* Check that loop invariant is preserved: SUCCESS$
8-
^\[main.assigns.\d+\] .* Check that i is assignable: SUCCESS$
9-
^\[main.assigns.\d+\] line 22 Check that t->x is assignable: SUCCESS$
10-
^\[main.assigns.\d+\] line 25 Check that t->x is assignable: SUCCESS$
6+
^\[main\.\d+\] .* Check loop invariant before entry: UNKNOWN$
7+
^\[main\.\d+\] .* Check that loop invariant is preserved: UNKNOWN$
8+
^\[main.assigns.\d+\] .* Check that i is assignable: UNKNOWN$
9+
^\[main.assigns.\d+\] line 22 Check that t->x is assignable: UNKNOWN$
10+
^\[main.assigns.\d+\] line 25 Check that t->x is assignable: UNKNOWN$
1111
^\[main.assertion.1\] .* assertion .*: FAILURE$
1212
^VERIFICATION FAILED$
1313
--

regression/contracts/loop_assigns-02/test.desc

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@ main.c
33
--apply-loop-contracts
44
^EXIT=10$
55
^SIGNAL=0$
6-
^\[main.\d+\] .* Check loop invariant before entry: SUCCESS$
7-
^\[main.assigns.\d+\] .* Check that i is assignable: SUCCESS$
6+
^\[main.\d+\] .* Check loop invariant before entry: UNKNOWN$
7+
^\[main.assigns.\d+\] .* Check that i is assignable: UNKNOWN$
88
^\[main.assigns.\d+\] .* Check that b->data\[(.*)i\] is assignable: FAILURE$
9-
^\[main.\d+\] .* Check that loop invariant is preserved: SUCCESS$
9+
^\[main.\d+\] .* Check that loop invariant is preserved: UNKNOWN$
1010
^\[main.assertion.\d+\] .* assertion b->data\[5\] == 0: FAILURE$
1111
^VERIFICATION FAILED$
1212
--

regression/contracts/loop_assigns-04/test.desc

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ main.c
33
--apply-loop-contracts
44
^EXIT=10$
55
^SIGNAL=0$
6-
^\[main.assigns.\d+\] .* Check that i is assignable: SUCCESS$
7-
^\[main.assigns.\d+\] .* Check that j is assignable: SUCCESS$
8-
^\[main.assigns.\d+\] .* Check that b->data\[(.*)i\] is assignable: SUCCESS$
6+
^\[main.assigns.\d+\] .* Check that i is assignable: UNKNOWN$
7+
^\[main.assigns.\d+\] .* Check that j is assignable: UNKNOWN$
8+
^\[main.assigns.\d+\] .* Check that b->data\[(.*)i\] is assignable: UNKNOWN$
99
^\[main.assigns.\d+\] .* Check that y is assignable: FAILURE$
1010
^VERIFICATION FAILED$
1111
--

regression/contracts/loop_assigns-fail/test.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ main.c
33
--apply-loop-contracts
44
^EXIT=10$
55
^SIGNAL=0$
6-
^\[main.assigns.\d+\] .* Check that i is assignable: SUCCESS$
6+
^\[main.assigns.\d+\] .* Check that i is assignable: UNKNOWN$
77
^\[main.assigns.\d+\] .* Check that b->data\[(.*)i\] is assignable: FAILURE$
88
^VERIFICATION FAILED$
99
--

regression/goto-instrument/generate-function-body-complex-struct/test.desc

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@ main.c
99
\[main.assertion.4\] .* assertion main_struct.union_contents.some_double < 14.0 && main_struct.union_contents.some_double > 12.0: SUCCESS
1010
\[main.assertion.5\] .* assertion main_struct.pointer_contents->struct_contents.some_variable == 11: FAILURE
1111
\[main.assertion.6\] .* assertion main_struct.struct_contents.some_variable == 10: FAILURE
12-
\[main.assertion.7\] .* assertion main_struct.struct_contents.some_constant == 20: SUCCESS
12+
\[main.assertion.7\] .* assertion main_struct.struct_contents.some_constant == 20: UNKNOWN
1313
\[main.assertion.8\] .* assertion main_struct.union_contents.some_double < 14.0 && main_struct.union_contents.some_double > 12.0: FAILURE
14-
\[main.assertion.9\] .* assertion child_struct.struct_contents.some_variable == 11: SUCCESS
15-
\[main.assertion.10\] .* assertion child_struct.union_contents.some_integer == 31: SUCCESS
16-
\[main.assertion.11\] .* assertion !child_struct.pointer_contents: SUCCESS
14+
\[main.assertion.9\] .* assertion child_struct.struct_contents.some_variable == 11: UNKNOWN
15+
\[main.assertion.10\] .* assertion child_struct.union_contents.some_integer == 31: UNKNOWN
16+
\[main.assertion.11\] .* assertion !child_struct.pointer_contents: UNKNOWN
1717
^VERIFICATION FAILED$

0 commit comments

Comments
 (0)