Skip to content

Commit

Permalink
fix bug in array rewriter introduced in 202ce1e
Browse files Browse the repository at this point in the history
  • Loading branch information
nunoplopes committed Jun 21, 2022
1 parent 36a1f75 commit 41deed5
Showing 1 changed file with 4 additions and 11 deletions.
15 changes: 4 additions & 11 deletions src/ast/rewriter/array_rewriter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -174,21 +174,14 @@ br_status array_rewriter::mk_select_core(unsigned num_args, expr * const * args,
result = to_app(args[0])->get_arg(num_args);
return BR_DONE;
case l_false: {
expr* arg0 = args[0];
expr* arg1 = to_app(arg0)->get_arg(0);
#if 0
IF_VERBOSE(0, verbose_stream() << mk_pp(arg0, m()) << "\n");
while (m_util.is_store(arg1) && compare_args<true>(num_args-1, args + 1, to_app(arg0)->get_args() + 1) == l_false) {
IF_VERBOSE(0, verbose_stream() << "diff: " << mk_pp(arg1, m()) << "\n");

arg0 = arg1;
arg1 = to_app(arg0)->get_arg(0);
expr* arg0 = to_app(args[0])->get_arg(0);
while (m_util.is_store(arg0) && compare_args<true>(num_args-1, args + 1, to_app(arg0)->get_args() + 1) == l_false) {
arg0 = to_app(arg0)->get_arg(0);
}
#endif

// select(store(a, I, v), J) --> select(a, J) if I != J
ptr_buffer<expr> new_args;
new_args.push_back(arg1);
new_args.push_back(arg0);
new_args.append(num_args-1, args+1);
result = m().mk_app(get_fid(), OP_SELECT, num_args, new_args.data());
return BR_REWRITE1;
Expand Down

0 comments on commit 41deed5

Please sign in to comment.