Skip to content

Commit b3b2ee7

Browse files
committed
Adds a code contract module to goto-instrument
Signed-off-by: Felipe R. Monteiro <[email protected]>
1 parent 58612c4 commit b3b2ee7

11 files changed

+30
-22
lines changed

CODEOWNERS

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,8 @@
4545
/src/goto-analyzer/ @martin-cs @chrisr-diffblue @peterschrammel
4646
/src/goto-harness/ @martin-cs @chrisr-diffblue @peterschrammel
4747
/src/goto-instrument/ @martin-cs @chrisr-diffblue @peterschrammel
48-
/src/goto-instrument/code_contracts.* @tautschnig @feliperodri @SaswatPadhi
49-
doc/cprover-manual/contracts* @tautschnig @feliperodri @SaswatPadhi
48+
/src/goto-instrument/contracts/ @tautschnig @feliperodri @SaswatPadhi
49+
/doc/cprover-manual/contracts* @tautschnig @feliperodri @SaswatPadhi
5050
/src/goto-diff/ @tautschnig @peterschrammel
5151
/src/jsil/ @kroening @tautschnig
5252
/src/memory-analyzer/ @tautschnig @chrisr-diffblue

src/goto-instrument/Makefile

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@ SRC = accelerate/accelerate.cpp \
1616
alignment_checks.cpp \
1717
branch.cpp \
1818
call_sequences.cpp \
19-
contracts_assigns.cpp \
20-
contracts_memory_predicates.cpp \
21-
contracts.cpp \
19+
contracts/assigns.cpp \
20+
contracts/memory_predicates.cpp \
21+
contracts/contracts.cpp \
2222
concurrency.cpp \
2323
count_eloc.cpp \
2424
cover.cpp \

src/goto-instrument/contracts_assigns.cpp renamed to src/goto-instrument/contracts/assigns.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ Date: July 2021
1111
/// \file
1212
/// Specify write set in function contracts
1313

14-
#include "contracts_assigns.h"
14+
#include "assigns.h"
1515

1616
#include <util/arith_tools.h>
1717
#include <util/c_types.h>
@@ -328,4 +328,4 @@ exprt assigns_clauset::compatible_expression(
328328
}
329329

330330
return result;
331-
}
331+
}

src/goto-instrument/contracts_assigns.h renamed to src/goto-instrument/contracts/assigns.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,4 +87,4 @@ class assigns_clauset
8787
messaget log;
8888
};
8989

90-
#endif // CPROVER_GOTO_INSTRUMENT_CONTRACTS_ASSIGNS_H
90+
#endif // CPROVER_GOTO_INSTRUMENT_CONTRACTS_ASSIGNS_H

src/goto-instrument/contracts.cpp renamed to src/goto-instrument/contracts/contracts.cpp

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,9 @@ Date: February 2016
1111
/// \file
1212
/// Verify and use annotated invariants and pre/post-conditions
1313

14-
#include "contracts_assigns.h"
15-
#include "contracts_memory_predicates.h"
14+
#include "contracts.h"
15+
#include "assigns.h"
16+
#include "memory_predicates.h"
1617

1718
#include <algorithm>
1819
#include <map>
@@ -21,8 +22,6 @@ Date: February 2016
2122

2223
#include <ansi-c/c_expr.h>
2324

24-
#include <goto-instrument/contracts_memory_predicates.h>
25-
2625
#include <goto-programs/remove_skip.h>
2726

2827
#include <util/c_types.h>
@@ -162,8 +161,8 @@ void code_contractst::check_apply_loop_contracts(
162161

163162
// Generate: an assignment to store the decreases clause's value before the
164163
// loop
165-
code_assignt old_decreases_assignment{
166-
old_decreases_symbol, decreases_clause};
164+
code_assignt old_decreases_assignment{old_decreases_symbol,
165+
decreases_clause};
167166
old_decreases_assignment.add_source_location() = loop_head->source_location;
168167
converter.goto_convert(old_decreases_assignment, havoc_code, mode);
169168
}
@@ -200,8 +199,8 @@ void code_contractst::check_apply_loop_contracts(
200199

201200
// Generate: an assignment to store the decreases clause's value after one
202201
// iteration of the loop
203-
code_assignt new_decreases_assignment{
204-
new_decreases_symbol, decreases_clause};
202+
code_assignt new_decreases_assignment{new_decreases_symbol,
203+
decreases_clause};
205204
new_decreases_assignment.add_source_location() = loop_head->source_location;
206205
converter.goto_convert(new_decreases_assignment, havoc_code, mode);
207206

@@ -1261,4 +1260,4 @@ bool code_contractst::enforce_contracts(
12611260
fail = enforce_contract(fun);
12621261
}
12631262
return fail;
1264-
}
1263+
}

src/goto-instrument/contracts.h renamed to src/goto-instrument/contracts/contracts.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ Date: February 2016
1919
#include <string>
2020
#include <unordered_set>
2121

22+
#include <goto-instrument/loop_utils.h>
23+
2224
#include <goto-programs/goto_convert_class.h>
2325
#include <goto-programs/goto_functions.h>
2426
#include <goto-programs/goto_model.h>
@@ -29,8 +31,6 @@ Date: February 2016
2931
#include <util/namespace.h>
3032
#include <util/pointer_expr.h>
3133

32-
#include "loop_utils.h"
33-
3434
#define FLAG_LOOP_CONTRACTS "apply-loop-contracts"
3535
#define HELP_LOOP_CONTRACTS \
3636
" --apply-loop-contracts\n" \

src/goto-instrument/contracts_memory_predicates.cpp renamed to src/goto-instrument/contracts/memory_predicates.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ Date: July 2021
1111
/// \file
1212
/// Predicates to specify memory footprint in function contracts
1313

14-
#include "contracts_memory_predicates.h"
14+
#include "memory_predicates.h"
1515

1616
#include <ansi-c/ansi_c_language.h>
1717
#include <ansi-c/expr2c.h>

src/goto-instrument/contracts_memory_predicates.h renamed to src/goto-instrument/contracts/memory_predicates.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,4 +156,4 @@ class function_binding_visitort : const_expr_visitort
156156
}
157157
};
158158

159-
#endif // CPROVER_GOTO_INSTRUMENT_CONTRACTS_MEMORY_PREDICATES_H
159+
#endif // CPROVER_GOTO_INSTRUMENT_CONTRACTS_MEMORY_PREDICATES_H
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
analyses
2+
ansi-c
3+
goto-instrument/contracts
4+
goto-instrument
5+
goto-programs
6+
langapi
7+
linking
8+
util

src/goto-instrument/goto_instrument_parse_options.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ Author: Daniel Kroening, [email protected]
2929
#include <analyses/goto_check.h>
3030

3131
#include "aggressive_slicer.h"
32-
#include "contracts.h"
32+
#include "contracts/contracts.h"
3333
#include "generate_function_bodies.h"
3434
#include "insert_final_assert_false.h"
3535
#include "nondet_volatile.h"

src/goto-instrument/module_dependencies.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ accelerate
22
analyses
33
ansi-c
44
assembler
5+
contracts
56
cpp
67
goto-instrument
78
goto-programs

0 commit comments

Comments
 (0)