19 if(type_id!=ID_unsignedbv &&
20 type_id!=ID_signedbv &&
21 type_id!=ID_floatbv &&
22 type_id!=ID_pointer &&
24 type_id!=ID_verilog_signedbv &&
25 type_id!=ID_verilog_unsignedbv)
36 else if(expr.
id()==ID_ashr)
38 else if(expr.
id()==ID_lshr)
40 else if(expr.
id()==ID_rol)
42 else if(expr.
id()==ID_ror)
56 if(i<0 || i>std::numeric_limits<signed>::max())
59 distance = numeric_cast_v<std::size_t>(i);
61 if(type_id==ID_verilog_signedbv ||
62 type_id==ID_verilog_unsignedbv)
A base class for binary expressions.
virtual const bvt & convert_bv(const exprt &expr, const std::optional< std::size_t > expected_width={})
Convert expression to vector of literalts, using an internal cache to speed up conversion if availabl...
virtual bvt convert_shift(const binary_exprt &expr)
bvt conversion_failed(const exprt &expr)
Print that the expression of x has failed conversion, then return a vector of x's width.
virtual std::size_t boolbv_width(const typet &type) const
static bvt shift(const bvt &op, const shiftt shift, std::size_t distance)
dstringt has one field, an unsigned integer no which is an index into a static table of strings.
typet & type()
Return the type of the expression.
bool is_constant() const
Return whether the expression is a constant.
const irep_idt & id() const
std::vector< literalt > bvt
#define UNREACHABLE
This should be used to mark dead code.
const constant_exprt & to_constant_expr(const exprt &expr)
Cast an exprt to a constant_exprt.