Skip to content

Commit 5093206

Browse files
committed
Extends ansi_c_declarationt to include accessors for assigns clauses
1 parent c7d79a4 commit 5093206

File tree

2 files changed

+21
-9
lines changed

2 files changed

+21
-9
lines changed

src/ansi-c/ansi_c_declaration.h

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -244,6 +244,21 @@ class ansi_c_declarationt:public exprt
244244
assert(!declarators().empty());
245245
declarators().back().value().swap(value);
246246
}
247+
248+
const exprt &spec_assigns() const
249+
{
250+
return static_cast<const exprt &>(find(ID_C_spec_assigns));
251+
}
252+
253+
const exprt &spec_requires() const
254+
{
255+
return static_cast<const exprt &>(find(ID_C_spec_requires));
256+
}
257+
258+
const exprt &spec_ensures() const
259+
{
260+
return static_cast<const exprt &>(find(ID_C_spec_ensures));
261+
}
247262
};
248263

249264
inline ansi_c_declarationt &to_ansi_c_declaration(exprt &expr)

src/ansi-c/c_typecheck_base.cpp

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -645,17 +645,14 @@ void c_typecheck_baset::typecheck_declaration(
645645
irept contract;
646646

647647
{
648-
exprt spec_assigns=
649-
static_cast<const exprt&>(declaration.find(ID_C_spec_assigns));
650-
contract.add(ID_C_spec_assigns).swap(spec_assigns);
648+
exprt spec_assigns = declaration.spec_assigns();
649+
contract.add(ID_C_spec_assigns).swap(spec_assigns);
651650

652-
exprt spec_requires=
653-
static_cast<const exprt&>(declaration.find(ID_C_spec_requires));
654-
contract.add(ID_C_spec_requires).swap(spec_requires);
651+
exprt spec_ensures = declaration.spec_ensures();
652+
contract.add(ID_C_spec_ensures).swap(spec_ensures);
655653

656-
exprt spec_ensures=
657-
static_cast<const exprt&>(declaration.find(ID_C_spec_ensures));
658-
contract.add(ID_C_spec_ensures).swap(spec_ensures);
654+
exprt spec_requires = declaration.spec_requires();
655+
contract.add(ID_C_spec_requires).swap(spec_requires);
659656
}
660657

661658
// Now do declarators, if any.

0 commit comments

Comments
 (0)