mirror of
https://github.com/Z3Prover/z3
synced 2025-04-12 12:08:18 +00:00
pin expressions to fix unsound behavior
This commit is contained in:
parent
5d4c18dde2
commit
dff419a7cb
|
@ -80,8 +80,10 @@ class simplifier_solver : public solver {
|
||||||
void flatten_suffix() override {
|
void flatten_suffix() override {
|
||||||
expr_mark seen;
|
expr_mark seen;
|
||||||
unsigned j = qhead();
|
unsigned j = qhead();
|
||||||
|
expr_ref_vector pinned(s.m);
|
||||||
for (unsigned i = qhead(); i < qtail(); ++i) {
|
for (unsigned i = qhead(); i < qtail(); ++i) {
|
||||||
expr* f = s.m_fmls[i].fml(), *g = nullptr;
|
expr* f = s.m_fmls[i].fml(), *g = nullptr;
|
||||||
|
pinned.push_back(f);
|
||||||
if (seen.is_marked(f))
|
if (seen.is_marked(f))
|
||||||
continue;
|
continue;
|
||||||
seen.mark(f, true);
|
seen.mark(f, true);
|
||||||
|
|
Loading…
Reference in a new issue