diff options
author | Fariborz Jahanian <fjahanian@apple.com> | 2010-02-10 23:34:57 +0000 |
---|---|---|
committer | Fariborz Jahanian <fjahanian@apple.com> | 2010-02-10 23:34:57 +0000 |
commit | 989908fbacab3462520eb55a4fb7c0778689ea08 (patch) | |
tree | eb9a4a1d2c2fd8e416f9807e4bb77ddaafa9591a /clang/test/CodeGenObjC/objc2-weak-block-call.m | |
parent | 42b384242978f914327b1a9a5e6894684eb3026b (diff) | |
download | bcm5719-llvm-989908fbacab3462520eb55a4fb7c0778689ea08.tar.gz bcm5719-llvm-989908fbacab3462520eb55a4fb7c0778689ea08.zip |
Generate the objc_read_weak API when calling
a __weak block. Fixes radar 7628591.
llvm-svn: 95822
Diffstat (limited to 'clang/test/CodeGenObjC/objc2-weak-block-call.m')
-rw-r--r-- | clang/test/CodeGenObjC/objc2-weak-block-call.m | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/clang/test/CodeGenObjC/objc2-weak-block-call.m b/clang/test/CodeGenObjC/objc2-weak-block-call.m new file mode 100644 index 00000000000..a3514b0caa0 --- /dev/null +++ b/clang/test/CodeGenObjC/objc2-weak-block-call.m @@ -0,0 +1,29 @@ +// RUN: %clang_cc1 -fblocks -fobjc-gc -triple x86_64-apple-darwin -S %s -o %t-64.s +// RUN: FileCheck -check-prefix LP64 --input-file=%t-64.s %s +// RUN: %clang_cc1 -fblocks -fobjc-gc -triple i386-apple-darwin -S %s -o %t-32.s +// RUN: FileCheck -check-prefix LP32 --input-file=%t-32.s %s + +@interface MyView +- (void)MyView_sharedInit; +@end + +void foo(MyView *(^obj)(void)) ; + +@implementation MyView +- (void)MyView_sharedInit { + + __block __weak MyView *weakSelf = self; + foo( + ^{ + return weakSelf; + }); + +} +@end + +// CHECK-LP64: callq _objc_read_weak +// CHECK-LP64: callq _objc_read_weak + +// CHECK-LP32: call L_objc_read_weak +// CHECK-LP32: call L_objc_read_weak + |