Skip to content

Commit 5ec6290

Browse files
author
Remi Delmas
committed
CONTRACTS: drop (requires|ensures)_contract clauses
Removes support for contract clauses - `__CPROVER_requires_contract(fptr, contract)` - `__CPROVER_ensures_contract(fptr, contract)` The clause format was cumbersome to use for pointers embedded in other data structures, they will be replaced by a predicate.
1 parent 20535ad commit 5ec6290

31 files changed

+3
-909
lines changed

regression/contracts-dfcc/function-pointer-contracts-enforce/main.c

Lines changed: 0 additions & 65 deletions
This file was deleted.

regression/contracts-dfcc/function-pointer-contracts-enforce/test-manual-swap.desc

Lines changed: 0 additions & 22 deletions
This file was deleted.

regression/contracts-dfcc/function-pointer-contracts-enforce/test.desc

Lines changed: 0 additions & 22 deletions
This file was deleted.

regression/contracts-dfcc/function-pointer-contracts-replace/main.c

Lines changed: 0 additions & 39 deletions
This file was deleted.

regression/contracts-dfcc/function-pointer-contracts-replace/test.desc

Lines changed: 0 additions & 15 deletions
This file was deleted.

regression/contracts/function-pointer-contracts-enforce/main.c

Lines changed: 0 additions & 62 deletions
This file was deleted.

regression/contracts/function-pointer-contracts-enforce/test.desc

Lines changed: 0 additions & 11 deletions
This file was deleted.

regression/contracts/function-pointer-contracts-replace/main.c

Lines changed: 0 additions & 39 deletions
This file was deleted.

regression/contracts/function-pointer-contracts-replace/test.desc

Lines changed: 0 additions & 11 deletions
This file was deleted.

src/ansi-c/ansi_c_convert_type.cpp

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -259,12 +259,6 @@ void ansi_c_convert_typet::read_rec(const typet &type)
259259
static_cast<const exprt &>(static_cast<const irept &>(type));
260260
requires.push_back(to_unary_expr(as_expr).op());
261261
}
262-
else if(type.id() == ID_C_spec_requires_contract)
263-
{
264-
const exprt &as_expr =
265-
static_cast<const exprt &>(static_cast<const irept &>(type));
266-
requires_contract.push_back(to_unary_expr(as_expr).op());
267-
}
268262
else if(type.id() == ID_C_spec_assigns)
269263
{
270264
const exprt &as_expr =
@@ -287,12 +281,6 @@ void ansi_c_convert_typet::read_rec(const typet &type)
287281
static_cast<const exprt &>(static_cast<const irept &>(type));
288282
ensures.push_back(to_unary_expr(as_expr).op());
289283
}
290-
else if(type.id() == ID_C_spec_ensures_contract)
291-
{
292-
const exprt &as_expr =
293-
static_cast<const exprt &>(static_cast<const irept &>(type));
294-
ensures_contract.push_back(to_unary_expr(as_expr).op());
295-
}
296284
else
297285
other.push_back(type);
298286
}
@@ -342,10 +330,6 @@ void ansi_c_convert_typet::write(typet &type)
342330
if(!requires.empty())
343331
to_code_with_contract_type(type).requires() = std::move(requires);
344332

345-
if(!requires_contract.empty())
346-
to_code_with_contract_type(type).requires_contract() =
347-
std::move(requires_contract);
348-
349333
if(!assigns.empty())
350334
to_code_with_contract_type(type).assigns() = std::move(assigns);
351335

@@ -355,10 +339,6 @@ void ansi_c_convert_typet::write(typet &type)
355339
if(!ensures.empty())
356340
to_code_with_contract_type(type).ensures() = std::move(ensures);
357341

358-
if(!ensures_contract.empty())
359-
to_code_with_contract_type(type).ensures_contract() =
360-
std::move(ensures_contract);
361-
362342
if(constructor || destructor)
363343
{
364344
if(constructor && destructor)

src/ansi-c/ansi_c_convert_type.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,7 @@ class ansi_c_convert_typet:public messaget
4747
bool constructor, destructor;
4848

4949
// contracts
50-
exprt::operandst assigns, frees, ensures, requires, ensures_contract,
51-
requires_contract;
50+
exprt::operandst assigns, frees, ensures, requires;
5251

5352
// storage spec
5453
c_storage_spect c_storage_spec;

0 commit comments

Comments
 (0)