Go to the documentation of this file.
28 if(index_as_integer < 0 || index_as_integer >= src_bv.size())
31 return src_bv[numeric_cast_v<std::size_t>(index_as_integer)];
35 expr.
src().
type().
id() == ID_verilog_signedbv ||
36 expr.
src().
type().
id() == ID_verilog_unsignedbv)
39 "extractbit expression not implemented for verilog integers in "
47 if(src_bv_width == 0 || index_bv_width == 0)
50 std::size_t index_width =
66 for(std::size_t i = 0; i < src_bv.size(); i++)
79 for(std::size_t i = 0; i < src_bv.size(); i++)
std::vector< literalt > bvt
Thrown when we encounter an instruction, parameters to an instruction etc.
virtual literalt new_variable()=0
virtual bool literal(const exprt &expr, std::size_t bit, literalt &literal) const
void l_set_to_true(literalt a)
bitvector_typet index_type()
virtual literalt convert_extractbit(const extractbit_exprt &expr)
Fixed-width bit-vector with unsigned binary interpretation.
typet & type()
Return the type of the expression.
boolbv_widtht boolbv_width
virtual literalt limplies(literalt a, literalt b)=0
const irep_idt & id() const
virtual const bvt & convert_bv(const exprt &expr, const optionalt< std::size_t > expected_width=nullopt)
literalt convert(const exprt &expr) override
virtual literalt convert_rest(const exprt &expr)
virtual literalt lequal(literalt a, literalt b)=0
bool is_constant() const
Return whether the expression is a constant.
virtual bool has_set_to() const
virtual literalt lselect(literalt a, literalt b, literalt c)=0
virtual literalt equality(const exprt &e1, const exprt &e2)