mirror of
https://github.com/Z3Prover/z3
synced 2025-04-14 21:08:46 +00:00
Issue #407 build break
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
8b66411c05
commit
0e6aaf0211
|
@ -1064,13 +1064,13 @@ bool seq_rewriter::reduce_eq(expr_ref_vector& ls, expr_ref_vector& rs, expr_ref_
|
|||
if (lchange) {
|
||||
if (head1 > 0) {
|
||||
for (unsigned i = 0; i < szl; ++i) {
|
||||
ls[i] = ls[i + head1];
|
||||
ls[i] = ls[i + head1].get();
|
||||
}
|
||||
}
|
||||
ls.shrink(szl);
|
||||
if (head2 > 0) {
|
||||
for (unsigned i = 0; i < szr; ++i) {
|
||||
rs[i] = rs[i + head2];
|
||||
rs[i] = rs[i + head2].get();
|
||||
}
|
||||
}
|
||||
rs.shrink(szr);
|
||||
|
|
|
@ -666,5 +666,7 @@ void seq_util::str::get_concat(expr* e, expr_ref_vector& es) const {
|
|||
get_concat(e1, es);
|
||||
e = e2;
|
||||
}
|
||||
es.push_back(e);
|
||||
if (!is_empty(e)) {
|
||||
es.push_back(e);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1422,21 +1422,15 @@ bool theory_seq::canonize(expr* e, expr_ref_vector& es, dependency*& eqs) {
|
|||
canonize(e1, es, eqs);
|
||||
e3 = e2;
|
||||
change = true;
|
||||
continue;
|
||||
}
|
||||
if (m_util.str.is_empty(e3)) {
|
||||
else if (m_util.str.is_empty(e3)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
expr_ref e4 = expand(e3, eqs);
|
||||
change |= e4 != e3;
|
||||
if (m_util.str.is_concat(e4) || m_util.str.is_empty(e4)) {
|
||||
e3 = e4;
|
||||
continue;
|
||||
}
|
||||
else {
|
||||
es.push_back(e4);
|
||||
break;
|
||||
expr_ref e4 = expand(e3, eqs);
|
||||
change |= e4 != e3;
|
||||
m_util.str.get_concat(e4, es);
|
||||
break;
|
||||
}
|
||||
}
|
||||
return change;
|
||||
|
|
Loading…
Reference in a new issue