summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMorgan Deters <mdeters@cs.nyu.edu>2014-11-09 19:02:42 -0500
committerMorgan Deters <mdeters@cs.nyu.edu>2014-11-09 19:02:42 -0500
commit8a43f6c6aa01f9b27434caf1c5dd9ef6b2dcd963 (patch)
tree08e6c95a6d7bd25188d8b6a0d79193cd4e1a318b
parent4475cfe82e97f549b41b465e71670794cbcd77e4 (diff)
parent5c99a9b0fb5f8c0f0aabc8ddcee1cbb93d493eca (diff)
Merge branch '1.4.x'
-rw-r--r--src/expr/node_manager.cpp11
-rw-r--r--src/smt/smt_engine.cpp4
-rwxr-xr-xtest/regress/run_regression2
3 files changed, 14 insertions, 3 deletions
diff --git a/src/expr/node_manager.cpp b/src/expr/node_manager.cpp
index 31b17ccda..5c2b81645 100644
--- a/src/expr/node_manager.cpp
+++ b/src/expr/node_manager.cpp
@@ -202,10 +202,21 @@ void NodeManager::reclaimZombies() {
NodeValueReferenceCountNonZero());
d_zombies.clear();
+#ifdef _LIBCPP_VERSION
+ NodeValue* last = NULL;
+#endif
for(vector<NodeValue*>::iterator i = zombies.begin();
i != zombies.end();
++i) {
NodeValue* nv = *i;
+#ifdef _LIBCPP_VERSION
+ // Work around an apparent bug in libc++'s hash_set<> which can
+ // (very occasionally) have an element repeated.
+ if(nv == last) {
+ continue;
+ }
+ last = nv;
+#endif
// collect ONLY IF still zero
if(nv->d_rc == 0) {
diff --git a/src/smt/smt_engine.cpp b/src/smt/smt_engine.cpp
index c59d87d40..dc80d65e3 100644
--- a/src/smt/smt_engine.cpp
+++ b/src/smt/smt_engine.cpp
@@ -3760,8 +3760,8 @@ CVC4::SExpr SmtEngine::getAssignment() throw(ModalException) {
vector<SExpr> sexprs;
TypeNode boolType = d_nodeManager->booleanType();
TheoryModel* m = d_theoryEngine->getModel();
- for(AssignmentSet::const_iterator i = d_assignments->begin(),
- iend = d_assignments->end();
+ for(AssignmentSet::key_iterator i = d_assignments->key_begin(),
+ iend = d_assignments->key_end();
i != iend;
++i) {
Assert((*i).getType() == boolType);
diff --git a/test/regress/run_regression b/test/regress/run_regression
index d234153a3..062458055 100755
--- a/test/regress/run_regression
+++ b/test/regress/run_regression
@@ -11,7 +11,7 @@
#
# ulimit -t 1 # For detecting long running regressions
-ulimit -s 10240 # Needed for some (esp. portfolio)
+ulimit -s 65000 # Needed for some (esp. portfolio and model-building)
prog=`basename "$0"`
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback