Go to the documentation of this file.
42 statement == ID_expression || statement == ID_array_set ||
43 statement == ID_array_equal || statement == ID_array_copy ||
44 statement == ID_array_replace || statement == ID_havoc_object ||
45 statement == ID_input || statement == ID_output)
62 if(expr.
id() == ID_address_of)
75 if(expr.
id() == ID_symbol)
79 dirty.insert(identifier);
81 else if(expr.
id() == ID_member)
85 else if(expr.
id() == ID_index)
90 else if(expr.
id() == ID_dereference)
94 else if(expr.
id() == ID_if)
105 for(
const auto &d :
dirty)
117 if(insert_result.second)
dstringt has one field, an unsigned integer no which is an index into a static table of strings.
const goto_instruction_codet & get_other() const
Get the statement for OTHER.
const dereference_exprt & to_dereference_expr(const exprt &expr)
Cast an exprt to a dereference_exprt.
const index_exprt & to_index_expr(const exprt &expr)
Cast an exprt to an index_exprt.
const if_exprt & to_if_expr(const exprt &expr)
Cast an exprt to an if_exprt.
void add_function(const goto_functiont &goto_function)
Base class for all expressions.
void build(const goto_functionst &goto_functions)
void find_dirty(const exprt &expr)
std::unordered_set< irep_idt > dirty_processed_functions
#define forall_operands(it, expr)
const irep_idt & get_identifier() const
void populate_dirty_for_function(const irep_idt &id, const goto_functionst::goto_functiont &function)
Analyse the given function with dirtyt if it hasn't been seen before.
std::unordered_set< irep_idt > dirty
const symbol_exprt & to_symbol_expr(const exprt &expr)
Cast an exprt to a symbol_exprt.
const irep_idt & id() const
A goto function, consisting of function body (see body) and parameter identifiers (see parameter_iden...
::goto_functiont goto_functiont
instructionst instructions
The list of instructions in the goto program.
void output(std::ostream &out) const
void search_other(const goto_programt::instructiont &instruction)
void die_if_uninitialized() const
const member_exprt & to_member_expr(const exprt &expr)
Cast an exprt to a member_exprt.
const address_of_exprt & to_address_of_expr(const exprt &expr)
Cast an exprt to an address_of_exprt.
Operator to return the address of an object.
const irep_idt & get_statement() const
This class represents an instruction in the GOTO intermediate representation.
void find_dirty_address_of(const exprt &expr)
Data structure for representing an arbitrary statement in a program.