3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-15 05:18:44 +00:00
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2020-03-30 16:24:23 -07:00
parent 3e845010dd
commit 7f8738dd85
2 changed files with 17 additions and 2 deletions

View file

@ -222,7 +222,17 @@ public:
}
void push() override {
internalize_formulas();
try {
internalize_formulas();
}
catch (...) {
push_internal();
throw;
}
push_internal();
}
void push_internal() {
m_solver.user_push();
++m_num_scopes;
m_mcs.push_back(m_mcs.back());
@ -599,6 +609,11 @@ private:
m_bb_rewriter = nullptr;
return l_undef;
}
catch (...) {
m_preprocess = nullptr;
m_bb_rewriter = nullptr;
throw;
}
if (m_subgoals.size() != 1) {
IF_VERBOSE(0, verbose_stream() << "size of subgoals is not 1, it is: " << m_subgoals.size() << "\n");
return l_undef;

View file

@ -921,7 +921,7 @@ template<typename Ext>
bool theory_diff_logic<Ext>::is_consistent() const {
DEBUG_CODE(
context& ctx = get_context();
for (unsigned i = 0; i < m_atoms.size(); ++i) {
for (unsigned i = 0; m_graph.is_feasible() && i < m_atoms.size(); ++i) {
atom* a = m_atoms[i];
bool_var bv = a->get_bool_var();
lbool asgn = ctx.get_assignment(bv);