Skip to content

Commit eddc014

Browse files
authored
Merge pull request #6086 from tautschnig/remove-malloc_size
Remove __CPROVER_malloc_size
2 parents 43c04ab + 9501bed commit eddc014

File tree

39 files changed

+212
-294
lines changed

39 files changed

+212
-294
lines changed

doc/architectural/memory-bounds-checking.md

Lines changed: 10 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -33,28 +33,27 @@ inline void *malloc(__CPROVER_size_t malloc_size)
3333

3434
__CPROVER_bool record_malloc = __VERIFIER_nondet___CPROVER_bool();
3535
__CPROVER_malloc_object = record_malloc ? malloc_res : __CPROVER_malloc_object;
36-
__CPROVER_malloc_size = record_malloc ? malloc_size : __CPROVER_malloc_size;
3736

3837
return malloc_res;
3938
}
4039
```
4140
42-
Both internal variables `__CPROVER_malloc_object` and `__CPROVER_malloc_size`
43-
are initialized to 0 in the `__CPROVER_initialize()` function of a goto program.
44-
The nondeterministic switch controls whether the address and size of the memory
45-
block allocated in this particular invocation of `malloc()` are recorded.
41+
The internal variable `__CPROVER_malloc_object`
42+
is initialized to 0 in the `__CPROVER_initialize()` function of a goto program.
43+
The nondeterministic switch controls whether the address of the memory
44+
block allocated in this particular invocation of `malloc()` is recorded.
4645
4746
When the option `--pointer-check` is used, cbmc generates the following
4847
verification condition for each pointer dereference expression (e.g.,
4948
`*pointer`):
5049
5150
```C
52-
__CPROVER_POINTER_OBJECT(pointer) == __CPROVER_POINTER_OBJECT(__CPROVER_malloc_object) ==>
53-
__CPROVER_POINTER_OFFSET(pointer) >= 0 && __CPROVER_POINTER_OFFSET(pointer) < __CPROVER_malloc_size
51+
__CPROVER_POINTER_OFFSET(pointer) >= 0 &&
52+
__CPROVER_POINTER_OFFSET(pointer) < __CPROVER_OBJECT_SIZE(pointer)
5453
```
5554

56-
The primitives `__CPROVER_POINTER_OBJECT()` and `__CPROVER_POINTER_OFFSET()` extract
57-
the object id, and pointer offset, respectively. Similar conditions are
55+
The primitives `__CPROVER_POINTER_OFFSET()` and `__CPROVER_OBJECT_SIZE()` extract
56+
the pointer offset and size of the object pointed to, respectively. Similar conditions are
5857
generated for `assert(__CPROVER_r_ok(pointer, size))` and
5958
`assert(__CPROVER_w_ok(pointer, size))`.
6059

@@ -77,9 +76,5 @@ Here the verification condition generated for the pointer dereference should
7776
fail. In the approach outlined above it indeed can, as one can choose true for
7877
`__VERIFIER_nondet___CPROVER_bool()` in the first call
7978
to `malloc()`, and false for `__VERIFIER_nondet___CPROVER_bool()` in the second
80-
call to `malloc()`. Thus, the object address and size of the first call to
81-
`malloc()` are recorded in `__CPROVER_malloc_object` and `__CPROVER_malloc_size`
82-
respectively. Thus, the premise of the implication in the verification condition
83-
above is true, while the conclusion is false, hence the overall condition is
84-
false.
85-
79+
call to `malloc()`. Thus, the object address of the first call to
80+
`malloc()` is recorded in `__CPROVER_malloc_object`.

regression/cbmc-with-incr/Pointer_byte_extract8/main.c

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,11 @@ typedef struct
1212
Union List[1];
1313
} __attribute__((packed)) Struct3;
1414

15-
extern size_t __CPROVER_malloc_size;
16-
1715
int main()
1816
{
1917
Struct3 *p = malloc (sizeof (int) + 2 * sizeof(Union));
2018
p->Count = 3;
2119
int po=0;
22-
size_t m=__CPROVER_malloc_size;
2320

2421
// this should be fine
2522
p->List[0].a = 555;

regression/contracts/function_check_mem_01/main.c

Lines changed: 10 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -7,21 +7,16 @@
77

88
#include <stddef.h>
99

10-
#define __CPROVER_VALID_MEM(ptr, size) \
11-
__CPROVER_POINTER_OBJECT((ptr)) != __CPROVER_POINTER_OBJECT(NULL) && \
12-
!__CPROVER_invalid_pointer((ptr)) && \
13-
__CPROVER_POINTER_OBJECT((ptr)) != \
14-
__CPROVER_POINTER_OBJECT(__CPROVER_deallocated) && \
15-
__CPROVER_POINTER_OBJECT((ptr)) != \
16-
__CPROVER_POINTER_OBJECT(__CPROVER_dead_object) && \
17-
(__builtin_object_size((ptr), 1) >= (size) && \
18-
__CPROVER_POINTER_OFFSET((ptr)) >= 0l || \
19-
__CPROVER_DYNAMIC_OBJECT((ptr))) && \
20-
(__CPROVER_POINTER_OFFSET((ptr)) >= 0 && \
21-
__CPROVER_malloc_size >= (size) + __CPROVER_POINTER_OFFSET((ptr)) || \
22-
__CPROVER_POINTER_OBJECT((ptr)) != \
23-
__CPROVER_POINTER_OBJECT(__CPROVER_malloc_object))
24-
10+
#define __CPROVER_VALID_MEM(ptr, size) \
11+
__CPROVER_POINTER_OBJECT((ptr)) != __CPROVER_POINTER_OBJECT(NULL) && \
12+
!__CPROVER_invalid_pointer((ptr)) && \
13+
__CPROVER_POINTER_OBJECT((ptr)) != \
14+
__CPROVER_POINTER_OBJECT(__CPROVER_deallocated) && \
15+
__CPROVER_POINTER_OBJECT((ptr)) != \
16+
__CPROVER_POINTER_OBJECT(__CPROVER_dead_object) && \
17+
(__builtin_object_size((ptr), 1) >= (size) && \
18+
__CPROVER_POINTER_OFFSET((ptr)) >= 0l)
19+
2520
typedef struct bar
2621
{
2722
int x;

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,6 @@ main.c
44
^EXIT=0$
55
^SIGNAL=0$
66
^Simplified: assert: 1, assume: 0, goto: 1, assigns: 7, function calls: 0$
7-
^Unmodified: assert: 0, assume: 0, goto: 0, assigns: 17, function calls: 2$
7+
^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
@@ -4,6 +4,6 @@ main.c
44
^EXIT=0$
55
^SIGNAL=0$
66
^Simplified: assert: 1, assume: 0, goto: 1, assigns: 7, function calls: 0$
7-
^Unmodified: assert: 0, assume: 0, goto: 0, assigns: 17, function calls: 2$
7+
^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
@@ -4,6 +4,6 @@ main.c
44
^EXIT=0$
55
^SIGNAL=0$
66
^Simplified: assert: 1, assume: 0, goto: 1, assigns: 8, function calls: 0$
7-
^Unmodified: assert: 0, assume: 0, goto: 0, assigns: 16, function calls: 2$
7+
^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
@@ -4,6 +4,6 @@ main.c
44
^EXIT=0$
55
^SIGNAL=0$
66
^Simplified: assert: 1, assume: 0, goto: 1, assigns: 8, function calls: 0$
7-
^Unmodified: assert: 0, assume: 0, goto: 0, assigns: 16, function calls: 2$
7+
^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
@@ -4,6 +4,6 @@ main.c
44
^EXIT=0$
55
^SIGNAL=0$
66
^Simplified: assert: 1, assume: 0, goto: 1, assigns: 8, function calls: 0$
7-
^Unmodified: assert: 0, assume: 0, goto: 0, assigns: 16, function calls: 2$
7+
^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
@@ -4,6 +4,6 @@ main.c
44
^EXIT=0$
55
^SIGNAL=0$
66
^Simplified: assert: 1, assume: 0, goto: 1, assigns: 8, function calls: 0$
7-
^Unmodified: assert: 0, assume: 0, goto: 0, assigns: 16, function calls: 2$
7+
^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
@@ -4,6 +4,6 @@ main.c
44
^EXIT=0$
55
^SIGNAL=0$
66
^Simplified: assert: 1, assume: 0, goto: 1, assigns: 8, function calls: 0$
7-
^Unmodified: assert: 0, assume: 0, goto: 0, assigns: 16, function calls: 2$
7+
^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
@@ -4,6 +4,6 @@ main.c
44
^EXIT=0$
55
^SIGNAL=0$
66
^Simplified: assert: 1, assume: 0, goto: 1, assigns: 8, function calls: 0$
7-
^Unmodified: assert: 0, assume: 0, goto: 0, assigns: 16, function calls: 2$
7+
^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
@@ -4,6 +4,6 @@ main.c
44
^EXIT=0$
55
^SIGNAL=0$
66
^Simplified: assert: 1, assume: 0, goto: 3, assigns: 9, function calls: 0$
7-
^Unmodified: assert: 0, assume: 0, goto: 1, assigns: 18, function calls: 2$
7+
^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
@@ -4,6 +4,6 @@ main.c
44
^EXIT=0$
55
^SIGNAL=0$
66
^Simplified: assert: 1, assume: 0, goto: 3, assigns: 9, function calls: 0$
7-
^Unmodified: assert: 0, assume: 0, goto: 1, assigns: 18, function calls: 2$
7+
^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
@@ -4,6 +4,6 @@ main.c
44
^EXIT=0$
55
^SIGNAL=0$
66
^Simplified: assert: 1, assume: 0, goto: 2, assigns: 8, function calls: 0$
7-
^Unmodified: assert: 0, assume: 0, goto: 3, assigns: 17, function calls: 2$
7+
^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
@@ -4,6 +4,6 @@ main.c
44
^EXIT=0$
55
^SIGNAL=0$
66
^Simplified: assert: 1, assume: 0, goto: 1, assigns: 8, function calls: 0$
7-
^Unmodified: assert: 0, assume: 0, goto: 1, assigns: 14, function calls: 2$
7+
^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
@@ -4,6 +4,6 @@ main.c
44
^EXIT=0$
55
^SIGNAL=0$
66
^Simplified: assert: 1, assume: 0, goto: 1, assigns: 8, function calls: 0$
7-
^Unmodified: assert: 0, assume: 0, goto: 1, assigns: 14, function calls: 2$
7+
^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
@@ -4,6 +4,6 @@ main.c
44
^EXIT=0$
55
^SIGNAL=0$
66
^Simplified: assert: 1, assume: 0, goto: 1, assigns: 7, function calls: 0$
7-
^Unmodified: assert: 0, assume: 0, goto: 1, assigns: 15, function calls: 2$
7+
^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
@@ -4,6 +4,6 @@ main.c
44
^EXIT=0$
55
^SIGNAL=0$
66
^Simplified: assert: 1, assume: 0, goto: 1, assigns: 7, function calls: 0$
7-
^Unmodified: assert: 0, assume: 0, goto: 1, assigns: 15, function calls: 2$
7+
^Unmodified: assert: 0, assume: 0, goto: 1, assigns: 14, function calls: 2$
88
--
99
^warning: ignoring

regression/goto-analyzer/liveness-function-call/test-liveness-show.desc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ main.c
33
--variable-sensitivity --vsd-liveness --show
44
^EXIT=0$
55
^SIGNAL=0$
6-
globalX .* 0 @ \[28\]
6+
globalX .* 0 @ \[27\]
77
globalX .* 1 @ \[0\]
88
globalX .* 2 @ \[3\]
9-
globalX .* TOP @ \[31\]
9+
globalX .* TOP @ \[30\]
1010
--

regression/goto-analyzer/liveness-function-call/test-liveness-three-way-show.desc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ main.c
33
--variable-sensitivity --vsd-liveness --three-way-merge --show
44
^EXIT=0$
55
^SIGNAL=0$
6-
globalX .* 0 @ \[28\]
6+
globalX .* 0 @ \[27\]
77
globalX .* 1 @ \[0\]
88
globalX .* 2 @ \[3\]
9-
globalX .* TOP @ \[31\]
9+
globalX .* TOP @ \[30\]
1010
--

regression/goto-analyzer/liveness-function-call/test-write-location-show.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ main.c
33
--variable-sensitivity --show
44
^EXIT=0$
55
^SIGNAL=0$
6-
globalX .* 0 @ \[28\]
6+
globalX .* 0 @ \[27\]
77
globalX .* 1 @ \[0\]
88
globalX .* TOP @ \[0, 3\]
99
--

regression/goto-analyzer/liveness-function-call/test-write-location-three-way-show.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ main.c
33
--variable-sensitivity --three-way-merge --show
44
^EXIT=0$
55
^SIGNAL=0$
6-
globalX .* 0 @ \[28\]
6+
globalX .* 0 @ \[27\]
77
globalX .* 1 @ \[0\]
88
globalX .* 2 @ \[3\]
99
--

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

Lines changed: 25 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -10,29 +10,28 @@ __CPROVER_dead_object \(\) -> TOP @ \[5\]
1010
__CPROVER_deallocated \(\) -> TOP @ \[6\]
1111
__CPROVER_malloc_is_new_array \(\) -> FALSE @ \[9\]
1212
__CPROVER_malloc_object \(\) -> TOP @ \[10\]
13-
__CPROVER_malloc_size \(\) -> 0ull? @ \[11\]
14-
__CPROVER_memory_leak \(\) -> TOP @ \[13\]
15-
__CPROVER_next_thread_key \(\) -> 0ul @ \[15\]
16-
__CPROVER_pipe_count \(\) -> 0u @ \[16\]
17-
__CPROVER_rounding_mode \(\) -> 0 @ \[17\]
18-
__CPROVER_thread_id \(\) -> 0ul @ \[18\]
19-
__CPROVER_threads_exited \(\) -> TOP @ \[21\]
20-
do_arrays::1::bool_ \(\) -> TOP @ \[23\]
21-
do_arrays::1::bool_1 \(\) -> TOP @ \[24\]
22-
do_arrays::1::bool_2 \(\) -> TOP @ \[25\]
23-
do_arrays::1::x \(\) -> \{\[0\] = 10 @ \[27\]\n\} @ \[27\]
24-
do_arrays::1::x \(\) -> \{\[0\] = 10 @ \[27\]\n\[1\] = 20 @ \[28\]\n\} @ \[28\]
25-
do_arrays::1::x \(\) -> \{\[0\] = 30 @ \[29\]\n\[1\] = 20 @ \[28\]\n\} @ \[29\]
26-
do_arrays::1::x \(\) -> \{\[0\] = 30 @ \[29\]\n\[1\] = 40 @ \[30\]\n\} @ \[30\]
27-
do_arrays::1::x \(\) -> \{\[0\] = 30 @ \[29\]\n\[1\] = 30 @ \[31\]\n\} @ \[31\]
28-
do_arrays::1::x \(\) -> \{\[0\] = 30 @ \[32\]\n\[1\] = 30 @ \[31\]\n\} @ \[32\]
29-
do_arrays::1::x \(\) -> \{\[0\] = 5 @ \[33\]\n\[1\] = 30 @ \[31\]\n\} @ \[33\]
30-
do_arrays::1::x \(\) -> \{\[0\] = 15 @ \[34\]\n\[1\] = 30 @ \[31\]\n\} @ \[34\]
31-
do_arrays::1::x \(\) -> \{\[0\] = 15 @ \[34\]\n\[1\] = 10 @ \[35\]\n\} @ \[35\]
32-
do_arrays::1::x \(\) -> \{\[0\] = 20 @ \[37\]\n\[1\] = 10 @ \[35\]\n\} @ \[37\]
33-
do_arrays::1::x \(\) -> \{\[0\] = 20 @ \[37\, 39\]\n\[1\] = 10 @ \[35\]\n\} @ \[37\, 39\]
34-
do_arrays::1::x \(\) -> \{\[0\] = 0 @ \[41]\n\[1\] = 10 @ \[35\]\n\} @ \[41\]
35-
do_arrays::1::x \(\) -> \{\[0\] = 3 @ \[43]\n\[1\] = 10 @ \[35\]\n\} @ \[43\]
36-
do_arrays::1::x \(\) -> \{\[0\] = TOP @ \[43\, 45]\n\[1\] = 10 @ \[35\]\n\} @ \[43\, 45\]
37-
do_arrays::1::x \(\) -> \{\[0\] = TOP @ \[43\, 45\, 48]\n\[1\] = 10 @ \[50\]\n\} @ \[50\]
38-
do_arrays::1::x \(\) -> \{\[0\] = 20 @ \[51]\n\[1\] = 10 @ \[50\]\n\} @ \[51\]
13+
__CPROVER_memory_leak \(\) -> 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\]

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

Lines changed: 24 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -10,28 +10,27 @@ __CPROVER_dead_object \(\) -> TOP @ \[5\]
1010
__CPROVER_deallocated \(\) -> TOP @ \[6\]
1111
__CPROVER_malloc_is_new_array \(\) -> FALSE @ \[9\]
1212
__CPROVER_malloc_object \(\) -> TOP @ \[10\]
13-
__CPROVER_malloc_size \(\) -> 0ull? @ \[11\]
14-
__CPROVER_memory_leak \(\) -> TOP @ \[13\]
15-
__CPROVER_next_thread_id \(\) -> 0ul @ \[14\]
16-
__CPROVER_pipe_count \(\) -> 0u @ \[16\]
17-
__CPROVER_rounding_mode \(\) -> 0 @ \[17\]
18-
__CPROVER_thread_id \(\) -> 0ul @ \[18\]
19-
__CPROVER_threads_exited \(\) -> TOP @ \[21\]
20-
do_pointers::1::bool_ \(\) -> TOP @ \[23\]
21-
do_pointers::1::bool_1 \(\) -> TOP @ \[24\]
22-
do_pointers::1::bool_2 \(\) -> TOP @ \[25\]
23-
do_pointers::1::x \(\) -> TOP @ \[26\]
24-
do_pointers::1::x \(\) -> 10 @ \[27\]
25-
do_pointers::1::x_p \(\) -> TOP @ \[28\]
26-
do_pointers::1::y \(\) -> TOP @ \[29\]
27-
do_pointers::1::y \(\) -> 20 @ \[30\]
28-
do_pointers::1::y_p \(\) -> TOP @ \[31\]
29-
do_pointers::1::x_p \(\) -> ptr ->\(do_pointers::1::x\) @ \[32\]
30-
do_pointers::1::x \(\) -> 30 @ \[33\]
31-
do_pointers::1::x \(\) -> 40 @ \[34\]
32-
do_pointers::1::x \(\) -> TOP @ \[35\]
33-
do_pointers::1::x \(\) -> 50 @ \[36\]
34-
do_pointers::1::y_p \(\) -> ptr ->\(do_pointers::1::x\) @ \[37\]
35-
do_pointers::1::x \(\) -> 60 @ \[38\]
36-
do_pointers::1::j \(\) -> TOP @ \[39\]
37-
do_pointers::1::j \(\) -> 60 @ \[40\]
13+
__CPROVER_memory_leak \(\) -> 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\]

0 commit comments

Comments
 (0)