From dae75929c02225ff519bf8d4cf9f9a38e1d61b08 Mon Sep 17 00:00:00 2001 From: Abdalrhman Mohamed <32971963+abdoo8080@users.noreply.github.com> Date: Fri, 5 Nov 2021 22:30:23 -0500 Subject: Print `unsupported` for unrecognized flags. (#7384) Fixes #7374. --- src/smt/command.cpp | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) (limited to 'src/smt/command.cpp') diff --git a/src/smt/command.cpp b/src/smt/command.cpp index a15e20998..419167e7e 100644 --- a/src/smt/command.cpp +++ b/src/smt/command.cpp @@ -2557,11 +2557,15 @@ void SetInfoCommand::invoke(api::Solver* solver, SymbolManager* sm) solver->setInfo(d_flag, d_value); d_commandStatus = CommandSuccess::instance(); } - catch (api::CVC5ApiRecoverableException&) + catch (api::CVC5ApiUnsupportedException&) { // As per SMT-LIB spec, silently accept unknown set-info keys d_commandStatus = CommandSuccess::instance(); } + catch (api::CVC5ApiRecoverableException& e) + { + d_commandStatus = new CommandRecoverableFailure(e.getMessage()); + } catch (exception& e) { d_commandStatus = new CommandFailure(e.what()); @@ -2599,9 +2603,13 @@ void GetInfoCommand::invoke(api::Solver* solver, SymbolManager* sm) d_result = sexprToString(solver->mkTerm(api::SEXPR, v)); d_commandStatus = CommandSuccess::instance(); } + catch (api::CVC5ApiUnsupportedException&) + { + d_commandStatus = new CommandUnsupported(); + } catch (api::CVC5ApiRecoverableException& e) { - d_commandStatus = new CommandRecoverableFailure(e.what()); + d_commandStatus = new CommandRecoverableFailure(e.getMessage()); } catch (exception& e) { @@ -2658,10 +2666,14 @@ void SetOptionCommand::invoke(api::Solver* solver, SymbolManager* sm) solver->setOption(d_flag, d_value); d_commandStatus = CommandSuccess::instance(); } - catch (api::CVC5ApiRecoverableException&) + catch (api::CVC5ApiUnsupportedException&) { d_commandStatus = new CommandUnsupported(); } + catch (api::CVC5ApiRecoverableException& e) + { + d_commandStatus = new CommandRecoverableFailure(e.getMessage()); + } catch (exception& e) { d_commandStatus = new CommandFailure(e.what()); @@ -2696,7 +2708,7 @@ void GetOptionCommand::invoke(api::Solver* solver, SymbolManager* sm) d_result = solver->getOption(d_flag); d_commandStatus = CommandSuccess::instance(); } - catch (api::CVC5ApiRecoverableException&) + catch (api::CVC5ApiUnsupportedException&) { d_commandStatus = new CommandUnsupported(); } -- cgit v1.2.3