25 i_it->turn_into_skip();
27 const std::size_t block_nr = basic_blocks.
block_of(i_it);
28 const auto representative_instruction = basic_blocks.
instruction_of(block_nr);
30 if(representative_instruction && *representative_instruction == i_it)
33 const std::string
id =
id2string(function_id) +
"#" + b;
42 "block " + b +
" (lines " + source_lines.to_string() +
")";
46 *i_it = make_assertion(
false_exprt(), source_location);
virtual const source_linest & source_lines_of(std::size_t block_nr) const =0
virtual const source_locationt & source_location_of(std::size_t block_nr) const =0
virtual std::optional< goto_programt::const_targett > instruction_of(std::size_t block_nr) const =0
virtual std::size_t block_of(goto_programt::const_targett t) const =0
const goal_filterst & goal_filters
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.
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.
dstringt has one field, an unsigned integer no which is an index into a static table of strings.
The Boolean constant false.
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
void set_basic_block_source_lines(irept source_lines)
Basic blocks detection for Coverage Instrumentation.
Filters for the Coverage Instrumentation.
Coverage Instrumentation.
const std::string & id2string(const irep_idt &d)
static std::string comment(const rw_set_baset::entryt &entry, bool write)
std::string to_string(const string_not_contains_constraintt &expr)
Used for debug printing.