23 return val.find_first_not_of(
'0')==std::string::npos;
70 if(expr.
id()==ID_index)
77 assert(sub_size.is_not_nil());
84 else if(expr.
id()==ID_member)
98 else if(expr.
id()==ID_byte_extract_little_endian ||
99 expr.
id()==ID_byte_extract_big_endian)
112 else if(expr.
id()==ID_typecast)
127 assert(
object().
id()==ID_unknown);
130 if(
offset().
id()==ID_unknown)
146 const std::size_t _distance):
153 const std::size_t _index):
161 const std::size_t _upper,
162 const std::size_t _lower,
164 exprt(ID_extractbits, _type)
166 assert(_upper>=_lower);
The type of an expression.
const typecast_exprt & to_typecast_expr(const exprt &expr)
Cast a generic exprt to a typecast_exprt.
exprt size_of_expr(const typet &type, const namespacet &ns)
exprt member_offset_expr(const member_exprt &member_expr, const namespacet &ns)
const std::string & id2string(const irep_idt &d)
pointer_typet pointer_type(const typet &subtype)
unsigned int get_instance() const
shift_exprt(const irep_idt &_id)
const member_exprt & to_member_expr(const exprt &expr)
Cast a generic exprt to a member_exprt.
const irep_idt & get_value() const
const exprt & root_object() const
A constant literal expression.
bool value_is_zero_string() const
Extract member of struct or union.
void set_instance(unsigned int instance)
const index_exprt & to_index_expr(const exprt &expr)
Cast a generic exprt to an index_exprt.
exprt conjunction(const exprt::operandst &op)
const irep_idt & id() const
Expression classes for byte-level operators.
The boolean constant true.
static void build_object_descriptor_rec(const namespacet &ns, const exprt &expr, object_descriptor_exprt &dest)
Build an object_descriptor_exprt from a given expr.
A generic base class for binary expressions.
void build(const exprt &expr, const namespacet &ns)
Build an object_descriptor_exprt from a given expr.
API to expression classes.
Generic base class for unary expressions.
split an expression into a base object and a (byte) offset
bitvector_typet index_type()
The boolean constant false.
exprt disjunction(const exprt::operandst &op)
std::vector< exprt > operandst
Unbounded, signed integers.
static constant_exprt integer_constant(unsigned v)
Base class for all expressions.
const exprt & struct_op() const
A generic base class for expressions that are predicates, i.e., boolean-typed, and that take exactly ...
const constant_exprt & to_constant_expr(const exprt &expr)
Cast a generic exprt to a constant_exprt.
const byte_extract_exprt & to_byte_extract_expr(const exprt &expr)