52 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Objective-C
		
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Objective-C
		
	
	
	
| // RUN: %clang_cc1 -fsyntax-only -verify -Wno-objc-root-class %s
 | |
| // expected-no-diagnostics
 | |
| // rdar://17238954
 | |
| 
 | |
| typedef const struct __attribute__((objc_bridge(NSAttributedString))) __CFAttributedString *CFAttributedStringRef;
 | |
| 
 | |
| typedef struct __attribute__((objc_bridge_mutable(NSMutableAttributedString))) __CFAttributedString *CFMutableAttributedStringRef;
 | |
| 
 | |
| @interface NSAttributedString
 | |
| @end
 | |
| 
 | |
| @interface NSMutableAttributedString
 | |
| @end
 | |
| 
 | |
| struct __CFAttributedString {
 | |
| };
 | |
| 
 | |
| void Test1(CFAttributedStringRef attrStr, CFMutableAttributedStringRef mutable_attrStr)
 | |
| {
 | |
|   id x = (NSAttributedString *) attrStr;
 | |
|   id x1 =(NSAttributedString *) mutable_attrStr;
 | |
|   id x2 = (NSMutableAttributedString *) attrStr;
 | |
|   id x3 = (NSMutableAttributedString *) mutable_attrStr;
 | |
| }
 | |
| 
 | |
| void Test2(NSAttributedString *ns_attrStr, NSMutableAttributedString *ns_mutable_attr_Str) {
 | |
|   CFAttributedStringRef cfsr = (CFAttributedStringRef) ns_attrStr;
 | |
|   CFMutableAttributedStringRef cfsr1 = (CFMutableAttributedStringRef) ns_attrStr;
 | |
|   CFAttributedStringRef cfsr2 = (CFAttributedStringRef) ns_mutable_attr_Str;
 | |
|   CFMutableAttributedStringRef cfsr3 = (CFMutableAttributedStringRef) ns_mutable_attr_Str;
 | |
| }
 | |
| 
 | |
| // Tests with no definition declaration for struct __NDCFAttributedString.
 | |
| typedef const struct __attribute__((objc_bridge(NSAttributedString))) __NDCFAttributedString *NDCFAttributedStringRef;
 | |
| 
 | |
| typedef struct __attribute__((objc_bridge_mutable(NSMutableAttributedString))) __NDCFAttributedString *NDCFMutableAttributedStringRef;
 | |
| 
 | |
| void Test3(NDCFAttributedStringRef attrStr, NDCFMutableAttributedStringRef mutable_attrStr)
 | |
| {
 | |
|   id x = (NSAttributedString *) attrStr;
 | |
|   id x1 =(NSAttributedString *) mutable_attrStr;
 | |
|   id x2 = (NSMutableAttributedString *) attrStr;
 | |
|   id x3 = (NSMutableAttributedString *) mutable_attrStr;
 | |
| }
 | |
| 
 | |
| void Test4(NSAttributedString *ns_attrStr, NSMutableAttributedString *ns_mutable_attr_Str) {
 | |
|   NDCFAttributedStringRef cfsr = (NDCFAttributedStringRef) ns_attrStr;
 | |
|   NDCFMutableAttributedStringRef cfsr1 = (NDCFMutableAttributedStringRef) ns_attrStr;
 | |
|   NDCFAttributedStringRef cfsr2 = (NDCFAttributedStringRef) ns_mutable_attr_Str;
 | |
|   NDCFMutableAttributedStringRef cfsr3 = (NDCFMutableAttributedStringRef) ns_mutable_attr_Str;
 | |
| }
 |