27 if(it->type().id()==ID_pointer)
33 else if(src.
id()==ID_minus)
36 read(minus_src.op0());
38 minus_src.op1(), minus_src.op1().type());
41 else if(src.
id()==ID_address_of)
44 if(address_of_src.op().id() == ID_index)
54 auto new_address_of_src = address_of_src;
55 new_address_of_src.op().op1() =
const minus_exprt & to_minus_expr(const exprt &expr)
Cast an exprt to a minus_exprt.
void copy_to_operands(const exprt &expr)
Copy the given argument to the end of exprt's operands.
typet & type()
Return the type of the expression.
const address_of_exprt & to_address_of_expr(const exprt &expr)
Cast an exprt to an address_of_exprt.
const irep_idt & id() const
void add_to_offset(const exprt &src)
API to expression classes.
pointer_arithmetict(const exprt &src)
#define forall_operands(it, expr)
The plus expression Associativity is not specified.
void read(const exprt &src)
void make_pointer(const exprt &src)
The unary minus expression.
Base class for all expressions.
bool is_zero() const
Return whether the expression is a constant representing 0.
void make_typecast(const typet &_type)
Create a typecast_exprt to the given type.
const index_exprt & to_index_expr(const exprt &expr)
Cast an exprt to an index_exprt.