Go to the documentation of this file.
10 #ifndef CPROVER_UTIL_BYTE_OPERATORS_H
11 #define CPROVER_UTIL_BYTE_OPERATORS_H
39 _id == ID_byte_extract_little_endian || _id == ID_byte_extract_big_endian,
40 "byte_extract_exprt: Invalid ID");
53 return base.
id() == ID_byte_extract_little_endian ||
54 base.
id() == ID_byte_extract_big_endian;
88 _id == ID_byte_update_little_endian || _id == ID_byte_update_big_endian,
89 "byte_update_exprt: Invalid ID");
102 op2() = std::move(e);
113 return base.
id() == ID_byte_update_little_endian ||
114 base.
id() == ID_byte_update_big_endian;
139 #endif // CPROVER_UTIL_BYTE_OPERATORS_H
byte_update_exprt make_byte_update(const exprt &_op, const exprt &_offset, const exprt &_value)
Construct a byte_update_exprt with endianness and byte width matching the current configuration.
dstringt has one field, an unsigned integer no which is an index into a static table of strings.
Expression corresponding to op() where the bytes starting at position offset (given in number of byte...
The type of an expression, extends irept.
An expression with three operands.
const byte_extract_exprt & to_byte_extract_expr(const exprt &expr)
const exprt & offset() const
void validate_operands(const exprt &value, exprt::operandst::size_type number, const char *message, bool allow_more=false)
byte_extract_exprt make_byte_extract(const exprt &_op, const exprt &_offset, const typet &_type)
Construct a byte_extract_exprt with endianness and byte width matching the current configuration.
Base class for all expressions.
A base class for binary expressions.
bool can_cast_expr< byte_update_exprt >(const exprt &base)
bool can_cast_expr< byte_extract_exprt >(const exprt &base)
void validate_expr(const byte_extract_exprt &value)
typet & type()
Return the type of the expression.
const byte_update_exprt & to_byte_update_expr(const exprt &expr)
#define PRECONDITION(CONDITION)
const irep_idt & id() const
const exprt & value() const
byte_update_exprt(irep_idt _id, const exprt &_op, const exprt &_offset, const exprt &_value)