1*f4a2713aSLionel Sambuc// RUN: %clang_cc1 -emit-llvm -o %t %s 2*f4a2713aSLionel Sambuc// REQUIRES: LP64 3*f4a2713aSLionel Sambuc 4*f4a2713aSLionel Sambuc@interface Object 5*f4a2713aSLionel Sambuc- (id) new; 6*f4a2713aSLionel Sambuc@end 7*f4a2713aSLionel Sambuc 8*f4a2713aSLionel Sambuc@interface Tester : Object 9*f4a2713aSLionel Sambuc@property char PropertyAtomic_char; 10*f4a2713aSLionel Sambuc@property short PropertyAtomic_short; 11*f4a2713aSLionel Sambuc@property int PropertyAtomic_int; 12*f4a2713aSLionel Sambuc@property long PropertyAtomic_long; 13*f4a2713aSLionel Sambuc@property long long PropertyAtomic_longlong; 14*f4a2713aSLionel Sambuc@property float PropertyAtomic_float; 15*f4a2713aSLionel Sambuc@property double PropertyAtomic_double; 16*f4a2713aSLionel Sambuc@property(assign) id PropertyAtomic_id; 17*f4a2713aSLionel Sambuc@property(retain) id PropertyAtomicRetained_id; 18*f4a2713aSLionel Sambuc@property(copy) id PropertyAtomicRetainedCopied_id; 19*f4a2713aSLionel Sambuc@property(retain) id PropertyAtomicRetainedGCOnly_id; 20*f4a2713aSLionel Sambuc@property(copy) id PropertyAtomicRetainedCopiedGCOnly_id; 21*f4a2713aSLionel Sambuc@end 22*f4a2713aSLionel Sambuc 23*f4a2713aSLionel Sambuc@implementation Tester 24*f4a2713aSLionel Sambuc@dynamic PropertyAtomic_char; 25*f4a2713aSLionel Sambuc@dynamic PropertyAtomic_short; 26*f4a2713aSLionel Sambuc@dynamic PropertyAtomic_int; 27*f4a2713aSLionel Sambuc@dynamic PropertyAtomic_long; 28*f4a2713aSLionel Sambuc@dynamic PropertyAtomic_longlong; 29*f4a2713aSLionel Sambuc@dynamic PropertyAtomic_float; 30*f4a2713aSLionel Sambuc@dynamic PropertyAtomic_double; 31*f4a2713aSLionel Sambuc@dynamic PropertyAtomic_id; 32*f4a2713aSLionel Sambuc@dynamic PropertyAtomicRetained_id; 33*f4a2713aSLionel Sambuc@dynamic PropertyAtomicRetainedCopied_id; 34*f4a2713aSLionel Sambuc@dynamic PropertyAtomicRetainedGCOnly_id; 35*f4a2713aSLionel Sambuc@dynamic PropertyAtomicRetainedCopiedGCOnly_id; 36*f4a2713aSLionel Sambuc@end 37*f4a2713aSLionel Sambuc 38*f4a2713aSLionel Sambuc@interface SubClass : Tester 39*f4a2713aSLionel Sambuc{ 40*f4a2713aSLionel Sambuc char PropertyAtomic_char; 41*f4a2713aSLionel Sambuc short PropertyAtomic_short; 42*f4a2713aSLionel Sambuc int PropertyAtomic_int; 43*f4a2713aSLionel Sambuc long PropertyAtomic_long; 44*f4a2713aSLionel Sambuc long long PropertyAtomic_longlong; 45*f4a2713aSLionel Sambuc float PropertyAtomic_float; 46*f4a2713aSLionel Sambuc double PropertyAtomic_double; 47*f4a2713aSLionel Sambuc id PropertyAtomic_id; 48*f4a2713aSLionel Sambuc id PropertyAtomicRetained_id; 49*f4a2713aSLionel Sambuc id PropertyAtomicRetainedCopied_id; 50*f4a2713aSLionel Sambuc id PropertyAtomicRetainedGCOnly_id; 51*f4a2713aSLionel Sambuc id PropertyAtomicRetainedCopiedGCOnly_id; 52*f4a2713aSLionel Sambuc} 53*f4a2713aSLionel Sambuc@end 54*f4a2713aSLionel Sambuc 55*f4a2713aSLionel Sambuc@implementation SubClass 56*f4a2713aSLionel Sambuc@synthesize PropertyAtomic_char; 57*f4a2713aSLionel Sambuc@synthesize PropertyAtomic_short; 58*f4a2713aSLionel Sambuc@synthesize PropertyAtomic_int; 59*f4a2713aSLionel Sambuc@synthesize PropertyAtomic_long; 60*f4a2713aSLionel Sambuc@synthesize PropertyAtomic_longlong; 61*f4a2713aSLionel Sambuc@synthesize PropertyAtomic_float; 62*f4a2713aSLionel Sambuc@synthesize PropertyAtomic_double; 63*f4a2713aSLionel Sambuc@synthesize PropertyAtomic_id; 64*f4a2713aSLionel Sambuc@synthesize PropertyAtomicRetained_id; 65*f4a2713aSLionel Sambuc@synthesize PropertyAtomicRetainedCopied_id; 66*f4a2713aSLionel Sambuc@synthesize PropertyAtomicRetainedGCOnly_id; 67*f4a2713aSLionel Sambuc@synthesize PropertyAtomicRetainedCopiedGCOnly_id; 68*f4a2713aSLionel Sambuc@end 69*f4a2713aSLionel Sambuc 70*f4a2713aSLionel Sambucint main() 71*f4a2713aSLionel Sambuc{ 72*f4a2713aSLionel Sambuc SubClass *f = [SubClass new]; 73*f4a2713aSLionel Sambuc f.PropertyAtomic_int = 1; 74*f4a2713aSLionel Sambuc 75*f4a2713aSLionel Sambuc f.PropertyAtomic_int += 3; 76*f4a2713aSLionel Sambuc 77*f4a2713aSLionel Sambuc f.PropertyAtomic_int -= 4; 78*f4a2713aSLionel Sambuc return f.PropertyAtomic_int; 79*f4a2713aSLionel Sambuc} 80