summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGenObjC
diff options
context:
space:
mode:
authorFariborz Jahanian <fjahanian@apple.com>2010-09-11 01:27:29 +0000
committerFariborz Jahanian <fjahanian@apple.com>2010-09-11 01:27:29 +0000
commit933c6723a43f26ff55cfa582a5826fc3c798bc7f (patch)
tree2b4590dd012f9e2d4dcee5150ee78ca233648c41 /clang/test/CodeGenObjC
parent8f22a243b743efee5cf94f5afc8461f70ce00fd2 (diff)
downloadbcm5719-llvm-933c6723a43f26ff55cfa582a5826fc3c798bc7f.tar.gz
bcm5719-llvm-933c6723a43f26ff55cfa582a5826fc3c798bc7f.zip
Fixes an obscure bug in importd block variable layout
information when imported variable is used more than once. Originally though to be a bug in importing block varibles. Fixes radar 8417746. llvm-svn: 113675
Diffstat (limited to 'clang/test/CodeGenObjC')
-rw-r--r--clang/test/CodeGenObjC/block-var-layout.m20
1 files changed, 20 insertions, 0 deletions
diff --git a/clang/test/CodeGenObjC/block-var-layout.m b/clang/test/CodeGenObjC/block-var-layout.m
index f57d7d99cd5..c2a01d35fe0 100644
--- a/clang/test/CodeGenObjC/block-var-layout.m
+++ b/clang/test/CodeGenObjC/block-var-layout.m
@@ -107,6 +107,23 @@ c();
}
+// rdar: //8417746
+void CFRelease(id);
+void notifyBlock(id dependentBlock) {
+ id singleObservationToken;
+ id token;
+ void (^b)();
+ void (^wrapperBlock)() = ^() {
+ CFRelease(singleObservationToken);
+ CFRelease(singleObservationToken);
+ CFRelease(token);
+ CFRelease(singleObservationToken);
+ b();
+ };
+ wrapperBlock();
+}
+
+
// CHECK-LP64: L_OBJC_CLASS_NAME_:
// CHECK-LP64-NEXT: .asciz "\0011\024"
@@ -121,3 +138,6 @@ c();
// CHECK-LP64: L_OBJC_CLASS_NAME_14:
// CHECK-LP64-NEXT: .asciz "\001A\021\022p"
+
+// CHECK-LP64: L_OBJC_CLASS_NAME_16:
+// CHECK-LP64-NEXT: .asciz "\0013"
OpenPOWER on IntegriCloud