mirror of
https://github.com/Z3Prover/z3
synced 2025-06-25 07:13:41 +00:00
fix infinite loop bug in theory_str::new_eq_check
This commit is contained in:
parent
999420485b
commit
244b611f1c
1 changed files with 16 additions and 16 deletions
|
@ -1452,9 +1452,7 @@ bool theory_str::new_eq_check(expr * lhs, expr * rhs) {
|
||||||
do {
|
do {
|
||||||
enode * eqc_iterator2 = eqc_iterator1;
|
enode * eqc_iterator2 = eqc_iterator1;
|
||||||
do {
|
do {
|
||||||
if (eqc_iterator1 == eqc_iterator2) {
|
if (eqc_iterator1 != eqc_iterator2) {
|
||||||
continue;
|
|
||||||
}
|
|
||||||
// pull terms out of the enodes
|
// pull terms out of the enodes
|
||||||
app * eqc_nn1 = eqc_iterator1->get_owner();
|
app * eqc_nn1 = eqc_iterator1->get_owner();
|
||||||
app * eqc_nn2 = eqc_iterator2->get_owner();
|
app * eqc_nn2 = eqc_iterator2->get_owner();
|
||||||
|
@ -1469,7 +1467,9 @@ bool theory_str::new_eq_check(expr * lhs, expr * rhs) {
|
||||||
TRACE("t_str", tout << "inconsistency detected: " << mk_pp(eqc_nn1, m) << " and " << mk_pp(eqc_nn2, m) << " have inconsistent lengths" << std::endl;);
|
TRACE("t_str", tout << "inconsistency detected: " << mk_pp(eqc_nn1, m) << " and " << mk_pp(eqc_nn2, m) << " have inconsistent lengths" << std::endl;);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
eqc_iterator2 = eqc_iterator2->get_next();
|
eqc_iterator2 = eqc_iterator2->get_next();
|
||||||
|
|
||||||
} while (eqc_iterator2 != eqc_root);
|
} while (eqc_iterator2 != eqc_root);
|
||||||
|
|
||||||
eqc_iterator1 = eqc_iterator1->get_next();
|
eqc_iterator1 = eqc_iterator1->get_next();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue