| // RUN: %clang_cc1 -fsyntax-only -verify -Wno-objc-root-class %s | 
 | // expected-no-diagnostics | 
 |  | 
 | @interface Tester  | 
 | @property char PropertyAtomic_char; | 
 | @property short PropertyAtomic_short; | 
 | @property int PropertyAtomic_int; | 
 | @property long PropertyAtomic_long; | 
 | @property long long PropertyAtomic_longlong; | 
 | @property float PropertyAtomic_float; | 
 | @property double PropertyAtomic_double; | 
 | @property(assign) id PropertyAtomic_id; | 
 | @property(retain) id PropertyAtomicRetained_id; | 
 | @property(copy) id PropertyAtomicRetainedCopied_id; | 
 | @property(retain) id PropertyAtomicRetainedGCOnly_id; | 
 | @property(copy) id PropertyAtomicRetainedCopiedGCOnly_id; | 
 | @end | 
 |  | 
 | @implementation Tester | 
 | @dynamic PropertyAtomic_char; | 
 | @dynamic PropertyAtomic_short; | 
 | @dynamic PropertyAtomic_int; | 
 | @dynamic PropertyAtomic_long; | 
 | @dynamic PropertyAtomic_longlong; | 
 | @dynamic PropertyAtomic_float; | 
 | @dynamic PropertyAtomic_double; | 
 | @dynamic PropertyAtomic_id; | 
 | @dynamic PropertyAtomicRetained_id; | 
 | @dynamic PropertyAtomicRetainedCopied_id; | 
 | @dynamic PropertyAtomicRetainedGCOnly_id; | 
 | @dynamic PropertyAtomicRetainedCopiedGCOnly_id; | 
 | @end | 
 |  | 
 | @interface SubClass : Tester | 
 | { | 
 |     char PropertyAtomic_char; | 
 |     short PropertyAtomic_short; | 
 |     int PropertyAtomic_int; | 
 |     long PropertyAtomic_long; | 
 |     long long PropertyAtomic_longlong; | 
 |     float PropertyAtomic_float; | 
 |     double PropertyAtomic_double; | 
 |     id PropertyAtomic_id; | 
 |     id PropertyAtomicRetained_id; | 
 |     id PropertyAtomicRetainedCopied_id; | 
 |     id PropertyAtomicRetainedGCOnly_id; | 
 |     id PropertyAtomicRetainedCopiedGCOnly_id; | 
 | } | 
 | @end | 
 |  | 
 | @implementation SubClass | 
 | @synthesize PropertyAtomic_char; | 
 | @synthesize PropertyAtomic_short; | 
 | @synthesize PropertyAtomic_int; | 
 | @synthesize PropertyAtomic_long; | 
 | @synthesize PropertyAtomic_longlong; | 
 | @synthesize PropertyAtomic_float; | 
 | @synthesize PropertyAtomic_double; | 
 | @synthesize PropertyAtomic_id; | 
 | @synthesize PropertyAtomicRetained_id; | 
 | @synthesize PropertyAtomicRetainedCopied_id; | 
 | @synthesize PropertyAtomicRetainedGCOnly_id; | 
 | @synthesize PropertyAtomicRetainedCopiedGCOnly_id; | 
 | @end |