Fix a block rewriter bug where copy/dispose entries in 
block descriptor for outer block was missing even though
the block was importing objects into its inner blocks.
//rdar://84995992


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@115644 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/test/Rewriter/rewrite-nested-blocks-2.mm b/test/Rewriter/rewrite-nested-blocks-2.mm
new file mode 100644
index 0000000..5a8e1cc
--- /dev/null
+++ b/test/Rewriter/rewrite-nested-blocks-2.mm
@@ -0,0 +1,18 @@
+// RUN: %clang_cc1 -x objective-c++ -Wno-return-type -fblocks -fms-extensions -rewrite-objc %s -o %t-rw.cpp
+// RUN: %clang_cc1 -fsyntax-only -fblocks -Wno-address-of-temporary -D"id=void*" -D"SEL=void*" -D"__declspec(X)=" %t-rw.cpp
+// grep "static void __FUNC_block_copy_" %t-rw.cpp | count 2
+// rdar://8499592
+
+void Outer(void (^bk)());
+void Inner(void (^bk)());
+void INNER_FUNC(id d);
+
+void FUNC() {
+    
+    id bar = (id)42;
+    Outer(^{
+        Inner(^{
+            INNER_FUNC(bar);
+        });
+    });    
+}