diff --git a/src/cmd_context/cmd_context.cpp b/src/cmd_context/cmd_context.cpp index 50d87029e..671f64df0 100644 --- a/src/cmd_context/cmd_context.cpp +++ b/src/cmd_context/cmd_context.cpp @@ -1075,6 +1075,7 @@ void cmd_context::mk_app(symbol const & s, unsigned num_args, expr * const * arg tout << "body:\n" << mk_ismt2_pp(_t, m()) << "\n"; tout << "args:\n"; for (unsigned i = 0; i < num_args; i++) tout << mk_ismt2_pp(args[i], m()) << "\n" << mk_pp(m().get_sort(args[i]), m()) << "\n";); var_subst subst(m()); + scoped_rlimit no_limit(m().limit(), 0); result = subst(_t, num_args, args); if (well_sorted_check_enabled() && !is_well_sorted(m(), result)) throw cmd_exception("invalid macro application, sort mismatch ", s); @@ -1337,6 +1338,7 @@ void cmd_context::reset(bool finalize) { } void cmd_context::assert_expr(expr * t) { + scoped_rlimit no_limit(m().limit(), 0); m_processing_pareto = false; if (!m_check_logic(t)) throw cmd_exception(m_check_logic.get_last_error()); @@ -1357,6 +1359,8 @@ void cmd_context::assert_expr(symbol const & name, expr * t) { assert_expr(t); return; } + scoped_rlimit no_limit(m().limit(), 0); + m_check_sat_result = nullptr; m().inc_ref(t); m_assertions.push_back(t); diff --git a/src/solver/solver.cpp b/src/solver/solver.cpp index 20c2166a2..b93f8c658 100644 --- a/src/solver/solver.cpp +++ b/src/solver/solver.cpp @@ -326,7 +326,7 @@ lbool solver::check_sat(unsigned num_assumptions, expr * const * assumptions) { r = check_sat_core(num_assumptions, assumptions); } catch (...) { - if (get_manager().canceled()) { + if (!get_manager().limit().inc(0)) { dump_state(num_assumptions, assumptions); } throw;