Go to the documentation of this file.
26 if(expr.
id()==ID_address_of)
39 if(expr.
id()==ID_symbol)
44 dirty.insert(identifier);
46 else if(expr.
id()==ID_member)
50 else if(expr.
id()==ID_index)
55 else if(expr.
id()==ID_dereference)
59 else if(expr.
id()==ID_if)
70 for(
const auto &d :
dirty)
81 if(insert_result.second)
dstringt has one field, an unsigned integer no which is an index into a static table of strings.
Variables whose address is taken.
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
const address_of_exprt & to_address_of_expr(const exprt &expr)
Cast an exprt to an address_of_exprt.
#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 type (see type), function body (see body),...
::goto_functiont goto_functiont
instructionst instructions
The list of instructions in the goto program.
const dereference_exprt & to_dereference_expr(const exprt &expr)
Cast an exprt to a dereference_exprt.
void output(std::ostream &out) const
void die_if_uninitialized() const
const member_exprt & to_member_expr(const exprt &expr)
Cast an exprt to a member_exprt.
Operator to return the address of an object.
API to expression classes.
void find_dirty_address_of(const exprt &expr)