From 8a0210e535c5dc712f03bb323242e4d9bfa89fd8 Mon Sep 17 00:00:00 2001 From: Fariborz Jahanian Date: Sat, 16 Nov 2013 19:16:32 +0000 Subject: ObjectiveC ARC. Validate toll free bridge casting of ObjectiveC objects to CF types when CF type has the objc_bridge attribute. llvm-svn: 194930 --- clang/test/SemaObjC/objcbridge-attribute.m | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'clang/test/SemaObjC/objcbridge-attribute.m') diff --git a/clang/test/SemaObjC/objcbridge-attribute.m b/clang/test/SemaObjC/objcbridge-attribute.m index 4379c6fc8e9..d961528ebde 100644 --- a/clang/test/SemaObjC/objcbridge-attribute.m +++ b/clang/test/SemaObjC/objcbridge-attribute.m @@ -1,7 +1,7 @@ // RUN: %clang_cc1 -fsyntax-only -fobjc-arc -verify -Wno-objc-root-class %s // rdar://15454846 -typedef struct __CFErrorRef * __attribute__ ((objc_bridge(NSError))) CFErrorRef; +typedef struct __CFErrorRef * __attribute__ ((objc_bridge(NSError))) CFErrorRef; // expected-note {{declared here}} typedef struct __CFMyColor * __attribute__((objc_bridge(12))) CFMyColorRef; // expected-error {{parameter of 'objc_bridge' attribute must be a single name of an Objective-C class}} @@ -48,8 +48,10 @@ typedef CFErrorRef1 CFErrorRef2; @class NSString; -void Test2(CFErrorRef2 cf) { +void Test2(CFErrorRef2 cf, NSError *ns, NSString *str) { (void)(NSString *)cf; // expected-warning {{CFErrorRef bridges to NSError, not NSString}} (void)(NSError *)cf; // okay (void)(MyError*)cf; // okay, + (void)(CFErrorRef)ns; // okay + (void)(CFErrorRef)str; // expected-warning {{NSString cannot bridge to CFErrorRef}} } -- cgit v1.2.3