Skip to content

Commit 911de16

Browse files
committed
Replace __CPROVER_malloc_is_new_array by an uninterpreted function
With this encoding we no longer non-deterministically track just one such array. This enables the use in assumptions. Also, we will only incur a cost in the encoding when actually using new/delete instead of always having a global variable, even when unused.
1 parent ab0ffc1 commit 911de16

File tree

29 files changed

+202
-214
lines changed

29 files changed

+202
-214
lines changed

regression/goto-analyzer/constant_propagation_01/test-vsd.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ main.c
33
--variable-sensitivity --simplify out.gb
44
^EXIT=0$
55
^SIGNAL=0$
6-
^Simplified: assert: 1, assume: 0, goto: 1, assigns: 7, function calls: 0$
6+
^Simplified: assert: 1, assume: 0, goto: 1, assigns: 6, function calls: 0$
77
^Unmodified: assert: 0, assume: 0, goto: 0, assigns: 16, function calls: 2$
88
--
99
^warning: ignoring

regression/goto-analyzer/constant_propagation_01/test.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ main.c
33
--constants --simplify out.gb
44
^EXIT=0$
55
^SIGNAL=0$
6-
^Simplified: assert: 1, assume: 0, goto: 1, assigns: 7, function calls: 0$
6+
^Simplified: assert: 1, assume: 0, goto: 1, assigns: 6, function calls: 0$
77
^Unmodified: assert: 0, assume: 0, goto: 0, assigns: 16, function calls: 2$
88
--
99
^warning: ignoring

regression/goto-analyzer/constant_propagation_02/test-vsd.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ main.c
33
--variable-sensitivity --simplify out.gb
44
^EXIT=0$
55
^SIGNAL=0$
6-
^Simplified: assert: 1, assume: 0, goto: 1, assigns: 8, function calls: 0$
6+
^Simplified: assert: 1, assume: 0, goto: 1, assigns: 7, function calls: 0$
77
^Unmodified: assert: 0, assume: 0, goto: 0, assigns: 15, function calls: 2$
88
--
99
^warning: ignoring

regression/goto-analyzer/constant_propagation_02/test.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ main.c
33
--constants --simplify out.gb
44
^EXIT=0$
55
^SIGNAL=0$
6-
^Simplified: assert: 1, assume: 0, goto: 1, assigns: 8, function calls: 0$
6+
^Simplified: assert: 1, assume: 0, goto: 1, assigns: 7, function calls: 0$
77
^Unmodified: assert: 0, assume: 0, goto: 0, assigns: 15, function calls: 2$
88
--
99
^warning: ignoring

regression/goto-analyzer/constant_propagation_03/test-vsd.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ main.c
33
--variable-sensitivity --simplify out.gb
44
^EXIT=0$
55
^SIGNAL=0$
6-
^Simplified: assert: 1, assume: 0, goto: 1, assigns: 8, function calls: 0$
6+
^Simplified: assert: 1, assume: 0, goto: 1, assigns: 7, function calls: 0$
77
^Unmodified: assert: 0, assume: 0, goto: 0, assigns: 15, function calls: 2$
88
--
99
^warning: ignoring

regression/goto-analyzer/constant_propagation_03/test.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ main.c
33
--constants --simplify out.gb
44
^EXIT=0$
55
^SIGNAL=0$
6-
^Simplified: assert: 1, assume: 0, goto: 1, assigns: 8, function calls: 0$
6+
^Simplified: assert: 1, assume: 0, goto: 1, assigns: 7, function calls: 0$
77
^Unmodified: assert: 0, assume: 0, goto: 0, assigns: 15, function calls: 2$
88
--
99
^warning: ignoring

regression/goto-analyzer/constant_propagation_04/test-vsd.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ main.c
33
--variable-sensitivity --simplify out.gb
44
^EXIT=0$
55
^SIGNAL=0$
6-
^Simplified: assert: 1, assume: 0, goto: 1, assigns: 8, function calls: 0$
6+
^Simplified: assert: 1, assume: 0, goto: 1, assigns: 7, function calls: 0$
77
^Unmodified: assert: 0, assume: 0, goto: 0, assigns: 15, function calls: 2$
88
--
99
^warning: ignoring

regression/goto-analyzer/constant_propagation_04/test.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ main.c
33
--constants --simplify out.gb
44
^EXIT=0$
55
^SIGNAL=0$
6-
^Simplified: assert: 1, assume: 0, goto: 1, assigns: 8, function calls: 0$
6+
^Simplified: assert: 1, assume: 0, goto: 1, assigns: 7, function calls: 0$
77
^Unmodified: assert: 0, assume: 0, goto: 0, assigns: 15, function calls: 2$
88
--
99
^warning: ignoring

regression/goto-analyzer/constant_propagation_07/test-vsd.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ main.c
33
--variable-sensitivity --simplify out.gb
44
^EXIT=0$
55
^SIGNAL=0$
6-
^Simplified: assert: 1, assume: 0, goto: 3, assigns: 9, function calls: 0$
6+
^Simplified: assert: 1, assume: 0, goto: 3, assigns: 8, function calls: 0$
77
^Unmodified: assert: 0, assume: 0, goto: 1, assigns: 17, function calls: 2$
88
--
99
^warning: ignoring

regression/goto-analyzer/constant_propagation_07/test.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ main.c
33
--constants --simplify out.gb
44
^EXIT=0$
55
^SIGNAL=0$
6-
^Simplified: assert: 1, assume: 0, goto: 3, assigns: 9, function calls: 0$
6+
^Simplified: assert: 1, assume: 0, goto: 3, assigns: 8, function calls: 0$
77
^Unmodified: assert: 0, assume: 0, goto: 1, assigns: 17, function calls: 2$
88
--
99
^warning: ignoring

regression/goto-analyzer/constant_propagation_08/test-vsd.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ main.c
33
--variable-sensitivity --vsd-arrays every-element --simplify out.gb
44
^EXIT=0$
55
^SIGNAL=0$
6-
^Simplified: assert: 1, assume: 0, goto: 2, assigns: 8, function calls: 0$
6+
^Simplified: assert: 1, assume: 0, goto: 2, assigns: 7, function calls: 0$
77
^Unmodified: assert: 0, assume: 0, goto: 3, assigns: 16, function calls: 2$
88
--
99
^warning: ignoring

regression/goto-analyzer/constant_propagation_11/test-vsd.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ main.c
33
--variable-sensitivity --vsd-arrays every-element --simplify out.gb
44
^EXIT=0$
55
^SIGNAL=0$
6-
^Simplified: assert: 1, assume: 0, goto: 1, assigns: 8, function calls: 0$
6+
^Simplified: assert: 1, assume: 0, goto: 1, assigns: 7, function calls: 0$
77
^Unmodified: assert: 0, assume: 0, goto: 1, assigns: 13, function calls: 2$
88
--
99
^warning: ignoring

regression/goto-analyzer/constant_propagation_11/test.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ main.c
33
--constants --simplify out.gb
44
^EXIT=0$
55
^SIGNAL=0$
6-
^Simplified: assert: 1, assume: 0, goto: 1, assigns: 8, function calls: 0$
6+
^Simplified: assert: 1, assume: 0, goto: 1, assigns: 7, function calls: 0$
77
^Unmodified: assert: 0, assume: 0, goto: 1, assigns: 13, function calls: 2$
88
--
99
^warning: ignoring

regression/goto-analyzer/constant_propagation_12/test-vsd.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ main.c
33
--variable-sensitivity --simplify out.gb
44
^EXIT=0$
55
^SIGNAL=0$
6-
^Simplified: assert: 1, assume: 0, goto: 1, assigns: 7, function calls: 0$
6+
^Simplified: assert: 1, assume: 0, goto: 1, assigns: 6, function calls: 0$
77
^Unmodified: assert: 0, assume: 0, goto: 1, assigns: 14, function calls: 2$
88
--
99
^warning: ignoring

regression/goto-analyzer/constant_propagation_12/test.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ main.c
33
--constants --simplify out.gb
44
^EXIT=0$
55
^SIGNAL=0$
6-
^Simplified: assert: 1, assume: 0, goto: 1, assigns: 7, function calls: 0$
6+
^Simplified: assert: 1, assume: 0, goto: 1, assigns: 6, function calls: 0$
77
^Unmodified: assert: 0, assume: 0, goto: 1, assigns: 14, function calls: 2$
88
--
99
^warning: ignoring

regression/goto-analyzer/sensitivity-last-written-locations-arrays/test.desc

Lines changed: 26 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -8,30 +8,29 @@ activate-multi-line-match
88
main#return_value \(\) -> TOP @ \[1\]
99
__CPROVER_dead_object \(\) -> TOP @ \[5\]
1010
__CPROVER_deallocated \(\) -> TOP @ \[6\]
11-
__CPROVER_malloc_is_new_array \(\) -> FALSE @ \[9\]
12-
__CPROVER_memory_leak \(\) -> TOP @ \[11\]
13-
__CPROVER_new_object \(\) -> TOP @ \[12\]
14-
__CPROVER_next_thread_key \(\) -> 0ul @ \[14\]
15-
__CPROVER_pipe_count \(\) -> 0u @ \[15\]
16-
__CPROVER_rounding_mode \(\) -> 0 @ \[16\]
17-
__CPROVER_thread_id \(\) -> 0ul @ \[17\]
18-
__CPROVER_threads_exited \(\) -> TOP @ \[20\]
19-
do_arrays::1::bool_ \(\) -> TOP @ \[22\]
20-
do_arrays::1::bool_1 \(\) -> TOP @ \[23\]
21-
do_arrays::1::bool_2 \(\) -> TOP @ \[24\]
22-
do_arrays::1::x \(\) -> \{\[0\] = 10 @ \[26\]\n\} @ \[26\]
23-
do_arrays::1::x \(\) -> \{\[0\] = 10 @ \[26\]\n\[1\] = 20 @ \[27\]\n\} @ \[27\]
24-
do_arrays::1::x \(\) -> \{\[0\] = 30 @ \[28\]\n\[1\] = 20 @ \[27\]\n\} @ \[28\]
25-
do_arrays::1::x \(\) -> \{\[0\] = 30 @ \[28\]\n\[1\] = 40 @ \[29\]\n\} @ \[29\]
26-
do_arrays::1::x \(\) -> \{\[0\] = 30 @ \[28\]\n\[1\] = 30 @ \[30\]\n\} @ \[30\]
27-
do_arrays::1::x \(\) -> \{\[0\] = 30 @ \[31\]\n\[1\] = 30 @ \[30\]\n\} @ \[31\]
28-
do_arrays::1::x \(\) -> \{\[0\] = 5 @ \[32\]\n\[1\] = 30 @ \[30\]\n\} @ \[32\]
29-
do_arrays::1::x \(\) -> \{\[0\] = 15 @ \[33\]\n\[1\] = 30 @ \[30\]\n\} @ \[33\]
30-
do_arrays::1::x \(\) -> \{\[0\] = 15 @ \[33\]\n\[1\] = 10 @ \[34\]\n\} @ \[34\]
31-
do_arrays::1::x \(\) -> \{\[0\] = 20 @ \[36\]\n\[1\] = 10 @ \[34\]\n\} @ \[36\]
32-
do_arrays::1::x \(\) -> \{\[0\] = 20 @ \[36\, 38\]\n\[1\] = 10 @ \[34\]\n\} @ \[36\, 38\]
33-
do_arrays::1::x \(\) -> \{\[0\] = 0 @ \[40]\n\[1\] = 10 @ \[34\]\n\} @ \[40\]
34-
do_arrays::1::x \(\) -> \{\[0\] = 3 @ \[42]\n\[1\] = 10 @ \[34\]\n\} @ \[42\]
35-
do_arrays::1::x \(\) -> \{\[0\] = TOP @ \[42\, 44]\n\[1\] = 10 @ \[34\]\n\} @ \[42\, 44\]
36-
do_arrays::1::x \(\) -> \{\[0\] = TOP @ \[42\, 44\, 47]\n\[1\] = 10 @ \[49\]\n\} @ \[49\]
37-
do_arrays::1::x \(\) -> \{\[0\] = 20 @ \[50]\n\[1\] = 10 @ \[49\]\n\} @ \[50\]
11+
__CPROVER_memory_leak \(\) -> TOP @ \[10\]
12+
__CPROVER_new_object \(\) -> TOP @ \[11\]
13+
__CPROVER_next_thread_key \(\) -> 0ul @ \[13\]
14+
__CPROVER_pipe_count \(\) -> 0u @ \[14\]
15+
__CPROVER_rounding_mode \(\) -> 0 @ \[15\]
16+
__CPROVER_thread_id \(\) -> 0ul @ \[16\]
17+
__CPROVER_threads_exited \(\) -> TOP @ \[19\]
18+
do_arrays::1::bool_ \(\) -> TOP @ \[21\]
19+
do_arrays::1::bool_1 \(\) -> TOP @ \[22\]
20+
do_arrays::1::bool_2 \(\) -> TOP @ \[23\]
21+
do_arrays::1::x \(\) -> \{\[0\] = 10 @ \[25\]\n\} @ \[25\]
22+
do_arrays::1::x \(\) -> \{\[0\] = 10 @ \[25\]\n\[1\] = 20 @ \[26\]\n\} @ \[26\]
23+
do_arrays::1::x \(\) -> \{\[0\] = 30 @ \[27\]\n\[1\] = 20 @ \[26\]\n\} @ \[27\]
24+
do_arrays::1::x \(\) -> \{\[0\] = 30 @ \[27\]\n\[1\] = 40 @ \[28\]\n\} @ \[28\]
25+
do_arrays::1::x \(\) -> \{\[0\] = 30 @ \[27\]\n\[1\] = 30 @ \[29\]\n\} @ \[29\]
26+
do_arrays::1::x \(\) -> \{\[0\] = 30 @ \[30\]\n\[1\] = 30 @ \[29\]\n\} @ \[30\]
27+
do_arrays::1::x \(\) -> \{\[0\] = 5 @ \[31\]\n\[1\] = 30 @ \[29\]\n\} @ \[31\]
28+
do_arrays::1::x \(\) -> \{\[0\] = 15 @ \[32\]\n\[1\] = 30 @ \[29\]\n\} @ \[32\]
29+
do_arrays::1::x \(\) -> \{\[0\] = 15 @ \[32\]\n\[1\] = 10 @ \[33\]\n\} @ \[33\]
30+
do_arrays::1::x \(\) -> \{\[0\] = 20 @ \[35\]\n\[1\] = 10 @ \[33\]\n\} @ \[35\]
31+
do_arrays::1::x \(\) -> \{\[0\] = 20 @ \[35\, 37\]\n\[1\] = 10 @ \[33\]\n\} @ \[35\, 37\]
32+
do_arrays::1::x \(\) -> \{\[0\] = 0 @ \[39]\n\[1\] = 10 @ \[33\]\n\} @ \[39\]
33+
do_arrays::1::x \(\) -> \{\[0\] = 3 @ \[41]\n\[1\] = 10 @ \[33\]\n\} @ \[41\]
34+
do_arrays::1::x \(\) -> \{\[0\] = TOP @ \[41\, 43]\n\[1\] = 10 @ \[33\]\n\} @ \[41\, 43\]
35+
do_arrays::1::x \(\) -> \{\[0\] = TOP @ \[41\, 43\, 46]\n\[1\] = 10 @ \[48\]\n\} @ \[48\]
36+
do_arrays::1::x \(\) -> \{\[0\] = 20 @ \[49]\n\[1\] = 10 @ \[48\]\n\} @ \[49\]

regression/goto-analyzer/sensitivity-last-written-locations-pointers/test.desc

Lines changed: 25 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -8,29 +8,28 @@ activate-multi-line-match
88
main#return_value \(\) -> TOP @ \[1\]
99
__CPROVER_dead_object \(\) -> TOP @ \[5\]
1010
__CPROVER_deallocated \(\) -> TOP @ \[6\]
11-
__CPROVER_malloc_is_new_array \(\) -> FALSE @ \[9\]
12-
__CPROVER_memory_leak \(\) -> TOP @ \[11\]
13-
__CPROVER_new_object \(\) -> TOP @ \[12\]
14-
__CPROVER_next_thread_key \(\) -> 0ul @ \[14\]
15-
__CPROVER_pipe_count \(\) -> 0u @ \[15\]
16-
__CPROVER_rounding_mode \(\) -> 0 @ \[16\]
17-
__CPROVER_thread_id \(\) -> 0ul @ \[17\]
18-
__CPROVER_threads_exited \(\) -> TOP @ \[20\]
19-
do_pointers::1::bool_ \(\) -> TOP @ \[22\]
20-
do_pointers::1::bool_1 \(\) -> TOP @ \[23\]
21-
do_pointers::1::bool_2 \(\) -> TOP @ \[24\]
22-
do_pointers::1::x \(\) -> TOP @ \[25\]
23-
do_pointers::1::x \(\) -> 10 @ \[26\]
24-
do_pointers::1::x_p \(\) -> TOP @ \[27\]
25-
do_pointers::1::y \(\) -> TOP @ \[28\]
26-
do_pointers::1::y \(\) -> 20 @ \[29\]
27-
do_pointers::1::y_p \(\) -> TOP @ \[30\]
28-
do_pointers::1::x_p \(\) -> ptr ->\(do_pointers::1::x\) @ \[31\]
29-
do_pointers::1::x \(\) -> 30 @ \[32\]
30-
do_pointers::1::x \(\) -> 40 @ \[33\]
31-
do_pointers::1::x \(\) -> TOP @ \[34\]
32-
do_pointers::1::x \(\) -> 50 @ \[35\]
33-
do_pointers::1::y_p \(\) -> ptr ->\(do_pointers::1::x\) @ \[36\]
34-
do_pointers::1::x \(\) -> 60 @ \[37\]
35-
do_pointers::1::j \(\) -> TOP @ \[38\]
36-
do_pointers::1::j \(\) -> 60 @ \[39\]
11+
__CPROVER_new_object \(\) -> TOP @ \[11\]
12+
__CPROVER_memory_leak \(\) -> TOP @ \[10\]
13+
__CPROVER_next_thread_id \(\) -> 0ul @ \[12\]
14+
__CPROVER_pipe_count \(\) -> 0u @ \[14\]
15+
__CPROVER_rounding_mode \(\) -> 0 @ \[15\]
16+
__CPROVER_thread_id \(\) -> 0ul @ \[16\]
17+
__CPROVER_threads_exited \(\) -> TOP @ \[19\]
18+
do_pointers::1::bool_ \(\) -> TOP @ \[21\]
19+
do_pointers::1::bool_1 \(\) -> TOP @ \[22\]
20+
do_pointers::1::bool_2 \(\) -> TOP @ \[23\]
21+
do_pointers::1::x \(\) -> TOP @ \[24\]
22+
do_pointers::1::x \(\) -> 10 @ \[25\]
23+
do_pointers::1::x_p \(\) -> TOP @ \[26\]
24+
do_pointers::1::y \(\) -> TOP @ \[27\]
25+
do_pointers::1::y \(\) -> 20 @ \[28\]
26+
do_pointers::1::y_p \(\) -> TOP @ \[29\]
27+
do_pointers::1::x_p \(\) -> ptr ->\(do_pointers::1::x\) @ \[30\]
28+
do_pointers::1::x \(\) -> 30 @ \[31\]
29+
do_pointers::1::x \(\) -> 40 @ \[32\]
30+
do_pointers::1::x \(\) -> TOP @ \[33\]
31+
do_pointers::1::x \(\) -> 50 @ \[34\]
32+
do_pointers::1::y_p \(\) -> ptr ->\(do_pointers::1::x\) @ \[35\]
33+
do_pointers::1::x \(\) -> 60 @ \[36\]
34+
do_pointers::1::j \(\) -> TOP @ \[37\]
35+
do_pointers::1::j \(\) -> 60 @ \[38\]

regression/goto-analyzer/sensitivity-last-written-locations-structs/test.desc

Lines changed: 30 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -8,35 +8,34 @@ activate-multi-line-match
88
main#return_value \(\) -> TOP @ \[1\]
99
__CPROVER_dead_object \(\) -> TOP @ \[5\]
1010
__CPROVER_deallocated \(\) -> TOP @ \[6\]
11-
__CPROVER_malloc_is_new_array \(\) -> FALSE @ \[9\]
12-
__CPROVER_memory_leak \(\) -> TOP @ \[11\]
13-
__CPROVER_new_object \(\) -> TOP @ \[12\]
14-
__CPROVER_next_thread_key \(\) -> 0ul @ \[14\]
15-
__CPROVER_pipe_count \(\) -> 0u @ \[15\]
16-
__CPROVER_rounding_mode \(\) -> 0 @ \[16\]
17-
__CPROVER_thread_id \(\) -> 0ul @ \[17\]
18-
__CPROVER_threads_exited \(\) -> TOP @ \[20\]
19-
do_structs::1::bool_ \(\) -> TOP @ \[22\]
20-
do_structs::1::bool_1 \(\) -> TOP @ \[23\]
21-
do_structs::1::bool_2 \(\) -> TOP @ \[24\]
22-
do_structs::1::st \(\) -> \{\} @ \[25\]
23-
do_structs::1::st \(\) -> \{.x=10 @ \[26\]\} @ \[26\]
24-
do_structs::1::st \(\) -> \{.x=10 @ \[26\]\, .y=20 @ \[27\]\} @ \[27\]
25-
do_structs::1::st \(\) -> \{.x=30 @ \[28\]\, .y=20 @ \[27\]\} @ \[28\]
26-
do_structs::1::st \(\) -> \{.x=30 @ \[28\]\, .y=40 @ \[29\]\} @ \[29\]
27-
do_structs::1::st \(\) -> \{.x=30 @ \[28\]\, .y=30 @ \[30\]\} @ \[30\]
28-
do_structs::1::st \(\) -> \{.x=30 @ \[31\]\, .y=30 @ \[30\]\} @ \[31\]
29-
do_structs::1::st \(\) -> \{.x=5 @ \[32\]\, .y=30 @ \[30\]\} @ \[32\]
30-
do_structs::1::st \(\) -> \{.x=15 @ \[33\]\, .y=30 @ \[30\]\} @ \[33\]
31-
do_structs::1::st \(\) -> \{.x=15 @ \[33\]\, .y=10 @ \[34\]\} @ \[34\]
32-
do_structs::1::st \(\) -> \{.x=20 @ \[36\]\, .y=10 @ \[34\]\} @ \[36\]
33-
do_structs::1::st \(\) -> \{.x=20 @ \[36\, 38\]\, .y=10 @ \[34\]\} @ \[36\, 38\]
34-
do_structs::1::st \(\) -> \{.x=0 @ \[40\]\, .y=10 @ \[34\]\} @ \[40\]
35-
do_structs::1::st \(\) -> \{.x=3 @ \[42\]\, .y=10 @ \[34\]\} @ \[42\]
36-
do_structs::1::st \(\) -> \{.x=TOP @ \[42\, 44\]\, .y=10 @ \[34\]\} @ \[42\, 44\]
37-
do_structs::1::st \(\) -> \{.x=TOP @ \[42\, 44\, 47\]\, .y=10 @ \[34\]\} @ \[42\, 44\, 47\]
38-
do_structs::1::st \(\) -> \{.x=TOP @ \[42\, 44\, 47\]\, .y=10 @ \[49\]\} @ \[49\]
39-
do_structs::1::st \(\) -> \{.x=20 @ \[50\]\, .y=10 @ \[49\]\} @ \[50\]
40-
do_structs::1::new_age \(\) -> \{\} @ \[51\]
41-
do_structs::1::new_age \(\) -> \{.x=20 @ \[52\]\, .y=10 @ \[52\]\} @ \[52\]
11+
__CPROVER_new_object \(\) -> TOP @ \[11\]
12+
__CPROVER_memory_leak \(\) -> TOP @ \[10\]
13+
__CPROVER_next_thread_id \(\) -> 0ul @ \[12\]
14+
__CPROVER_pipe_count \(\) -> 0u @ \[14\]
15+
__CPROVER_rounding_mode \(\) -> 0 @ \[15\]
16+
__CPROVER_thread_id \(\) -> 0ul @ \[16\]
17+
__CPROVER_threads_exited \(\) -> TOP @ \[19\]
18+
do_structs::1::bool_ \(\) -> TOP @ \[21\]
19+
do_structs::1::bool_1 \(\) -> TOP @ \[22\]
20+
do_structs::1::bool_2 \(\) -> TOP @ \[23\]
21+
do_structs::1::st \(\) -> \{\} @ \[24\]
22+
do_structs::1::st \(\) -> \{.x=10 @ \[25\]\} @ \[25\]
23+
do_structs::1::st \(\) -> \{.x=10 @ \[25\]\, .y=20 @ \[26\]\} @ \[26\]
24+
do_structs::1::st \(\) -> \{.x=30 @ \[27\]\, .y=20 @ \[26\]\} @ \[27\]
25+
do_structs::1::st \(\) -> \{.x=30 @ \[27\]\, .y=40 @ \[28\]\} @ \[28\]
26+
do_structs::1::st \(\) -> \{.x=30 @ \[27\]\, .y=30 @ \[29\]\} @ \[29\]
27+
do_structs::1::st \(\) -> \{.x=30 @ \[30\]\, .y=30 @ \[29\]\} @ \[30\]
28+
do_structs::1::st \(\) -> \{.x=5 @ \[31\]\, .y=30 @ \[29\]\} @ \[31\]
29+
do_structs::1::st \(\) -> \{.x=15 @ \[32\]\, .y=30 @ \[29\]\} @ \[32\]
30+
do_structs::1::st \(\) -> \{.x=15 @ \[32\]\, .y=10 @ \[33\]\} @ \[33\]
31+
do_structs::1::st \(\) -> \{.x=20 @ \[35\]\, .y=10 @ \[33\]\} @ \[35\]
32+
do_structs::1::st \(\) -> \{.x=20 @ \[35\, 37\]\, .y=10 @ \[33\]\} @ \[35\, 37\]
33+
do_structs::1::st \(\) -> \{.x=0 @ \[39\]\, .y=10 @ \[33\]\} @ \[39\]
34+
do_structs::1::st \(\) -> \{.x=3 @ \[41\]\, .y=10 @ \[33\]\} @ \[41\]
35+
do_structs::1::st \(\) -> \{.x=TOP @ \[41\, 43\]\, .y=10 @ \[33\]\} @ \[41\, 43\]
36+
do_structs::1::st \(\) -> \{.x=TOP @ \[41\, 43\, 46\]\, .y=10 @ \[33\]\} @ \[41\, 43\, 46\]
37+
do_structs::1::st \(\) -> \{.x=TOP @ \[41\, 43\, 46\]\, .y=10 @ \[48\]\} @ \[48\]
38+
do_structs::1::st \(\) -> \{.x=20 @ \[49\]\, .y=10 @ \[48\]\} @ \[49\]
39+
do_structs::1::new_age \(\) -> \{\} @ \[50\]
40+
do_structs::1::new_age \(\) -> \{.x=20 @ \[51\]\, .y=10 @ \[51\]\} @ \[51\]
4241
--

regression/goto-analyzer/sensitivity-last-written-locations-variables/test.desc

Lines changed: 37 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -7,39 +7,41 @@ main#return_value \(\) -> TOP @ \[1\]
77
__CPROVER_alloca_object \(\) -> TOP @ \[4\]
88
__CPROVER_dead_object \(\) -> TOP @ \[5\]
99
__CPROVER_deallocated \(\) -> TOP @ \[6\]
10-
__CPROVER_malloc_is_new_array \(\) -> FALSE @ \[9\]
11-
__CPROVER_memory_leak \(\) -> TOP @ \[11\]
12-
__CPROVER_new_object \(\) -> TOP @ \[12\]
13-
__CPROVER_next_thread_key \(\) -> 0ul @ \[14\]
14-
__CPROVER_pipe_count \(\) -> 0u @ \[15\]
15-
__CPROVER_rounding_mode \(\) -> 0 @ \[16\]
16-
__CPROVER_thread_id \(\) -> 0ul @ \[17\]
17-
__CPROVER_threads_exited \(\) -> TOP @ \[20\]
18-
global_x \(\) -> 0 @ \[21\]
19-
do_variables::1::bool_ \(\) -> TOP @ \[23\]
20-
do_variables::1::bool_1 \(\) -> TOP @ \[24\]
21-
do_variables::1::bool_2 \(\) -> TOP @ \[25\]
22-
global_x \(\) -> 5 @ \[26\]
23-
do_variables::1::x \(\) -> TOP @ \[27\]
24-
do_variables::1::x \(\) -> 10 @ \[28\]
25-
do_variables::1::y \(\) -> TOP @ \[29\]
26-
do_variables::1::y \(\) -> 20 @ \[30\]
27-
do_variables::1::x \(\) -> 30 @ \[31\]
28-
do_variables::1::y \(\) -> 40 @ \[32\]
29-
do_variables::1::y \(\) -> 30 @ \[33\]
30-
do_variables::1::x \(\) -> 30 @ \[34\]
31-
do_variables::1::x \(\) -> 5 @ \[35\]
32-
do_variables::1::x \(\) -> 15 @ \[36\]
33-
do_variables::1::y \(\) -> 10 @ \[37\]
34-
do_variables::1::x \(\) -> 20 @ \[39\]
35-
do_variables::1::x \(\) -> 20 @ \[39\, 41\]
36-
do_variables::1::x \(\) -> 50 @ \[43\]
37-
do_variables::1::x \(\) -> 20 @ \[45\]
38-
do_variables::1::x \(\) -> TOP @ \[45\, 47\]
39-
do_variables::1::x \(\) -> 0 @ \[49\]
40-
do_variables::1::x \(\) -> 3 @ \[51\]
41-
do_variables::1::x \(\) -> TOP @ \[51\, 53\]
42-
do_variables::1::x \(\) -> TOP @ \[51\, 53\, 56\]
43-
do_variables::1::y \(\) -> 10 @ \[58\]
44-
do_variables::1::x \(\) -> 20 @ \[59\]
10+
__CPROVER_new_object \(\) -> TOP @ \[11\]
11+
__CPROVER_memory_leak \(\) -> TOP @ \[10\]
12+
__CPROVER_next_thread_id \(\) -> 0ul @ \[12\]
13+
__CPROVER_next_thread_key \(\) -> 0ul @ \[13\]
14+
__CPROVER_pipe_count \(\) -> 0u @ \[14\]
15+
__CPROVER_rounding_mode \(\) -> 0 @ \[15\]
16+
__CPROVER_thread_id \(\) -> 0ul @ \[16\]
17+
__CPROVER_thread_key_dtors \(\) -> TOP @ \[17\]
18+
__CPROVER_thread_keys \(\) -> TOP @ \[18\]
19+
__CPROVER_threads_exited \(\) -> TOP @ \[19\]
20+
global_x \(\) -> 0 @ \[20\]
21+
do_variables::1::bool_ \(\) -> TOP @ \[22\]
22+
do_variables::1::bool_1 \(\) -> TOP @ \[23\]
23+
do_variables::1::bool_2 \(\) -> TOP @ \[24\]
24+
global_x \(\) -> 5 @ \[25\]
25+
do_variables::1::x \(\) -> TOP @ \[26\]
26+
do_variables::1::x \(\) -> 10 @ \[27\]
27+
do_variables::1::y \(\) -> TOP @ \[28\]
28+
do_variables::1::y \(\) -> 20 @ \[29\]
29+
do_variables::1::x \(\) -> 30 @ \[30\]
30+
do_variables::1::y \(\) -> 40 @ \[31\]
31+
do_variables::1::y \(\) -> 30 @ \[32\]
32+
do_variables::1::x \(\) -> 30 @ \[33\]
33+
do_variables::1::x \(\) -> 5 @ \[34\]
34+
do_variables::1::x \(\) -> 15 @ \[35\]
35+
do_variables::1::y \(\) -> 10 @ \[36\]
36+
do_variables::1::x \(\) -> 20 @ \[38\]
37+
do_variables::1::x \(\) -> 20 @ \[38\, 40\]
38+
do_variables::1::x \(\) -> 50 @ \[42\]
39+
do_variables::1::x \(\) -> 20 @ \[44\]
40+
do_variables::1::x \(\) -> TOP @ \[44\, 46\]
41+
do_variables::1::x \(\) -> 0 @ \[48\]
42+
do_variables::1::x \(\) -> 3 @ \[50\]
43+
do_variables::1::x \(\) -> TOP @ \[50\, 52\]
44+
do_variables::1::x \(\) -> TOP @ \[50\, 52\, 55\]
45+
do_variables::1::y \(\) -> 10 @ \[57\]
46+
do_variables::1::x \(\) -> 20 @ \[58\]
4547
--

0 commit comments

Comments
 (0)