3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-29 11:55:51 +00:00

avoid crash on box models under cancellation. Issue # SASSERT(!m_box_models.empty());

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2016-06-29 04:53:28 -07:00
parent 8aee7129f6
commit 0fdf01e410
2 changed files with 19 additions and 14 deletions

View file

@ -189,9 +189,10 @@ public:
trace_bounds(m_trace_id.c_str());
}
#define RUNDEF() { std::cout << __LINE__ << "\n"; return l_undef; }
lbool mus_solver() {
lbool is_sat = l_true;
if (!init()) return l_undef;
if (!init()) RUNDEF();
init_local();
trace();
while (m_lower < m_upper) {
@ -203,7 +204,7 @@ public:
);
is_sat = check_sat_hill_climb(m_asms);
if (m.canceled()) {
return l_undef;
RUNDEF();
}
switch (is_sat) {
case l_true:
@ -219,7 +220,7 @@ public:
}
break;
case l_undef:
return l_undef;
RUNDEF();
default:
break;
}
@ -229,14 +230,14 @@ public:
}
lbool primal_dual_solver() {
if (!init()) return l_undef;
if (!init()) RUNDEF();
init_local();
trace();
exprs cs;
while (m_lower < m_upper) {
lbool is_sat = check_sat_hill_climb(m_asms);
if (m.canceled()) {
return l_undef;
RUNDEF();
}
switch (is_sat) {
case l_true:
@ -259,7 +260,7 @@ public:
}
break;
case l_undef:
return l_undef;
RUNDEF();
default:
break;
}
@ -339,7 +340,7 @@ public:
case s_primal_dual:
return primal_dual_solver();
}
return l_undef;
RUNDEF();
}
virtual void collect_statistics(statistics& st) const {