84 for(loopt::const_iterator
85 l_it=loop.begin(); l_it!=loop.end(); l_it++)
90 for(goto_programt::targetst::iterator
91 t_it=instruction.
targets.begin();
92 t_it!=instruction.
targets.end();
107 for(
const auto &instruction_it : loop)
126 function_assigns, gf_entry.second,
namespacet{goto_model.symbol_table});
void get_assigns(const local_may_aliast &local_may_alias, const goto_programt::const_targett, assignst &)
function_mapt function_map
::goto_functiont goto_functiont
A goto function, consisting of function body (see body) and parameter identifiers (see parameter_iden...
goto_functionst goto_functions
GOTO functions.
This class represents an instruction in the GOTO intermediate representation.
targetst targets
The list of successor instructions.
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
const natural_loops_mutablet::natural_loopt loopt
void havoc_loop(const goto_programt::targett loop_head, const loopt &)
void get_assigns(const loopt &, assignst &)
goto_functiont & goto_function
havoc_loopst(function_assignst &_function_assigns, goto_functiont &_goto_function, const namespacet &ns)
local_may_aliast local_may_alias
goto_functionst::goto_functiont goto_functiont
function_assignst & function_assigns
natural_loops_mutablet natural_loops
std::set< exprt > assignst
void append_full_havoc_code(const source_locationt location, goto_programt &dest)
Append goto instructions to havoc the full assigns set.
A namespacet is essentially one or two symbol tables bound together, to allow for symbol lookups in t...
parentt::loopt natural_loopt
Compute objects assigned to in a function.
void havoc_loops(goto_modelt &goto_model)
Utilities for building havoc code for expressions.
Field-insensitive, location-sensitive may-alias analysis.
goto_programt::targett get_loop_exit(const loopt &loop)
Helper functions for k-induction and loop invariants.
Compute natural loops in a goto_function.
void remove_skip(goto_programt &goto_program, goto_programt::targett begin, goto_programt::targett end)
remove unnecessary skip statements
#define PRECONDITION(CONDITION)