summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClark Barrett <barrett@cs.stanford.edu>2020-02-03 15:18:22 -0800
committerGitHub <noreply@github.com>2020-02-03 17:18:22 -0600
commit6118996ec32a66fb8a62f42c79b093fdf82b9ef6 (patch)
treecd45b58222d202737dc895ee0f4f52e00540579e
parent35cf275a068f28c518acaab456ece16e19b6959c (diff)
Fix corner case - might need to REWRITE_AGAIN (#3706)
-rw-r--r--src/theory/arrays/theory_arrays_rewriter.h12
1 files changed, 2 insertions, 10 deletions
diff --git a/src/theory/arrays/theory_arrays_rewriter.h b/src/theory/arrays/theory_arrays_rewriter.h
index 851d2ca5d..e8c3d78d0 100644
--- a/src/theory/arrays/theory_arrays_rewriter.h
+++ b/src/theory/arrays/theory_arrays_rewriter.h
@@ -317,17 +317,9 @@ class TheoryArraysRewriter : public TheoryRewriter
NodeManager* nm = NodeManager::currentNM();
if (val) {
// store(store(a,i,v),i,w) = store(a,i,w)
- Node result;
- if (value.getKind() == kind::SELECT &&
- value[0] == store[0] &&
- value[1] == index) {
- result = store[0];
- }
- else {
- result = nm->mkNode(kind::STORE, store[0], index, value);
- }
+ Node result = nm->mkNode(kind::STORE, store[0], index, value);
Trace("arrays-postrewrite") << "Arrays::postRewrite returning " << result << std::endl;
- return RewriteResponse(REWRITE_DONE, result);
+ return RewriteResponse(REWRITE_AGAIN, result);
}
else if (index < store[1]) {
// store(store(a,i,v),j,w) = store(store(a,j,w),i,v)
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback