150
|
1 // RUN: %clang_cc1 -fsyntax-only -verify -Wno-objc-root-class %s
|
|
2 // expected-no-diagnostics
|
|
3 // rdar://17238954
|
|
4
|
|
5 typedef const struct __attribute__((objc_bridge(NSAttributedString))) __CFAttributedString *CFAttributedStringRef;
|
|
6
|
|
7 typedef struct __attribute__((objc_bridge_mutable(NSMutableAttributedString))) __CFAttributedString *CFMutableAttributedStringRef;
|
|
8
|
|
9 @interface NSAttributedString
|
|
10 @end
|
|
11
|
|
12 @interface NSMutableAttributedString
|
|
13 @end
|
|
14
|
|
15 struct __CFAttributedString {
|
|
16 };
|
|
17
|
|
18 void Test1(CFAttributedStringRef attrStr, CFMutableAttributedStringRef mutable_attrStr)
|
|
19 {
|
|
20 id x = (NSAttributedString *) attrStr;
|
|
21 id x1 =(NSAttributedString *) mutable_attrStr;
|
|
22 id x2 = (NSMutableAttributedString *) attrStr;
|
|
23 id x3 = (NSMutableAttributedString *) mutable_attrStr;
|
|
24 }
|
|
25
|
|
26 void Test2(NSAttributedString *ns_attrStr, NSMutableAttributedString *ns_mutable_attr_Str) {
|
|
27 CFAttributedStringRef cfsr = (CFAttributedStringRef) ns_attrStr;
|
|
28 CFMutableAttributedStringRef cfsr1 = (CFMutableAttributedStringRef) ns_attrStr;
|
|
29 CFAttributedStringRef cfsr2 = (CFAttributedStringRef) ns_mutable_attr_Str;
|
|
30 CFMutableAttributedStringRef cfsr3 = (CFMutableAttributedStringRef) ns_mutable_attr_Str;
|
|
31 }
|
|
32
|
|
33 // Tests with no definition declaration for struct __NDCFAttributedString.
|
|
34 typedef const struct __attribute__((objc_bridge(NSAttributedString))) __NDCFAttributedString *NDCFAttributedStringRef;
|
|
35
|
|
36 typedef struct __attribute__((objc_bridge_mutable(NSMutableAttributedString))) __NDCFAttributedString *NDCFMutableAttributedStringRef;
|
|
37
|
|
38 void Test3(NDCFAttributedStringRef attrStr, NDCFMutableAttributedStringRef mutable_attrStr)
|
|
39 {
|
|
40 id x = (NSAttributedString *) attrStr;
|
|
41 id x1 =(NSAttributedString *) mutable_attrStr;
|
|
42 id x2 = (NSMutableAttributedString *) attrStr;
|
|
43 id x3 = (NSMutableAttributedString *) mutable_attrStr;
|
|
44 }
|
|
45
|
|
46 void Test4(NSAttributedString *ns_attrStr, NSMutableAttributedString *ns_mutable_attr_Str) {
|
|
47 NDCFAttributedStringRef cfsr = (NDCFAttributedStringRef) ns_attrStr;
|
|
48 NDCFMutableAttributedStringRef cfsr1 = (NDCFMutableAttributedStringRef) ns_attrStr;
|
|
49 NDCFAttributedStringRef cfsr2 = (NDCFAttributedStringRef) ns_mutable_attr_Str;
|
|
50 NDCFMutableAttributedStringRef cfsr3 = (NDCFMutableAttributedStringRef) ns_mutable_attr_Str;
|
|
51 }
|