3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2026-06-20 07:36:31 +00:00

fix crashes when using replace_all

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2026-04-16 22:37:36 +02:00
parent 64e7f29533
commit 0bcdca787f
5 changed files with 53 additions and 38 deletions

View file

@ -364,6 +364,13 @@ namespace recfun {
return alloc(def, m(), m_fid, name, n, domain, range, is_generated);
}
func_decl *util::find_def_decl(symbol const &name, unsigned n, sort *const *params, sort *range, bool is_generated) {
def d(m_manager, m_fid, name, n, params, range, is_generated);
if (m_plugin->has_def(d.get_decl()))
return d.get_decl();
return nullptr;
}
void util::set_definition(replace& subst, promise_def & d, bool is_macro, unsigned n_vars, var * const * vars, expr * rhs) {
expr_ref rhs1(rhs, m());
if (!is_macro)
@ -551,6 +558,7 @@ namespace recfun {
}
}
expr_ref plugin::redirect_ite(replace& subst, unsigned n, var * const* vars, expr * e) {
expr_ref result(e, m());
util u(m());