summaryrefslogtreecommitdiff
path: root/src/compat/cvc3_compat.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/compat/cvc3_compat.cpp')
-rw-r--r--src/compat/cvc3_compat.cpp15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/compat/cvc3_compat.cpp b/src/compat/cvc3_compat.cpp
index a5d85821d..a30ccb27d 100644
--- a/src/compat/cvc3_compat.cpp
+++ b/src/compat/cvc3_compat.cpp
@@ -1950,7 +1950,20 @@ QueryResult ValidityChecker::tryModelGeneration() {
FormulaValue ValidityChecker::value(const Expr& e) {
CheckArgument(e.getType() == d_em->booleanType(), e, "argument must be a formula");
- return d_smt->getValue(e).getConst<bool>() ? TRUE_VAL : FALSE_VAL;
+ try {
+ return d_smt->getValue(e).getConst<bool>() ? TRUE_VAL : FALSE_VAL;
+ } catch(CVC4::Exception& e) {
+ return UNKNOWN_VAL;
+ }
+}
+
+Expr ValidityChecker::getValue(const Expr& e) {
+ try {
+ return d_smt->getValue(e);
+ } catch(CVC4::ModalException& e) {
+ // by contract, we return null expr
+ return Expr();
+ }
}
bool ValidityChecker::inconsistent(std::vector<Expr>& assumptions) {
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback