Go to the documentation of this file.
26 i_it->turn_into_skip();
29 if(!i_it->source_location().is_built_in())
35 for(
const auto &d : decisions)
37 const std::string d_string =
from_expr(
ns, function_id, d);
39 const std::string comment_t =
"decision '" + d_string +
"' true";
41 *i_it = make_assertion(d, source_location);
44 const std::string comment_f =
"decision '" + d_string +
"' false";
46 *i_it = make_assertion(
not_exprt(d), source_location);
51 for(std::size_t i = 0; i < decisions.size() * 2; i++)
dstringt has one field, an unsigned integer no which is an index into a static table of strings.
bool is_non_cover_assertion(goto_programt::const_targett t) const
void initialize_source_location(goto_programt::targett t, const std::string &comment, const irep_idt &function_id) const
void instrument(const irep_idt &function_id, goto_programt &, goto_programt::targett &, const cover_blocks_baset &, const assertion_factoryt &) const override
Override this method to implement an instrumenter.
std::set< exprt > collect_decisions(const goto_programt::const_targett t)
std::function< goto_programt::instructiont(const exprt &, const source_locationt &)> assertion_factoryt
The type of function used to make goto_program assertions.
A generic container class for the GOTO intermediate representation of one function.
void insert_before_swap(targett target)
Insertion that preserves jumps to "target".
std::string from_expr(const namespacet &ns, const irep_idt &identifier, const exprt &expr)
instructionst::iterator targett