summaryrefslogtreecommitdiffstats
path: root/test/Rewriter/rewrite-nested-blocks.mm
diff options
context:
space:
mode:
authorrdivacky <rdivacky@FreeBSD.org>2010-03-03 17:28:16 +0000
committerrdivacky <rdivacky@FreeBSD.org>2010-03-03 17:28:16 +0000
commitdf90325d4c0a65ee64d2dae3ed9b5b34f7418533 (patch)
treee1a885aadfd80632f5bd70d4bd2d37e715e35a79 /test/Rewriter/rewrite-nested-blocks.mm
parentfd035e6496665b1f1197868e21cb0a4594e8db6e (diff)
downloadFreeBSD-src-df90325d4c0a65ee64d2dae3ed9b5b34f7418533.zip
FreeBSD-src-df90325d4c0a65ee64d2dae3ed9b5b34f7418533.tar.gz
Update clang to 97654.
Diffstat (limited to 'test/Rewriter/rewrite-nested-blocks.mm')
-rw-r--r--test/Rewriter/rewrite-nested-blocks.mm56
1 files changed, 56 insertions, 0 deletions
diff --git a/test/Rewriter/rewrite-nested-blocks.mm b/test/Rewriter/rewrite-nested-blocks.mm
new file mode 100644
index 0000000..1a6bcdd
--- /dev/null
+++ b/test/Rewriter/rewrite-nested-blocks.mm
@@ -0,0 +1,56 @@
+// RUN: %clang_cc1 -x objective-c++ -Wno-return-type -fblocks -fms-extensions -rewrite-objc %s -o %t-rw.cpp
+// RUN: %clang_cc1 -fsyntax-only -Wno-address-of-temporary -D"SEL=void*" -D"__declspec(X)=" %t-rw.cpp
+// radar 7682149
+
+
+void f(void (^block)(void));
+
+@interface X {
+ int y;
+}
+- (void)foo;
+@end
+
+@implementation X
+- (void)foo {
+ f(^{
+ f(^{
+ f(^{
+ y=42;
+ });
+ });
+});
+
+}
+@end
+
+struct S {
+ int y;
+};
+
+void foo () {
+ struct S *SELF;
+ f(^{
+ f(^{
+ SELF->y = 42;
+ });
+ });
+}
+
+// radar 7692419
+@interface Bar
+@end
+
+void f(Bar *);
+void q(void (^block)(void));
+
+void x() {
+ void (^myblock)(Bar *b) = ^(Bar *b) {
+ q(^{
+ f(b);
+ });
+ };
+
+ Bar *b = (Bar *)42;
+ myblock(b);
+}
OpenPOWER on IntegriCloud