3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-22 16:45:31 +00:00

add defensive double-non-concat check in theory_str::simplify_concat_equality()

This commit is contained in:
Murphy Berzish 2016-08-06 15:35:47 -04:00
parent 91c336d7ee
commit 2c91f388df

View file

@ -2317,10 +2317,13 @@ void theory_str::simplify_concat_equality(expr * nn1, expr * nn2) {
simplify_parent(new_nn1, new_nn2);
}
return;
} else if (!n1IsConcat && !n2IsConcat) {
// normally this should never happen, because group_terms_by_eqc() should have pre-simplified
// as much as possible. however, we make a defensive check here just in case
TRACE("t_str_detail", tout << "WARNING: nn1_new and nn2_new both simplify to non-concat terms" << std::endl;);
return;
}
// TODO what happens if BOTH of these are simplified into non-concat terms?
expr * v1_arg0 = a_new_nn1->get_arg(0);
expr * v1_arg1 = a_new_nn1->get_arg(1);
expr * v2_arg0 = a_new_nn2->get_arg(0);