1 | // RUN: %clang_cc1 -fsyntax-only -verify -Wno-objc-root-class %s |
2 | // expected-no-diagnostics |
3 | |
4 | @interface Tester |
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; |
17 | @end |
18 | |
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; |
32 | @end |
33 | |
34 | @interface SubClass : Tester |
35 | { |
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; |
43 | id PropertyAtomic_id; |
44 | id PropertyAtomicRetained_id; |
45 | id PropertyAtomicRetainedCopied_id; |
46 | id PropertyAtomicRetainedGCOnly_id; |
47 | id PropertyAtomicRetainedCopiedGCOnly_id; |
48 | } |
49 | @end |
50 | |
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; |
64 | @end |
65 | |