File tree Expand file tree Collapse file tree 16 files changed +430
-410
lines changed
regression/contracts-dfcc
assigns_enforce_malloc_02
assigns_replace_havoc_dependent_targets_fail
assigns_replace_havoc_dependent_targets_pass
function-calls-03-direct-recursion
function-pointer-contracts-enforce
test_is_fresh_replace_ensures_pass
src/goto-instrument/contracts/dynamic-frames Expand file tree Collapse file tree 16 files changed +430
-410
lines changed Original file line number Diff line number Diff line change 11CORE
22main.c
33--dfcc main --enforce-contract foo --replace-call-with-contract quz
4- ^\[bar.assigns.\d+\] line \d+ Check that \*y is assignable: SUCCESS$
5- ^\[quz.assigns.\d+\] Check that the assigns clause of contract::quz is included in the caller's assigns clause: FAILURE$
4+ ^\[bar.assigns.\d+\].*Check that \*y is assignable: SUCCESS$
65^VERIFICATION FAILED$
76^EXIT=10$
87^SIGNAL=0$
Original file line number Diff line number Diff line change 22main.c
33--dfcc main --enforce-contract f
44main.c function f
5- ^\[f.postcondition.\d+\] line 3 Check ensures clause of contract contract::f for function f: SUCCESS$
65^\[f.assigns.\d+\] line 7 Check that ptr is assignable: SUCCESS$
76^\[f.assigns.\d+\] line 12 Check that \*ptr is assignable: SUCCESS$
87^\[f.assigns.\d+\] line 13 Check that n is assignable: SUCCESS$
Original file line number Diff line number Diff line change 11CORE
22main.c
33--dfcc main --enforce-contract foo --replace-call-with-contract bar _ --pointer-primitive-check
4- ^\[bar.assigns.\d+\] Check that the assigns clause of contract::bar is included in the caller's assigns clause: FAILURE$
4+ ^\[bar.assigns.\d+\].* Check that the assigns clause of contract::bar is included in the caller's assigns clause: FAILURE$
55^VERIFICATION FAILED$
66^EXIT=10$
77^SIGNAL=0$
Original file line number Diff line number Diff line change 33--dfcc main --replace-call-with-contract bar --enforce-contract foo
44^EXIT=0$
55^SIGNAL=0$
6- ^\[bar.assigns.\d+\] Check that the assigns clause of contract::bar is included in the caller's assigns clause: SUCCESS$
6+ ^\[bar.assigns.\d+\].* Check that the assigns clause of contract::bar is included in the caller's assigns clause: SUCCESS$
77^VERIFICATION SUCCESSFUL$
88--
99--
Original file line number Diff line number Diff line change 11CORE
22main_replace.c
33--dfcc main --replace-call-with-contract resize_vec --enforce-contract resize_vec_incr10 _ --signed-overflow-check --unsigned-overflow-check --pointer-overflow-check
4- ^\[resize_vec.assigns.\d+\] Check that the assigns clause of contract::resize_vec is included in the caller's assigns clause: FAILURE$
5- ^\[resize_vec.frees.\d+\] Check that the frees clause of contract::resize_vec is included in the caller's frees clause: FAILURE$
4+ ^\[resize_vec.assigns.\d+\].* Check that the assigns clause of contract::resize_vec is included in the caller's assigns clause: FAILURE$
5+ ^\[resize_vec.frees.\d+\].* Check that the frees clause of contract::resize_vec is included in the caller's frees clause: FAILURE$
66^VERIFICATION FAILED$
77^EXIT=10$
88^SIGNAL=0$
Original file line number Diff line number Diff line change 11CORE
22main_replace.c
33--dfcc main --replace-call-with-contract resize_vec --enforce-contract resize_vec_incr10 _ --signed-overflow-check --unsigned-overflow-check --pointer-overflow-check
4- ^\[resize_vec.assigns.\d+\] Check that the assigns clause of contract::resize_vec is included in the caller's assigns clause: SUCCESS$
5- ^\[resize_vec.frees.\d+\] Check that the frees clause of contract::resize_vec is included in the caller's frees clause: SUCCESS$
4+ ^\[resize_vec.assigns.\d+\].* Check that the assigns clause of contract::resize_vec is included in the caller's assigns clause: SUCCESS$
5+ ^\[resize_vec.frees.\d+\].* Check that the frees clause of contract::resize_vec is included in the caller's frees clause: SUCCESS$
66^VERIFICATION SUCCESSFUL$
77^EXIT=0$
88^SIGNAL=0$
Original file line number Diff line number Diff line change 11CORE
22main.c
33--dfcc main --enforce-contract-rec f
4- ^\[f.postcondition.\d+\] .* Check ensures clause of contract contract::f for function f: SUCCESS$
5- ^\[f.precondition.\d+\] .* Check requires clause of contract contract::f for function f: SUCCESS$
6- ^\[f.assigns.\d+\] Check that the assigns clause of contract::f is included in the caller's assigns clause: SUCCESS$
7- ^\[f.frees.\d+\] Check that the frees clause of contract::f is included in the caller's frees clause: SUCCESS$
4+ ^\[f.postcondition.\d+\].* Check ensures clause of contract contract::f for function f: SUCCESS$
5+ ^\[f.precondition.\d+\].* Check requires clause of contract contract::f for function f: SUCCESS$
6+ ^\[f.assigns.\d+\].* Check that the assigns clause of contract::f is included in the caller's assigns clause: SUCCESS$
7+ ^\[f.frees.\d+\].* Check that the frees clause of contract::f is included in the caller's frees clause: SUCCESS$
88^EXIT=0$
99^SIGNAL=0$
1010^VERIFICATION SUCCESSFUL$
Original file line number Diff line number Diff line change 11CORE
22main.c
33--restrict-function-pointer foo.function_pointer_call.1/arr_fun_contract --dfcc main --enforce-contract foo --replace-call-with-contract bar --replace-call-with-contract arr_fun_contract
4- ^\[arr_fun_contract.assigns.\d+\] Check that the assigns clause of contract::arr_fun_contract is included in the caller's assigns clause: SUCCESS$
5- ^\[arr_fun_contract.frees.\d+\] Check that the frees clause of contract::arr_fun_contract is included in the caller's frees clause: SUCCESS$
6- ^\[arr_fun_contract.precondition.\d+\] line 14 Check requires clause of contract contract::arr_fun_contract for function arr_fun_contract: SUCCESS$
4+ ^\[arr_fun_contract.assigns.\d+\].* Check that the assigns clause of contract::arr_fun_contract is included in the caller's assigns clause: SUCCESS$
5+ ^\[arr_fun_contract.frees.\d+\].* Check that the frees clause of contract::arr_fun_contract is included in the caller's frees clause: SUCCESS$
6+ ^\[arr_fun_contract.precondition.\d+\].* Check requires clause of contract contract::arr_fun_contract for function arr_fun_contract: SUCCESS$
77^EXIT=0$
88^SIGNAL=0$
99^VERIFICATION SUCCESSFUL$
Original file line number Diff line number Diff line change 11CORE
22main.c
33--restrict-function-pointer foo.function_pointer_call.1/arr_fun_contract --dfcc main --enforce-contract foo --replace-call-with-contract bar
4- ^\[arr_fun_contract.assigns.\d+\] Check that the assigns clause of contract::arr_fun_contract is included in the caller's assigns clause: SUCCESS$
5- ^\[arr_fun_contract.frees.\d+\] Check that the frees clause of contract::arr_fun_contract is included in the caller's frees clause: SUCCESS$
6- ^\[arr_fun_contract.precondition.\d+\] line 14 Check requires clause of contract contract::arr_fun_contract for function arr_fun_contract: SUCCESS$
4+ ^\[arr_fun_contract.assigns.\d+\].* Check that the assigns clause of contract::arr_fun_contract is included in the caller's assigns clause: SUCCESS$
5+ ^\[arr_fun_contract.frees.\d+\].* Check that the frees clause of contract::arr_fun_contract is included in the caller's frees clause: SUCCESS$
6+ ^\[arr_fun_contract.precondition.\d+\].* Check requires clause of contract contract::arr_fun_contract for function arr_fun_contract: SUCCESS$
77^EXIT=0$
88^SIGNAL=0$
99^VERIFICATION SUCCESSFUL$
Original file line number Diff line number Diff line change 11CORE
22main.c
33--dfcc main --enforce-contract foo
4- ^\[foo.postcondition.\d+\].*Check ensures clause of contract contract::foo for function foo: SUCCESS$
54^\[foo.assigns.\d+\].*Check that i is assignable: SUCCESS$
65^\[foo.assigns.\d+\].*Check that arr\[\(.*\)i\] is assignable: SUCCESS$
76^VERIFICATION SUCCESSFUL$
You can’t perform that action at this time.
0 commit comments