From d131aba8a9807b20b101cc4797302e4f58d5ab70 Mon Sep 17 00:00:00 2001 From: Nikolaj Bjorner Date: Mon, 11 Sep 2017 01:07:25 +0200 Subject: [PATCH] fix exposed memory leak Signed-off-by: Nikolaj Bjorner --- src/ast/ast.cpp | 7 +++++++ src/ast/rewriter/poly_rewriter_def.h | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/ast/ast.cpp b/src/ast/ast.cpp index bb81c1eba..c98307ee0 100644 --- a/src/ast/ast.cpp +++ b/src/ast/ast.cpp @@ -1714,8 +1714,15 @@ ast * ast_manager::register_node_core(ast * n) { SASSERT(m_ast_table.contains(n)); } + n->m_id = is_decl(n) ? m_decl_id_gen.mk() : m_expr_id_gen.mk(); + static unsigned count = 0; + if (n->m_id == 404) { + ++count; + //if (count == 2) SASSERT(false); + } + TRACE("ast", tout << "Object " << n->m_id << " was created.\n";); TRACE("mk_var_bug", tout << "mk_ast: " << n->m_id << "\n";); // increment reference counters diff --git a/src/ast/rewriter/poly_rewriter_def.h b/src/ast/rewriter/poly_rewriter_def.h index 029cf231a..3bb963a7f 100644 --- a/src/ast/rewriter/poly_rewriter_def.h +++ b/src/ast/rewriter/poly_rewriter_def.h @@ -686,7 +686,7 @@ br_status poly_rewriter::mk_sub(unsigned num_args, expr * const * args, return BR_DONE; } set_curr_sort(m().get_sort(args[0])); - expr * minus_one = mk_numeral(numeral(-1)); + expr_ref minus_one(mk_numeral(numeral(-1)), m()); ptr_buffer new_args; new_args.push_back(args[0]); for (unsigned i = 1; i < num_args; i++) {