1 // RUN: %clang_cc1 -fsyntax-only -verify -Wno-objc-root-class %s
2 // expected-no-diagnostics
5 @property char PropertyAtomic_char;
6 @property short PropertyAtomic_short;
7 @property int PropertyAtomic_int;
8 @property long PropertyAtomic_long;
9 @property long long PropertyAtomic_longlong;
10 @property float PropertyAtomic_float;
11 @property double PropertyAtomic_double;
12 @property(assign) id PropertyAtomic_id;
13 @property(retain) id PropertyAtomicRetained_id;
14 @property(copy) id PropertyAtomicRetainedCopied_id;
15 @property(retain) id PropertyAtomicRetainedGCOnly_id;
16 @property(copy) id PropertyAtomicRetainedCopiedGCOnly_id;
19 @implementation Tester
20 @dynamic PropertyAtomic_char;
21 @dynamic PropertyAtomic_short;
22 @dynamic PropertyAtomic_int;
23 @dynamic PropertyAtomic_long;
24 @dynamic PropertyAtomic_longlong;
25 @dynamic PropertyAtomic_float;
26 @dynamic PropertyAtomic_double;
27 @dynamic PropertyAtomic_id;
28 @dynamic PropertyAtomicRetained_id;
29 @dynamic PropertyAtomicRetainedCopied_id;
30 @dynamic PropertyAtomicRetainedGCOnly_id;
31 @dynamic PropertyAtomicRetainedCopiedGCOnly_id;
34 @interface SubClass : Tester
36 char PropertyAtomic_char;
37 short PropertyAtomic_short;
38 int PropertyAtomic_int;
39 long PropertyAtomic_long;
40 long long PropertyAtomic_longlong;
41 float PropertyAtomic_float;
42 double PropertyAtomic_double;
44 id PropertyAtomicRetained_id;
45 id PropertyAtomicRetainedCopied_id;
46 id PropertyAtomicRetainedGCOnly_id;
47 id PropertyAtomicRetainedCopiedGCOnly_id;
51 @implementation SubClass
52 @synthesize PropertyAtomic_char;
53 @synthesize PropertyAtomic_short;
54 @synthesize PropertyAtomic_int;
55 @synthesize PropertyAtomic_long;
56 @synthesize PropertyAtomic_longlong;
57 @synthesize PropertyAtomic_float;
58 @synthesize PropertyAtomic_double;
59 @synthesize PropertyAtomic_id;
60 @synthesize PropertyAtomicRetained_id;
61 @synthesize PropertyAtomicRetainedCopied_id;
62 @synthesize PropertyAtomicRetainedGCOnly_id;
63 @synthesize PropertyAtomicRetainedCopiedGCOnly_id;