diff options
-rw-r--r-- | src/smt/smt_engine.cpp | 3 | ||||
-rw-r--r-- | test/regress/CMakeLists.txt | 1 | ||||
-rw-r--r-- | test/regress/regress0/smtlib/issue4866.smt2 | 6 |
3 files changed, 10 insertions, 0 deletions
diff --git a/src/smt/smt_engine.cpp b/src/smt/smt_engine.cpp index 83f3cb5e0..d4b7eecbf 100644 --- a/src/smt/smt_engine.cpp +++ b/src/smt/smt_engine.cpp @@ -2101,10 +2101,13 @@ void SmtEngine::reset() if(Dump.isOn("benchmark")) { Dump("benchmark") << ResetCommand(); } + std::string filename = d_state->getFilename(); Options opts; opts.copyValues(d_originalOptions); this->~SmtEngine(); new (this) SmtEngine(em, &opts); + // Restore data set after creation + notifyStartParsing(filename); } void SmtEngine::resetAssertions() diff --git a/test/regress/CMakeLists.txt b/test/regress/CMakeLists.txt index a21b76b0c..8ca9d74c3 100644 --- a/test/regress/CMakeLists.txt +++ b/test/regress/CMakeLists.txt @@ -946,6 +946,7 @@ set(regress_0_tests regress0/smtlib/issue4077.smt2 regress0/smtlib/issue4151.smt2 regress0/smtlib/issue4552.smt2 + regress0/smtlib/issue4866.smt2 regress0/smtlib/reason-unknown.smt2 regress0/smtlib/reset.smt2 regress0/smtlib/reset-assertions1.smt2 diff --git a/test/regress/regress0/smtlib/issue4866.smt2 b/test/regress/regress0/smtlib/issue4866.smt2 new file mode 100644 index 000000000..1bbe25dc6 --- /dev/null +++ b/test/regress/regress0/smtlib/issue4866.smt2 @@ -0,0 +1,6 @@ +; EXIT: 0 +; EXPECT: +; Test triple reset. There was a bug with restoring options on reset. +(reset) +(reset) +(reset) |