diff --git a/lib/Transforms/Scalar/GVN.cpp b/lib/Transforms/Scalar/GVN.cpp index efe8254cd54..e8337600727 100644 --- a/lib/Transforms/Scalar/GVN.cpp +++ b/lib/Transforms/Scalar/GVN.cpp @@ -1121,7 +1121,8 @@ bool GVN::processMemCpy(MemCpyInst* M, dep == MemoryDependenceAnalysis::NonLocal) return false; else if (CallInst* C = dyn_cast(dep)) - return performReturnSlotOptzn(M, C, toErase); + if (!isa(C)) + return performReturnSlotOptzn(M, C, toErase); else if (!isa(dep)) return false;