diff --git a/src/solvers/flattening/boolbv_bitwise.cpp b/src/solvers/flattening/boolbv_bitwise.cpp index 3256a4fa2a8..c1bf274feee 100644 --- a/src/solvers/flattening/boolbv_bitwise.cpp +++ b/src/solvers/flattening/boolbv_bitwise.cpp @@ -25,6 +25,17 @@ bvt boolbvt::convert_bitwise(const exprt &expr) expr.id()==ID_bitnand || expr.id()==ID_bitnor || expr.id()==ID_bitxnor) { + std::function f; + + if(expr.id() == ID_bitand || expr.id() == ID_bitnand) + f = [this](literalt a, literalt b) { return prop.land(a, b); }; + else if(expr.id() == ID_bitor || expr.id() == ID_bitnor) + f = [this](literalt a, literalt b) { return prop.lor(a, b); }; + else if(expr.id() == ID_bitxor || expr.id() == ID_bitxnor) + f = [this](literalt a, literalt b) { return prop.lxor(a, b); }; + else + UNIMPLEMENTED; + bvt bv; bv.resize(width); @@ -38,25 +49,19 @@ bvt boolbvt::convert_bitwise(const exprt &expr) { for(std::size_t i=0; i