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