mirror of
https://github.com/Z3Prover/z3
synced 2025-06-06 22:23:22 +00:00
fix infinite loop in traversing equivalence class, #1274, still requires addressing MBQI
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
c3f67f3b5f
commit
c3364f17fa
1 changed files with 11 additions and 9 deletions
|
@ -4652,6 +4652,7 @@ namespace smt {
|
||||||
expr * theory_str::z3str2_get_eqc_value(expr * n , bool & hasEqcValue) {
|
expr * theory_str::z3str2_get_eqc_value(expr * n , bool & hasEqcValue) {
|
||||||
theory_var curr = m_find.find(get_var(n));
|
theory_var curr = m_find.find(get_var(n));
|
||||||
theory_var first = curr;
|
theory_var first = curr;
|
||||||
|
if (curr != null_theory_var) {
|
||||||
do {
|
do {
|
||||||
expr* a = get_ast(curr);
|
expr* a = get_ast(curr);
|
||||||
if (u.str.is_string(a)) {
|
if (u.str.is_string(a)) {
|
||||||
|
@ -4661,6 +4662,7 @@ namespace smt {
|
||||||
curr = m_find.next(curr);
|
curr = m_find.next(curr);
|
||||||
}
|
}
|
||||||
while (curr != first && curr != null_theory_var);
|
while (curr != first && curr != null_theory_var);
|
||||||
|
}
|
||||||
hasEqcValue = false;
|
hasEqcValue = false;
|
||||||
return n;
|
return n;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue