mirror of
https://github.com/Z3Prover/z3
synced 2026-05-21 01:19:34 +00:00
fix vector<le, false> to vector<le> we need the copy and destructor semantics for expr_ref
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
03c990e0e1
commit
b2fa00ecf4
3 changed files with 7 additions and 8 deletions
|
|
@ -44,7 +44,7 @@ NSB review:
|
||||||
|
|
||||||
namespace seq {
|
namespace seq {
|
||||||
|
|
||||||
void deps_to_lits(dep_tracker deps, svector<enode_pair> &eqs, svector<sat::literal> &lits, vector<le, false>& les) {
|
void deps_to_lits(dep_tracker deps, svector<enode_pair> &eqs, svector<sat::literal> &lits, vector<le>& les) {
|
||||||
vector<dep_source, false> vs;
|
vector<dep_source, false> vs;
|
||||||
dep_manager::s_linearize(deps, vs);
|
dep_manager::s_linearize(deps, vs);
|
||||||
for (dep_source const &d : vs) {
|
for (dep_source const &d : vs) {
|
||||||
|
|
|
||||||
|
|
@ -362,7 +362,7 @@ namespace seq {
|
||||||
void deps_to_lits(dep_tracker deps,
|
void deps_to_lits(dep_tracker deps,
|
||||||
svector<enode_pair>& eqs,
|
svector<enode_pair>& eqs,
|
||||||
svector<sat::literal>& lits,
|
svector<sat::literal>& lits,
|
||||||
vector<le, false>& les);
|
vector<le>& les);
|
||||||
|
|
||||||
// string equality constraint: lhs = rhs
|
// string equality constraint: lhs = rhs
|
||||||
// mirrors ZIPT's StrEq (both sides are regex-free snode trees)
|
// mirrors ZIPT's StrEq (both sides are regex-free snode trees)
|
||||||
|
|
|
||||||
|
|
@ -1262,7 +1262,7 @@ namespace smt {
|
||||||
// conditional constraints: propagate with justification from dep_tracker
|
// conditional constraints: propagate with justification from dep_tracker
|
||||||
enode_pair_vector eqs;
|
enode_pair_vector eqs;
|
||||||
literal_vector lits;
|
literal_vector lits;
|
||||||
vector<seq::le, false> les;
|
vector<seq::le> les;
|
||||||
seq::deps_to_lits(lc.m_dep, eqs, lits, les);
|
seq::deps_to_lits(lc.m_dep, eqs, lits, les);
|
||||||
for (auto const& d : les)
|
for (auto const& d : les)
|
||||||
lits.push_back(mk_le_literal(d));
|
lits.push_back(mk_le_literal(d));
|
||||||
|
|
@ -1553,11 +1553,10 @@ namespace smt {
|
||||||
|
|
||||||
enode_pair_vector eqs;
|
enode_pair_vector eqs;
|
||||||
literal_vector dep_lits;
|
literal_vector dep_lits;
|
||||||
vector<seq::le, false> dep_les;
|
vector<seq::le> dep_les;
|
||||||
for (unsigned idx : mem_indices) {
|
for (unsigned idx : mem_indices)
|
||||||
if (mems[idx].m_dep)
|
seq::deps_to_lits(mems[idx].m_dep, eqs, dep_lits, dep_les);
|
||||||
seq::deps_to_lits(mems[idx].m_dep, eqs, dep_lits, dep_les);
|
|
||||||
}
|
|
||||||
for (auto const &d : dep_les)
|
for (auto const &d : dep_les)
|
||||||
dep_lits.push_back(mk_le_literal(d));
|
dep_lits.push_back(mk_le_literal(d));
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue