Skip to content

Commit 7eb465f

Browse files
author
Remi Delmas
committed
Add TODOs: override pointer equality
Must be done in : - requires clause expression - ensures clause expression - user-defined pointer predicates
1 parent 8fc0f1d commit 7eb465f

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

Diff for: src/goto-instrument/contracts/dynamic-frames/dfcc_lift_memory_predicates.cpp

+4
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,10 @@ Date: August 2022
77
88
\*******************************************************************/
99

10+
// TODO when scanning the goto functions to detect pointer predicates,
11+
// replace pointer equality p == q with __CPROVER_pointer_equals(p,q)
12+
// in all user-defined memory predicates.
13+
1014
#include "dfcc_lift_memory_predicates.h"
1115

1216
#include <util/cprover_prefix.h>

Diff for: src/goto-instrument/contracts/dynamic-frames/dfcc_wrapper_program.cpp

+5-1
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ Author: Remi Delmas, [email protected]
2727
#include "dfcc_instrument.h"
2828
#include "dfcc_library.h"
2929
#include "dfcc_lift_memory_predicates.h"
30+
#include "dfcc_pointer_equals.h"
3031
#include "dfcc_utils.h"
3132

3233
/// Generate the contract write set
@@ -563,6 +564,8 @@ void dfcc_wrapper_programt::encode_requires_clauses()
563564
"Check requires clause of contract " + id2string(contract_symbol.name) +
564565
" for function " + id2string(wrapper_id));
565566
}
567+
// // rewrite pointer equalities before goto conversion
568+
// TODO rewrite_equal_exprt_to_pointer_equals(requires_lmbd);
566569
codet requires_statement(statement_type, {std::move(requires_lmbd)}, sl);
567570
converter.goto_convert(requires_statement, requires_program, language_mode);
568571
}
@@ -614,7 +617,8 @@ void dfcc_wrapper_programt::encode_ensures_clauses()
614617
"Check ensures clause of contract " + id2string(contract_symbol.name) +
615618
" for function " + id2string(wrapper_id));
616619
}
617-
620+
// // rewrite pointer equalities before goto conversion
621+
// TODO rewrite_equal_exprt_to_pointer_equals(ensures);
618622
codet ensures_statement(statement_type, {std::move(ensures)}, sl);
619623
converter.goto_convert(ensures_statement, ensures_program, language_mode);
620624
}

0 commit comments

Comments
 (0)