3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2026-02-23 08:47:37 +00:00

fix assertion violation in the code path where the simplifier throws a memout exception

This commit is contained in:
Nikolaj Bjorner 2025-01-14 16:37:53 -08:00
parent 31d4ba0009
commit 076d3dbf13
3 changed files with 6 additions and 1 deletions

View file

@ -89,7 +89,7 @@ namespace sat {
solver::~solver() {
m_ext = nullptr;
SASSERT(m_config.m_num_threads > 1 || m_trim || check_invariant());
SASSERT(m_config.m_num_threads > 1 || m_trim || rlimit().is_canceled() || check_invariant());
CTRACE("sat", !m_clauses.empty(), tout << "Delete clauses\n";);
del_clauses(m_clauses);
CTRACE("sat", !m_learned.empty(), tout << "Delete learned\n";);
@ -3872,6 +3872,8 @@ namespace sat {
// -----------------------
bool solver::check_invariant() const {
if (!m_rlimit.inc()) return true;
if (m_simplifier.need_cleanup())
return true;
integrity_checker checker(*this);
VERIFY(checker());
VERIFY(!m_ext || m_ext->validate());