summaryrefslogtreecommitdiffstats
path: root/clang/test/SemaObjC
diff options
context:
space:
mode:
authorJohn McCall <rjmccall@apple.com>2015-03-10 18:41:23 +0000
committerJohn McCall <rjmccall@apple.com>2015-03-10 18:41:23 +0000
commitaf6b3f8ba605fe5e9cae795713f2db6af522db79 (patch)
tree47eabc05f12efb4bb8ef41f5e3ccda0070216fd5 /clang/test/SemaObjC
parentabf7023c63a47407589495d873583c4af30ea9aa (diff)
downloadbcm5719-llvm-af6b3f8ba605fe5e9cae795713f2db6af522db79.tar.gz
bcm5719-llvm-af6b3f8ba605fe5e9cae795713f2db6af522db79.zip
Recognize objc_bridge(id) on bridged casts to CF types.
Fixes <rdar://20107345>. llvm-svn: 231814
Diffstat (limited to 'clang/test/SemaObjC')
-rw-r--r--clang/test/SemaObjC/arc-bridged-cast.m18
1 files changed, 18 insertions, 0 deletions
diff --git a/clang/test/SemaObjC/arc-bridged-cast.m b/clang/test/SemaObjC/arc-bridged-cast.m
index 439d3821165..9e716f9d40c 100644
--- a/clang/test/SemaObjC/arc-bridged-cast.m
+++ b/clang/test/SemaObjC/arc-bridged-cast.m
@@ -62,3 +62,21 @@ CFTypeRef fixitsWithSpace(id obj) {
// CHECK: fix-it:"{{.*}}":{59:9-59:9}:"(__bridge CFTypeRef)"
// CHECK: fix-it:"{{.*}}":{59:9-59:9}:" CFBridgingRetain"
}
+
+// rdar://problem/20107345
+typedef const struct __attribute__((objc_bridge(id))) __CFAnnotatedObject *CFAnnotatedObjectRef;
+CFAnnotatedObjectRef CFGetAnnotated();
+
+void testObjCBridgeId() {
+ id obj;
+ obj = (__bridge id)CFGetAnnotated();
+ obj = (__bridge NSString*)CFGetAnnotated();
+ obj = (__bridge_transfer id)CFGetAnnotated();
+ obj = (__bridge_transfer NSString*)CFGetAnnotated();
+
+ CFAnnotatedObjectRef ref;
+ ref = (__bridge CFAnnotatedObjectRef) CreateSomething();
+ ref = (__bridge CFAnnotatedObjectRef) CreateNSString();
+ ref = (__bridge_retained CFAnnotatedObjectRef) CreateSomething();
+ ref = (__bridge_retained CFAnnotatedObjectRef) CreateNSString();
+}
OpenPOWER on IntegriCloud