From ebaa44a4b93b00614b41ef38f36112883ee27626 Mon Sep 17 00:00:00 2001 From: Kshitij Bansal Date: Fri, 21 Aug 2015 03:26:30 -0400 Subject: [PATCH] better handling for conflicting options with nonlinear arith (bug 646) --- src/smt/smt_engine.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/smt/smt_engine.cpp b/src/smt/smt_engine.cpp index 192485dcc..66487e4a4 100644 --- a/src/smt/smt_engine.cpp +++ b/src/smt/smt_engine.cpp @@ -1544,14 +1544,23 @@ void SmtEngine::setDefaults() { if (d_logic.isTheoryEnabled(THEORY_ARITH) && !d_logic.isLinear()) { if (options::produceModels()) { + if(options::produceModels.wasSetByUser()) { + throw OptionException("produce-model not supported with nonlinear arith"); + } Warning() << "SmtEngine: turning off produce-models because unsupported for nonlinear arith" << endl; setOption("produce-models", SExpr("false")); } if (options::produceAssignments()) { + if(options::produceAssignments.wasSetByUser()) { + throw OptionException("produce-assignments not supported with nonlinear arith"); + } Warning() << "SmtEngine: turning off produce-assignments because unsupported for nonlinear arith" << endl; setOption("produce-assignments", SExpr("false")); } if (options::checkModels()) { + if(options::checkModels.wasSetByUser()) { + throw OptionException("check-models not supported with nonlinear arith"); + } Warning() << "SmtEngine: turning off check-models because unsupported for nonlinear arith" << endl; setOption("check-models", SExpr("false")); } -- 2.30.2