Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 30 additions & 0 deletions src/util/bitvector_expr.h
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,11 @@ class bitor_exprt : public multi_ary_exprt
{
}

explicit bitor_exprt(exprt::operandst _operands)
: multi_ary_exprt(ID_bitor, std::move(_operands))
{
}

bitor_exprt(exprt::operandst _operands, typet _type)
: multi_ary_exprt(ID_bitor, std::move(_operands), std::move(_type))
{
Expand Down Expand Up @@ -177,6 +182,11 @@ class bitnor_exprt : public multi_ary_exprt
{
}

explicit bitnor_exprt(exprt::operandst _operands)
: multi_ary_exprt(ID_bitnor, std::move(_operands))
{
}

bitnor_exprt(exprt::operandst _operands, typet _type)
: multi_ary_exprt(ID_bitnor, std::move(_operands), std::move(_type))
{
Expand Down Expand Up @@ -219,6 +229,11 @@ class bitxor_exprt : public multi_ary_exprt
{
}

explicit bitxor_exprt(exprt::operandst _operands)
: multi_ary_exprt(ID_bitxor, std::move(_operands))
{
}

bitxor_exprt(exprt::operandst _operands, typet _type)
: multi_ary_exprt(ID_bitxor, std::move(_operands), std::move(_type))
{
Expand Down Expand Up @@ -265,6 +280,11 @@ class bitxnor_exprt : public multi_ary_exprt
{
}

explicit bitxnor_exprt(exprt::operandst _operands)
: multi_ary_exprt(ID_bitxnor, std::move(_operands))
{
}

bitxnor_exprt(exprt::operandst _operands, typet _type)
: multi_ary_exprt(ID_bitxnor, std::move(_operands), std::move(_type))
{
Expand Down Expand Up @@ -309,6 +329,11 @@ class bitand_exprt : public multi_ary_exprt
{
}

explicit bitand_exprt(exprt::operandst _operands)
: multi_ary_exprt(ID_bitand, std::move(_operands))
{
}

bitand_exprt(exprt::operandst _operands, typet _type)
: multi_ary_exprt(ID_bitand, std::move(_operands), std::move(_type))
{
Expand Down Expand Up @@ -355,6 +380,11 @@ class bitnand_exprt : public multi_ary_exprt
{
}

explicit bitnand_exprt(exprt::operandst _operands)
: multi_ary_exprt(ID_bitnand, std::move(_operands))
{
}

bitnand_exprt(exprt::operandst _operands, typet _type)
: multi_ary_exprt(ID_bitnand, std::move(_operands), std::move(_type))
{
Expand Down
18 changes: 18 additions & 0 deletions src/util/std_expr.h
Original file line number Diff line number Diff line change
Expand Up @@ -917,6 +917,14 @@ class multi_ary_exprt : public expr_protectedt
operands() = std::move(_operands);
}

multi_ary_exprt(const irep_idt &_id, operandst _operands)
: expr_protectedt(_id, typet{})
{
PRECONDITION(!_operands.empty());
type() = _operands.front().type();
operands() = std::move(_operands);
}

multi_ary_exprt(const exprt &_lhs, const irep_idt &_id, exprt _rhs)
: expr_protectedt(_id, _lhs.type(), {_lhs, std::move(_rhs)})
{
Expand Down Expand Up @@ -1015,6 +1023,11 @@ class plus_exprt:public multi_ary_exprt
{
}

explicit plus_exprt(operandst _operands)
: multi_ary_exprt(ID_plus, std::move(_operands))
{
}

plus_exprt(operandst _operands, typet _type)
: multi_ary_exprt(ID_plus, std::move(_operands), std::move(_type))
{
Expand Down Expand Up @@ -1111,6 +1124,11 @@ class mult_exprt:public multi_ary_exprt
{
}

explicit mult_exprt(exprt::operandst factors)
: multi_ary_exprt(ID_mult, std::move(factors))
{
}

mult_exprt(exprt::operandst factors, typet type)
: multi_ary_exprt(ID_mult, std::move(factors), std::move(type))
{
Expand Down
Loading