mirror of
https://github.com/Z3Prover/z3
synced 2025-04-23 09:05:31 +00:00
fix double ownership of enode marking causing crash during tracing. Issue #952
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
e47e8c67c0
commit
1ab7ab9d74
3 changed files with 5 additions and 4 deletions
|
@ -59,9 +59,9 @@ namespace smt {
|
|||
SASSERT(n->trans_reaches(n->get_root()));
|
||||
while (n) {
|
||||
if (Set)
|
||||
n->set_mark();
|
||||
n->set_mark2();
|
||||
else
|
||||
n->unset_mark();
|
||||
n->unset_mark2();
|
||||
n = n->m_trans.m_target;
|
||||
}
|
||||
}
|
||||
|
@ -84,7 +84,7 @@ namespace smt {
|
|||
mark_enodes_in_trans<true>(n1);
|
||||
while (true) {
|
||||
SASSERT(n2);
|
||||
if (n2->is_marked()) {
|
||||
if (n2->is_marked2()) {
|
||||
mark_enodes_in_trans<false>(n1);
|
||||
return n2;
|
||||
}
|
||||
|
|
|
@ -4214,6 +4214,7 @@ namespace smt {
|
|||
for (unsigned i = 0; i < m_asserted_formulas.get_num_formulas(); ++i) {
|
||||
expr* e = m_asserted_formulas.get_formula(i);
|
||||
if (is_quantifier(e)) {
|
||||
TRACE("context", tout << mk_pp(e, m) << "\n";);
|
||||
quantifier* q = to_quantifier(e);
|
||||
if (!m.is_rec_fun_def(q)) continue;
|
||||
SASSERT(q->get_num_patterns() == 1);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue