[MemCpyOpt] Don't perform callslot optimization across may-throw calls

An exception could prevent a store from occurring but MemCpyOpt's
callslot optimization would fire anyway, causing the store to occur.

This fixes PR27849.

llvm-svn: 270892
diff --git a/llvm/test/Transforms/MemCpyOpt/loadstore-sret.ll b/llvm/test/Transforms/MemCpyOpt/loadstore-sret.ll
index 55cbe59..4c6136c 100644
--- a/llvm/test/Transforms/MemCpyOpt/loadstore-sret.ll
+++ b/llvm/test/Transforms/MemCpyOpt/loadstore-sret.ll
@@ -22,4 +22,4 @@
   ret void
 }
 
-declare void @_Z3barv(%"class.std::auto_ptr"* nocapture sret)
+declare void @_Z3barv(%"class.std::auto_ptr"* nocapture sret) nounwind