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)
34 throw "shifting takes two operands";
39 throw "convert_shift: unexpected operand 0 width";
45 else if(expr.
id()==ID_ashr)
47 else if(expr.
id()==ID_lshr)
50 throw "unexpected shift operator";
58 throw "convert_shift: failed to convert constant";
62 if(i<0 || i>std::numeric_limits<signed>::max())
67 if(type_id==ID_verilog_signedbv ||
68 type_id==ID_verilog_unsignedbv)
virtual bvt convert_shift(const binary_exprt &expr)
boolbv_widtht boolbv_width
const irep_idt & id() const
A generic base class for binary expressions.
virtual const bvt & convert_bv(const exprt &expr)
void conversion_failed(const exprt &expr, bvt &bv)
bvt shift(const bvt &op, const shiftt shift, std::size_t distance)
std::size_t integer2size_t(const mp_integer &n)
std::vector< literalt > bvt