C++ API: Reintroduce zero-value mkBitVector method (#2770)
authorAndres Noetzli <andres.noetzli@gmail.com>
Thu, 3 Jan 2019 16:55:45 +0000 (17:55 +0100)
committerAina Niemetz <aina.niemetz@gmail.com>
Thu, 3 Jan 2019 16:55:45 +0000 (08:55 -0800)
commit99278c017e5b198b416d4a82b0ea63f99d02e739
treeb23fe16f9043d4358059bd9a0ff1b86cd92b586d
parentf179953e2fea6955650ccde8414f2ccd8ee6f63b
C++ API: Reintroduce zero-value mkBitVector method (#2770)

PR #2764 removed `Solver::mkBitVector(uint32_t)` (returns a bit-vector
of a given size with value zero), which made the build fail when SymFPU
was enabled because solver_black used it for SymFPU-enabled builds. This
commit simply adds a zero default argument to `mkBitVector(uint32_t,
uint64_t)` to allow users to create zero-valued bit-vectors without
explicitly specifying the value again. Additionally, the commit replaces
the use of the `CVC4_USE_SYMFPU` macro by a call to
`Configuration::isBuiltWithSymFPU()`, making sure that we can catch
compile-time errors regardless of configuration. Finally,
`Solver::mkConst(Kind, uint32_t, uint32_t, Term)` now checks whether
CVC4 has been compiled with SymFPU when creating a `CONST_FLOATINGPOINT`
and throws an exception otherwise (solver_black has been updated
correspondingly).
src/api/cvc4cpp.cpp
src/api/cvc4cpp.h
test/unit/api/solver_black.h