mirror of
https://github.com/Z3Prover/z3
synced 2025-04-10 19:27:06 +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
|
@ -4652,15 +4652,17 @@ namespace smt {
|
|||
expr * theory_str::z3str2_get_eqc_value(expr * n , bool & hasEqcValue) {
|
||||
theory_var curr = m_find.find(get_var(n));
|
||||
theory_var first = curr;
|
||||
do {
|
||||
expr* a = get_ast(curr);
|
||||
if (u.str.is_string(a)) {
|
||||
hasEqcValue = true;
|
||||
return a;
|
||||
}
|
||||
curr = m_find.next(curr);
|
||||
}
|
||||
while (curr != first && curr != null_theory_var);
|
||||
if (curr != null_theory_var) {
|
||||
do {
|
||||
expr* a = get_ast(curr);
|
||||
if (u.str.is_string(a)) {
|
||||
hasEqcValue = true;
|
||||
return a;
|
||||
}
|
||||
curr = m_find.next(curr);
|
||||
}
|
||||
while (curr != first && curr != null_theory_var);
|
||||
}
|
||||
hasEqcValue = false;
|
||||
return n;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue