Get a little bit smarter about killing off the ReturnValue alloca
in the presence of straight-line cleanups.  This is a simple but
important case, particularly for ARC.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149190 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/test/CodeGenCXX/arm.cpp b/test/CodeGenCXX/arm.cpp
index a767f42..0a4754b 100644
--- a/test/CodeGenCXX/arm.cpp
+++ b/test/CodeGenCXX/arm.cpp
@@ -45,24 +45,18 @@
   }
 
   // CHECK: define linkonce_odr [[A]]* @_ZN5test11AC1Ei([[A]]* %this, i32 %i) unnamed_addr
-  // CHECK:   [[RET:%.*]] = alloca [[A]]*, align 4
   // CHECK:   [[THIS:%.*]] = alloca [[A]]*, align 4
   // CHECK:   store [[A]]* {{.*}}, [[A]]** [[THIS]]
   // CHECK:   [[THIS1:%.*]] = load [[A]]** [[THIS]]
-  // CHECK:   store [[A]]* [[THIS1]], [[A]]** [[RET]]
   // CHECK:   call [[A]]* @_ZN5test11AC2Ei(
-  // CHECK:   [[THIS2:%.*]] = load [[A]]** [[RET]]
-  // CHECK:   ret [[A]]* [[THIS2]]
+  // CHECK:   ret [[A]]* [[THIS1]]
 
   // CHECK: define linkonce_odr [[A]]* @_ZN5test11AD1Ev([[A]]* %this) unnamed_addr
-  // CHECK:   [[RET:%.*]] = alloca [[A]]*, align 4
   // CHECK:   [[THIS:%.*]] = alloca [[A]]*, align 4
   // CHECK:   store [[A]]* {{.*}}, [[A]]** [[THIS]]
   // CHECK:   [[THIS1:%.*]] = load [[A]]** [[THIS]]
-  // CHECK:   store [[A]]* [[THIS1]], [[A]]** [[RET]]
   // CHECK:   call [[A]]* @_ZN5test11AD2Ev(
-  // CHECK:   [[THIS2:%.*]] = load [[A]]** [[RET]]
-  // CHECK:   ret [[A]]* [[THIS2]]
+  // CHECK:   ret [[A]]* [[THIS1]]
 }
 
 // Awkward virtual cases.