diff options
author | Andrew Reynolds <andrew.j.reynolds@gmail.com> | 2020-12-01 18:00:49 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-12-01 18:00:49 -0600 |
commit | 798644e64f438f320577a444110744041e39d1ff (patch) | |
tree | 52e5d20895d7b7e2da15115ac62bc1db138a4deb /src/smt | |
parent | 41554fa3d4a8258bbc842aedad87cd218460ee0a (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/smt')
-rw-r--r-- | src/smt/model.cpp | 6 | ||||
-rw-r--r-- | src/smt/smt_engine.cpp | 1 |
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); |