3
0
Fork 0
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:
Nikolaj Bjorner 2017-11-15 21:19:22 -08:00
parent c3f67f3b5f
commit c3364f17fa

View file

@ -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;
} }