10#ifndef CPROVER_UTIL_BYTE_OPERATORS_H
11#define CPROVER_UTIL_BYTE_OPERATORS_H
40 "byte_extract_exprt: Invalid ID");
89 "byte_update_exprt: Invalid ID");
102 op2() = std::move(e);
const byte_update_exprt & to_byte_update_expr(const exprt &expr)
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.
void validate_expr(const byte_extract_exprt &value)
const byte_extract_exprt & to_byte_extract_expr(const exprt &expr)
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.
bool can_cast_expr< byte_update_exprt >(const exprt &base)
bool can_cast_expr< byte_extract_exprt >(const exprt &base)
ait supplies three of the four components needed: an abstract interpreter (in this case handling func...
A base class for binary expressions.
Expression corresponding to op() where the bytes starting at position offset (given in number of byte...
const exprt & offset() const
byte_update_exprt(irep_idt _id, const exprt &_op, const exprt &_offset, const exprt &_value)
const exprt & value() const
dstringt has one field, an unsigned integer no which is an index into a static table of strings.
Base class for all expressions.
typet & type()
Return the type of the expression.
const irep_idt & id() const
An expression with three operands.
The type of an expression, extends irept.
void validate_operands(const exprt &value, exprt::operandst::size_type number, const char *message, bool allow_more=false)
#define PRECONDITION(CONDITION)
#define INVARIANT(CONDITION, REASON)
This macro uses the wrapper function 'invariant_violated_string'.
API to expression classes.