From 24f129a63b395a13ba10a05ff128e8e27ba75ed5 Mon Sep 17 00:00:00 2001 From: Andres Noetzli Date: Tue, 8 Oct 2019 23:24:42 -0700 Subject: [PATCH] Avoid printing success for `--force-logic` (#3363) CVC4 was printing success when `--force-logic` was used because internally, `--force-logic` generates a `SetBenchmarkLogicCommand`. This caused issues with the SMT-COMP trace executor. This commit fixes the behavior by muting the command if it was not issued by the user. The issue was likely introduced with #3062. --- src/parser/smt2/smt2.cpp | 11 +++-------- test/regress/CMakeLists.txt | 1 + test/regress/regress0/parser/force_logic_success.smt2 | 5 +++++ 3 files changed, 9 insertions(+), 8 deletions(-) create mode 100644 test/regress/regress0/parser/force_logic_success.smt2 diff --git a/src/parser/smt2/smt2.cpp b/src/parser/smt2/smt2.cpp index ba512ded9..ffda05d1a 100644 --- a/src/parser/smt2/smt2.cpp +++ b/src/parser/smt2/smt2.cpp @@ -837,14 +837,9 @@ Command* Smt2::setLogic(std::string name, bool fromCommand) addTheory(THEORY_SEP); } - if (sygus()) - { - return new SetBenchmarkLogicCommand(d_logic.getLogicString()); - } - else - { - return new SetBenchmarkLogicCommand(name); - } + Command* cmd = new SetBenchmarkLogicCommand(sygus() ? d_logic.getLogicString() : name); + cmd->setMuted(!fromCommand); + return cmd; } /* Smt2::setLogic() */ bool Smt2::sygus() const diff --git a/test/regress/CMakeLists.txt b/test/regress/CMakeLists.txt index 7951a9c41..96de4bafc 100644 --- a/test/regress/CMakeLists.txt +++ b/test/regress/CMakeLists.txt @@ -561,6 +561,7 @@ set(regress_0_tests regress0/parser/constraint.smt2 regress0/parser/declarefun-emptyset-uf.smt2 regress0/parser/force_logic_set_logic.smt2 + regress0/parser/force_logic_success.smt2 regress0/parser/shadow_fun_symbol_all.smt2 regress0/parser/shadow_fun_symbol_nirat.smt2 regress0/parser/strings20.smt2 diff --git a/test/regress/regress0/parser/force_logic_success.smt2 b/test/regress/regress0/parser/force_logic_success.smt2 new file mode 100644 index 000000000..027d7ccc0 --- /dev/null +++ b/test/regress/regress0/parser/force_logic_success.smt2 @@ -0,0 +1,5 @@ +; COMMAND-LINE: --force-logic QF_BV --print-success +; EXPECT: success +; EXPECT: sat +(assert true) +(check-sat) -- 2.30.2