diff options
author | John McCall <rjmccall@apple.com> | 2015-03-10 18:41:23 +0000 |
---|---|---|
committer | John McCall <rjmccall@apple.com> | 2015-03-10 18:41:23 +0000 |
commit | af6b3f8ba605fe5e9cae795713f2db6af522db79 (patch) | |
tree | 47eabc05f12efb4bb8ef41f5e3ccda0070216fd5 /clang/test/SemaObjC | |
parent | abf7023c63a47407589495d873583c4af30ea9aa (diff) | |
download | bcm5719-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.m | 18 |
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(); +} |