File tree Expand file tree Collapse file tree 2 files changed +20
-8
lines changed
Expand file tree Collapse file tree 2 files changed +20
-8
lines changed Original file line number Diff line number Diff 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
249264inline ansi_c_declarationt &to_ansi_c_declaration (exprt &expr)
Original file line number Diff line number Diff 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));
648+ exprt spec_assigns = declaration.spec_assigns ();
650649 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);
655-
656- exprt spec_ensures=
657- static_cast <const exprt&>(declaration.find (ID_C_spec_ensures));
651+ exprt spec_ensures = declaration.spec_ensures ();
658652 contract.add (ID_C_spec_ensures).swap (spec_ensures);
653+
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.
You can’t perform that action at this time.
0 commit comments