summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/smt/model.cpp6
-rw-r--r--src/smt/smt_engine.cpp1
-rw-r--r--test/regress/CMakeLists.txt2
-rw-r--r--test/regress/regress0/issue5540-2-dump-model.smt29
-rw-r--r--test/regress/regress0/issue5540-model-decls.smt219
5 files changed, 36 insertions, 1 deletions
diff --git a/src/smt/model.cpp b/src/smt/model.cpp
index 8a9f944d2..ccf73dda0 100644
--- a/src/smt/model.cpp
+++ b/src/smt/model.cpp
@@ -49,7 +49,11 @@ Node Model::getValue(TNode n) const { return d_tmodel->getValue(n); }
bool Model::hasApproximations() const { return d_tmodel->hasApproximations(); }
-void Model::clearModelDeclarations() { d_declareSorts.clear(); }
+void Model::clearModelDeclarations()
+{
+ d_declareTerms.clear();
+ d_declareSorts.clear();
+}
void Model::addDeclarationSort(TypeNode tn) { d_declareSorts.push_back(tn); }
diff --git a/src/smt/smt_engine.cpp b/src/smt/smt_engine.cpp
index d3ba676fc..2faad7961 100644
--- a/src/smt/smt_engine.cpp
+++ b/src/smt/smt_engine.cpp
@@ -332,6 +332,7 @@ SmtEngine::~SmtEngine()
d_absValues.reset(nullptr);
d_asserts.reset(nullptr);
d_dumpm.reset(nullptr);
+ d_model.reset(nullptr);
d_sygusSolver.reset(nullptr);
diff --git a/test/regress/CMakeLists.txt b/test/regress/CMakeLists.txt
index fb8914a36..fda5c69eb 100644
--- a/test/regress/CMakeLists.txt
+++ b/test/regress/CMakeLists.txt
@@ -588,6 +588,8 @@ set(regress_0_tests
regress0/issue5099-model-1.smt2
regress0/issue5099-model-2.smt2
regress0/issue5144-resetAssertions.smt2
+ regress0/issue5540-2-dump-model.smt2
+ regress0/issue5540-model-decls.smt2
regress0/ite.cvc
regress0/ite2.smt2
regress0/ite3.smt2
diff --git a/test/regress/regress0/issue5540-2-dump-model.smt2 b/test/regress/regress0/issue5540-2-dump-model.smt2
new file mode 100644
index 000000000..56d3b2458
--- /dev/null
+++ b/test/regress/regress0/issue5540-2-dump-model.smt2
@@ -0,0 +1,9 @@
+; SCRUBBER: sed -e 's/Bool.*$/Bool/'
+; COMMAND-LINE: --dump-models
+; EXPECT: sat
+; EXPECT: (
+; EXPECT: (define-fun v16 () Bool
+; EXPECT: )
+(set-logic UFLIA)
+(declare-fun v16 () Bool)
+(check-sat)
diff --git a/test/regress/regress0/issue5540-model-decls.smt2 b/test/regress/regress0/issue5540-model-decls.smt2
new file mode 100644
index 000000000..714159c9f
--- /dev/null
+++ b/test/regress/regress0/issue5540-model-decls.smt2
@@ -0,0 +1,19 @@
+; SCRUBBER: sed -e 's/Bool.*$/Bool/'
+; COMMAND-LINE: --dump-models -i
+; EXPECT:sat
+; EXPECT: (
+; EXPECT: (define-fun a () Bool
+; EXPECT: )
+; EXPECT: sat
+; EXPECT: (
+; EXPECT: (define-fun a () Bool
+; EXPECT: )
+; EXPECT: sat
+; EXPECT: (
+; EXPECT: (define-fun a () Bool
+; EXPECT: )
+(set-logic ALL)
+(declare-fun a () Bool)
+(check-sat)
+(check-sat)
+(check-sat)
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback