Fix some obvious bugs in the conditional-cleanup code and then make the
dtor cleanup use it.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124309 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/test/CodeGenCXX/temporaries.cpp b/test/CodeGenCXX/temporaries.cpp
index 74b11fd..348d51e 100644
--- a/test/CodeGenCXX/temporaries.cpp
+++ b/test/CodeGenCXX/temporaries.cpp
@@ -502,9 +502,9 @@
     // CHECK:      [[TMP:%.*]] = alloca [[A:%.*]], align 1
     // CHECK-NEXT: [[LCONS:%.*]] = alloca i1
     // CHECK-NEXT: [[RCONS:%.*]] = alloca i1
+    // CHECK:      store i1 false, i1* [[LCONS]]
     // CHECK-NEXT: store i1 false, i1* [[RCONS]]
-    // CHECK-NEXT: store i1 false, i1* [[LCONS]]
-    // CHECK:      br i1
+    // CHECK-NEXT: br i1
     // CHECK:      call void @_ZN6PR86231AC1Ei([[A]]* [[TMP]], i32 2)
     // CHECK-NEXT: store i1 true, i1* [[LCONS]]
     // CHECK-NEXT: br label
@@ -514,12 +514,10 @@
     // CHECK:      load i1* [[RCONS]]
     // CHECK-NEXT: br i1
     // CHECK:      call void @_ZN6PR86231AD1Ev([[A]]* [[TMP]])
-    // CHECK-NEXT: store i1 false, i1* [[RCONS]]
     // CHECK-NEXT: br label
     // CHECK:      load i1* [[LCONS]]
     // CHECK-NEXT: br i1
     // CHECK:      call void @_ZN6PR86231AD1Ev([[A]]* [[TMP]])
-    // CHECK-NEXT: store i1 false, i1* [[LCONS]]
     // CHECK-NEXT: br label
     // CHECK:      ret void
     b ? A(2) : A(3);