diff options
author | Fariborz Jahanian <fjahanian@apple.com> | 2010-03-01 23:36:21 +0000 |
---|---|---|
committer | Fariborz Jahanian <fjahanian@apple.com> | 2010-03-01 23:36:21 +0000 |
commit | f4609d431f249016ad7ea8d5d1cb884249ef4538 (patch) | |
tree | 8569fb4fc47c48608c3afac3fbab10d80ec3b39e /clang/test | |
parent | ea99b5d7365e8d1a151657b6e7922381d2c2833b (diff) | |
download | bcm5719-llvm-f4609d431f249016ad7ea8d5d1cb884249ef4538.tar.gz bcm5719-llvm-f4609d431f249016ad7ea8d5d1cb884249ef4538.zip |
More rewriter of nested blocks fun stuff.
Radar 7696893.
llvm-svn: 97520
Diffstat (limited to 'clang/test')
-rw-r--r-- | clang/test/Rewriter/rewrite-nested-blocks-1.mm | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/clang/test/Rewriter/rewrite-nested-blocks-1.mm b/clang/test/Rewriter/rewrite-nested-blocks-1.mm new file mode 100644 index 00000000000..582f5f4c0d7 --- /dev/null +++ b/clang/test/Rewriter/rewrite-nested-blocks-1.mm @@ -0,0 +1,47 @@ +// 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 +// radar 7696893 + +void *sel_registerName(const char *); + +void f(void (^block)(void)); +void f2(id); +void f3(int); +char f4(id, id); + +@interface Baz +- (void)b:(void (^)(void))block; +@end + +@interface Bar +@end + +@interface Foo { + int _x; +} +@end + +@implementation Foo +- (void)method:(Bar *)up { + Baz *down; + int at; + id cq; + __block char didit = 'a'; + __block char upIsFinished = 'b'; + f(^{ + id old_cq; + f2(cq); + [down b:^{ + [down b:^{ + f(^{ + didit = f4(up, down); + upIsFinished = 'c'; + self->_x++; + }); + }]; + }]; + f2(old_cq); + f3(at); + }); +} +@end |