annotate clang/test/SemaObjC/objc-mixed-bridge-attribute.m @ 266:00f31e85ec16 default tip

Added tag current for changeset 31d058e83c98
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sat, 14 Oct 2023 10:13:55 +0900
parents 1d019706d866
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
150
anatofuz
parents:
diff changeset
1 // RUN: %clang_cc1 -fsyntax-only -verify -Wno-objc-root-class %s
anatofuz
parents:
diff changeset
2 // expected-no-diagnostics
anatofuz
parents:
diff changeset
3 // rdar://17238954
anatofuz
parents:
diff changeset
4
anatofuz
parents:
diff changeset
5 typedef const struct __attribute__((objc_bridge(NSAttributedString))) __CFAttributedString *CFAttributedStringRef;
anatofuz
parents:
diff changeset
6
anatofuz
parents:
diff changeset
7 typedef struct __attribute__((objc_bridge_mutable(NSMutableAttributedString))) __CFAttributedString *CFMutableAttributedStringRef;
anatofuz
parents:
diff changeset
8
anatofuz
parents:
diff changeset
9 @interface NSAttributedString
anatofuz
parents:
diff changeset
10 @end
anatofuz
parents:
diff changeset
11
anatofuz
parents:
diff changeset
12 @interface NSMutableAttributedString
anatofuz
parents:
diff changeset
13 @end
anatofuz
parents:
diff changeset
14
anatofuz
parents:
diff changeset
15 struct __CFAttributedString {
anatofuz
parents:
diff changeset
16 };
anatofuz
parents:
diff changeset
17
anatofuz
parents:
diff changeset
18 void Test1(CFAttributedStringRef attrStr, CFMutableAttributedStringRef mutable_attrStr)
anatofuz
parents:
diff changeset
19 {
anatofuz
parents:
diff changeset
20 id x = (NSAttributedString *) attrStr;
anatofuz
parents:
diff changeset
21 id x1 =(NSAttributedString *) mutable_attrStr;
anatofuz
parents:
diff changeset
22 id x2 = (NSMutableAttributedString *) attrStr;
anatofuz
parents:
diff changeset
23 id x3 = (NSMutableAttributedString *) mutable_attrStr;
anatofuz
parents:
diff changeset
24 }
anatofuz
parents:
diff changeset
25
anatofuz
parents:
diff changeset
26 void Test2(NSAttributedString *ns_attrStr, NSMutableAttributedString *ns_mutable_attr_Str) {
anatofuz
parents:
diff changeset
27 CFAttributedStringRef cfsr = (CFAttributedStringRef) ns_attrStr;
anatofuz
parents:
diff changeset
28 CFMutableAttributedStringRef cfsr1 = (CFMutableAttributedStringRef) ns_attrStr;
anatofuz
parents:
diff changeset
29 CFAttributedStringRef cfsr2 = (CFAttributedStringRef) ns_mutable_attr_Str;
anatofuz
parents:
diff changeset
30 CFMutableAttributedStringRef cfsr3 = (CFMutableAttributedStringRef) ns_mutable_attr_Str;
anatofuz
parents:
diff changeset
31 }
anatofuz
parents:
diff changeset
32
anatofuz
parents:
diff changeset
33 // Tests with no definition declaration for struct __NDCFAttributedString.
anatofuz
parents:
diff changeset
34 typedef const struct __attribute__((objc_bridge(NSAttributedString))) __NDCFAttributedString *NDCFAttributedStringRef;
anatofuz
parents:
diff changeset
35
anatofuz
parents:
diff changeset
36 typedef struct __attribute__((objc_bridge_mutable(NSMutableAttributedString))) __NDCFAttributedString *NDCFMutableAttributedStringRef;
anatofuz
parents:
diff changeset
37
anatofuz
parents:
diff changeset
38 void Test3(NDCFAttributedStringRef attrStr, NDCFMutableAttributedStringRef mutable_attrStr)
anatofuz
parents:
diff changeset
39 {
anatofuz
parents:
diff changeset
40 id x = (NSAttributedString *) attrStr;
anatofuz
parents:
diff changeset
41 id x1 =(NSAttributedString *) mutable_attrStr;
anatofuz
parents:
diff changeset
42 id x2 = (NSMutableAttributedString *) attrStr;
anatofuz
parents:
diff changeset
43 id x3 = (NSMutableAttributedString *) mutable_attrStr;
anatofuz
parents:
diff changeset
44 }
anatofuz
parents:
diff changeset
45
anatofuz
parents:
diff changeset
46 void Test4(NSAttributedString *ns_attrStr, NSMutableAttributedString *ns_mutable_attr_Str) {
anatofuz
parents:
diff changeset
47 NDCFAttributedStringRef cfsr = (NDCFAttributedStringRef) ns_attrStr;
anatofuz
parents:
diff changeset
48 NDCFMutableAttributedStringRef cfsr1 = (NDCFMutableAttributedStringRef) ns_attrStr;
anatofuz
parents:
diff changeset
49 NDCFAttributedStringRef cfsr2 = (NDCFAttributedStringRef) ns_mutable_attr_Str;
anatofuz
parents:
diff changeset
50 NDCFMutableAttributedStringRef cfsr3 = (NDCFMutableAttributedStringRef) ns_mutable_attr_Str;
anatofuz
parents:
diff changeset
51 }