57 for(symex_target_equationt::SSA_stepst::const_iterator
73 if(expr.
id()==ID_symbol)
77 else if(expr.
id()==ID_index)
85 else if(expr.
id()==ID_member)
90 else if(expr.
id()==ID_dereference)
110 if(dest.
id()==ID_and &&
124 if(
is_used(dest, lhs_identifier))
155 if(expr.
id()==ID_address_of)
161 else if(expr.
id()==ID_symbol &&
166 else if(expr.
id()==ID_symbol)
170 else if(expr.
id()==ID_dereference)
178 std::unordered_set<irep_idt> symbols;
180 for(value_setst::valuest::const_iterator
190 return symbols.find(identifier)!=symbols.end();
const irep_idt & get_identifier() const
void get_value_set(const exprt &expr, value_setst::valuest &dest, const namespacet &ns) const
Gets values pointed to by expr, including following dereference operators (i.e.
bool is_used_address_of(const exprt &expr, const irep_idt &identifier)
void compute(exprt &dest)
bool get_bool(const irep_namet &name) const
const value_sett & value_set
postconditiont(const namespacet &_ns, const value_sett &_value_set, const symex_target_equationt::SSA_stept &_SSA_step, const goto_symex_statet &_s)
void get_original_name(exprt &expr) const
const irep_idt & id() const
const ssa_exprt & to_ssa_expr(const exprt &expr)
Cast a generic exprt to an ssa_exprt.
The boolean constant true.
Generate Equation using Symbolic Execution.
API to expression classes.
#define forall_operands(it, expr)
const symbol_exprt & to_symbol_expr(const exprt &expr)
Cast a generic exprt to a symbol_exprt.
State type in value_set_domaint, used in value-set analysis and goto-symex.
void postcondition(const namespacet &ns, const value_sett &value_set, const symex_target_equationt &equation, const goto_symex_statet &s, exprt &dest)
void strengthen(exprt &dest)
Base class for all expressions.
irep_idt get_object_name() const
#define Forall_operands(it, expr)
bool is_used(const exprt &expr, const irep_idt &identifier)
const goto_symex_statet & s
std::list< exprt > valuest
const symex_target_equationt::SSA_stept & SSA_step
void find_symbols(const exprt &src, find_symbols_sett &dest)