3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-16 05:48:44 +00:00

Issue #407 build break

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2016-01-07 20:05:49 -08:00
parent 8b66411c05
commit 0e6aaf0211
3 changed files with 10 additions and 14 deletions

View file

@ -1064,13 +1064,13 @@ bool seq_rewriter::reduce_eq(expr_ref_vector& ls, expr_ref_vector& rs, expr_ref_
if (lchange) { if (lchange) {
if (head1 > 0) { if (head1 > 0) {
for (unsigned i = 0; i < szl; ++i) { for (unsigned i = 0; i < szl; ++i) {
ls[i] = ls[i + head1]; ls[i] = ls[i + head1].get();
} }
} }
ls.shrink(szl); ls.shrink(szl);
if (head2 > 0) { if (head2 > 0) {
for (unsigned i = 0; i < szr; ++i) { for (unsigned i = 0; i < szr; ++i) {
rs[i] = rs[i + head2]; rs[i] = rs[i + head2].get();
} }
} }
rs.shrink(szr); rs.shrink(szr);

View file

@ -666,5 +666,7 @@ void seq_util::str::get_concat(expr* e, expr_ref_vector& es) const {
get_concat(e1, es); get_concat(e1, es);
e = e2; e = e2;
} }
es.push_back(e); if (!is_empty(e)) {
es.push_back(e);
}
} }

View file

@ -1422,21 +1422,15 @@ bool theory_seq::canonize(expr* e, expr_ref_vector& es, dependency*& eqs) {
canonize(e1, es, eqs); canonize(e1, es, eqs);
e3 = e2; e3 = e2;
change = true; change = true;
continue;
} }
if (m_util.str.is_empty(e3)) { else if (m_util.str.is_empty(e3)) {
return true; 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 { else {
es.push_back(e4); expr_ref e4 = expand(e3, eqs);
break; change |= e4 != e3;
m_util.str.get_concat(e4, es);
break;
} }
} }
return change; return change;