Skip to content

Commit 284ae03

Browse files
committed
C/C++ library: move free/delete-only definitions to library
With the support of building initialisers while adding the library we can move library-only symbols to the library. This avoids polluting the initialisation function for all cases that don't actually use memory (de-)allocation library functions.
1 parent fd8415b commit 284ae03

File tree

36 files changed

+216
-210
lines changed

36 files changed

+216
-210
lines changed

regression/cbmc-library/alloca-02/main.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,14 @@
44
void *alloca(size_t alloca_size);
55
#endif
66

7+
// intentionally type conflicting: the built-in library uses const void*; this
8+
// is to check that object type updates are performed
9+
extern const char *__CPROVER_alloca_object;
10+
711
int *foo()
812
{
913
int *foo_ptr = alloca(sizeof(int));
14+
__CPROVER_assert(foo_ptr == __CPROVER_alloca_object, "may fail");
1015
return foo_ptr;
1116
}
1217

regression/cbmc-library/alloca-02/test.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ CORE
22
main.c
33
--pointer-check
44
dereference failure: dead object in \*from_foo: FAILURE$
5-
^\*\* 1 of 6 failed
5+
^\*\* 2 of 7 failed
66
^VERIFICATION FAILED$
77
^EXIT=10$
88
^SIGNAL=0$

regression/cbmc-library/free-01/test.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
CORE
22
main.c
33
--pointer-check --bounds-check --stop-on-fail
4-
free argument must be NULL or valid pointer
4+
free argument must be (NULL or valid pointer|dynamic object)
55
^EXIT=10$
66
^SIGNAL=0$
77
^VERIFICATION FAILED$

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

Lines changed: 2 additions & 2 deletions
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: 6, function calls: 0$
7-
^Unmodified: assert: 0, assume: 0, goto: 0, assigns: 14, function calls: 2$
6+
^Simplified: assert: 1, assume: 0, goto: 1, assigns: 5, function calls: 0$
7+
^Unmodified: assert: 0, assume: 0, goto: 0, assigns: 12, function calls: 2$
88
--
99
^warning: ignoring

regression/goto-analyzer/constant_propagation_01/test.desc

Lines changed: 2 additions & 2 deletions
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: 6, function calls: 0$
7-
^Unmodified: assert: 0, assume: 0, goto: 0, assigns: 14, function calls: 2$
6+
^Simplified: assert: 1, assume: 0, goto: 1, assigns: 5, function calls: 0$
7+
^Unmodified: assert: 0, assume: 0, goto: 0, assigns: 12, function calls: 2$
88
--
99
^warning: ignoring

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

Lines changed: 2 additions & 2 deletions
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$
7-
^Unmodified: assert: 0, assume: 0, goto: 0, assigns: 13, function calls: 2$
6+
^Simplified: assert: 1, assume: 0, goto: 1, assigns: 6, function calls: 0$
7+
^Unmodified: assert: 0, assume: 0, goto: 0, assigns: 11, function calls: 2$
88
--
99
^warning: ignoring

regression/goto-analyzer/constant_propagation_02/test.desc

Lines changed: 2 additions & 2 deletions
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$
7-
^Unmodified: assert: 0, assume: 0, goto: 0, assigns: 13, function calls: 2$
6+
^Simplified: assert: 1, assume: 0, goto: 1, assigns: 6, function calls: 0$
7+
^Unmodified: assert: 0, assume: 0, goto: 0, assigns: 11, function calls: 2$
88
--
99
^warning: ignoring

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

Lines changed: 2 additions & 2 deletions
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$
7-
^Unmodified: assert: 0, assume: 0, goto: 0, assigns: 13, function calls: 2$
6+
^Simplified: assert: 1, assume: 0, goto: 1, assigns: 6, function calls: 0$
7+
^Unmodified: assert: 0, assume: 0, goto: 0, assigns: 11, function calls: 2$
88
--
99
^warning: ignoring

regression/goto-analyzer/constant_propagation_03/test.desc

Lines changed: 2 additions & 2 deletions
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$
7-
^Unmodified: assert: 0, assume: 0, goto: 0, assigns: 13, function calls: 2$
6+
^Simplified: assert: 1, assume: 0, goto: 1, assigns: 6, function calls: 0$
7+
^Unmodified: assert: 0, assume: 0, goto: 0, assigns: 11, function calls: 2$
88
--
99
^warning: ignoring

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

Lines changed: 2 additions & 2 deletions
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$
7-
^Unmodified: assert: 0, assume: 0, goto: 0, assigns: 13, function calls: 2$
6+
^Simplified: assert: 1, assume: 0, goto: 1, assigns: 6, function calls: 0$
7+
^Unmodified: assert: 0, assume: 0, goto: 0, assigns: 11, function calls: 2$
88
--
99
^warning: ignoring

0 commit comments

Comments
 (0)