summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>2020-12-01 18:00:49 -0600
committerGitHub <noreply@github.com>2020-12-01 18:00:49 -0600
commit798644e64f438f320577a444110744041e39d1ff (patch)
tree52e5d20895d7b7e2da15115ac62bc1db138a4deb /src
parent41554fa3d4a8258bbc842aedad87cd218460ee0a (diff)
Fix issues related to model declarations (#5560)
This corrects two issues related to model declarations: (1) model declaration terms were mistaken not cleared, (2) the model needs to be explicitly destructed before the node manager because it contains references to Node. Fixes #5540
Diffstat (limited to 'src')
-rw-r--r--src/smt/model.cpp6
-rw-r--r--src/smt/smt_engine.cpp1
2 files changed, 6 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);
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback