16 if(expr.
type().
id()==ID_floatbv)
21 if(expr.
type().
id()!=ID_unsignedbv &&
22 expr.
type().
id()!=ID_signedbv)
32 "type of the first operand of a modulo operation shall equal the " 37 "type of the second operand of a modulo operation shall equal the "
bvt divider(const bvt &op0, const bvt &op1, representationt rep)
boolbv_widtht boolbv_width
typet & type()
Return the type of the expression.
virtual const bvt & convert_bv(const exprt &expr, const optionalt< std::size_t > expected_width=nullopt)
const irep_idt & id() const
void conversion_failed(const exprt &expr, bvt &bv)
virtual bvt convert_mod(const mod_exprt &expr)
#define DATA_INVARIANT(CONDITION, REASON)
This condition should be used to document that assumptions that are made on goto_functions, goto_programs, exprts, etc.
std::vector< literalt > bvt