Go to the documentation of this file.
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)
39 else if(expr.
id()==ID_ashr)
41 else if(expr.
id()==ID_lshr)
43 else if(expr.
id()==ID_rol)
45 else if(expr.
id()==ID_ror)
59 if(i<0 || i>std::numeric_limits<signed>::max())
62 distance = numeric_cast_v<std::size_t>(i);
64 if(type_id==ID_verilog_signedbv ||
65 type_id==ID_verilog_unsignedbv)
#define UNREACHABLE
This should be used to mark dead code.
dstringt has one field, an unsigned integer no which is an index into a static table of strings.
std::vector< literalt > bvt
A base class for binary expressions.
bvt shift(const bvt &op, const shiftt shift, std::size_t distance)
virtual bvt convert_shift(const binary_exprt &expr)
typet & type()
Return the type of the expression.
boolbv_widtht boolbv_width
void conversion_failed(const exprt &expr, bvt &bv)
const irep_idt & id() const
virtual const bvt & convert_bv(const exprt &expr, const optionalt< std::size_t > expected_width=nullopt)
Convert expression to vector of literalts, using an internal cache to speed up conversion if availabl...
bool is_constant() const
Return whether the expression is a constant.
const constant_exprt & to_constant_expr(const exprt &expr)
Cast an exprt to a constant_exprt.