<rdar://problem/13325066> Destroy std::initializer_list temporaries whose lifetime has been extended by reference binding.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@178939 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/test/CodeGenCXX/cxx0x-initializer-stdinitializerlist.cpp b/test/CodeGenCXX/cxx0x-initializer-stdinitializerlist.cpp
index 8d9fce0..fc90880 100644
--- a/test/CodeGenCXX/cxx0x-initializer-stdinitializerlist.cpp
+++ b/test/CodeGenCXX/cxx0x-initializer-stdinitializerlist.cpp
@@ -250,3 +250,22 @@
 
   map m{ {1, 2}, {3, 4} };
 }
+
+namespace rdar13325066 {
+  struct X { ~X(); };
+
+  // CHECK: define void @_ZN12rdar133250664loopERNS_1XES1_
+  void loop(X &x1, X &x2) {
+    // CHECK: br label
+    // CHECK: br i1
+    // CHECK: br label
+    // CHECK call void @_ZN12rdar133250661XD1Ev
+    // CHECK: br label
+    // CHECK: br label
+    // CHECK: call void @_ZN12rdar133250661XD1Ev
+    // CHECK: br i1
+    // CHECK: br label
+    // CHECK: ret void
+    for (X x : { x1, x2 }) { }
+  }
+}