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