26 i_it->turn_into_skip();
29 if(!i_it->source_location().is_built_in())
35 for(
const auto &c : conditions)
37 const std::string c_string =
from_expr(
ns, function_id, c);
39 const std::string comment_t =
"condition '" + c_string +
"' true";
42 *i_it = make_assertion(c, source_location);
44 const std::string comment_f =
"condition '" + c_string +
"' false";
47 *i_it = make_assertion(
not_exprt(c), source_location);
50 for(std::size_t i = 0; i < conditions.size() * 2; i++)
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.
bool is_non_cover_assertion(goto_programt::const_targett t) const
void initialize_source_location(source_locationt &source_location, const std::string &comment, const irep_idt &function_id) const
std::function< goto_programt::instructiont(const exprt &, const source_locationt &)> assertion_factoryt
The type of function used to make goto_program assertions.
dstringt has one field, an unsigned integer no which is an index into a static table of strings.
A generic container class for the GOTO intermediate representation of one function.
void insert_before_swap(targett target)
Insertion that preserves jumps to "target".
instructionst::iterator targett
Coverage Instrumentation.
std::set< exprt > collect_conditions(const exprt &src)
Coverage Instrumentation Utilities.
std::string from_expr(const namespacet &ns, const irep_idt &identifier, const exprt &expr)