summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/passes/OptimizeInstructions.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/passes/OptimizeInstructions.cpp b/src/passes/OptimizeInstructions.cpp
index b8f038dac..b7bbebf89 100644
--- a/src/passes/OptimizeInstructions.cpp
+++ b/src/passes/OptimizeInstructions.cpp
@@ -1404,6 +1404,8 @@ private:
// memory.copy(x, x, sz) ==> nop
if (!EffectAnalyzer(getPassOptions(), features, memCopy->dest)
.hasSideEffects() &&
+ !EffectAnalyzer(getPassOptions(), features, memCopy->size)
+ .hasSideEffects() &&
ExpressionAnalyzer::equal(memCopy->dest, memCopy->source)) {
return ExpressionManipulator::nop(memCopy);
}