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