21 return val.find_first_not_of(
'0')==std::string::npos;
68 if(expr.
id()==ID_index)
75 assert(sub_size.is_not_nil());
82 else if(expr.
id()==ID_member)
96 else if(expr.
id()==ID_byte_extract_little_endian ||
97 expr.
id()==ID_byte_extract_big_endian)
110 else if(expr.
id()==ID_typecast)
125 assert(
object().
id()==ID_unknown);
128 if(
offset().
id()==ID_unknown)
139 const std::size_t _distance):
146 const std::size_t _index):
154 const std::size_t _upper,
155 const std::size_t _lower,
157 exprt(ID_extractbits, _type)
159 assert(_upper>=_lower);
The type of an expression.
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)
address_of_exprt(const exprt &op)
unsigned int get_instance() const
shift_exprt(const irep_idt &_id)
const irep_idt & get_value() const
const exprt & root_object() const
bool value_is_zero_string() const
Extract member of struct or union.
void set_instance(unsigned int instance)
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.
const member_exprt & to_member_expr(const exprt &expr)
Cast a generic exprt to a member_exprt.
split an expression into a base object and a (byte) offset
bitvector_typet index_type()
const constant_exprt & to_constant_expr(const exprt &expr)
Cast a generic exprt to a constant_exprt.
The boolean constant false.
exprt disjunction(const exprt::operandst &op)
std::vector< exprt > operandst
Unbounded, signed integers.
Base class for all expressions.
const exprt & struct_op() const
const typecast_exprt & to_typecast_expr(const exprt &expr)
Cast a generic exprt to a typecast_exprt.
A generic base class for expressions that are predicates, i.e., boolean-typed, and that take exactly ...
const byte_extract_exprt & to_byte_extract_expr(const exprt &expr)
const index_exprt & to_index_expr(const exprt &expr)
Cast a generic exprt to an index_exprt.