80 lines · plain
1// RUN: %clang_cc1 -emit-llvm -o %t %s2// REQUIRES: LP643 4@interface Object5- (id) new;6@end7 8@interface Tester : Object9@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@end22 23@implementation Tester24@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@end37 38@interface SubClass : Tester39{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@end54 55@implementation SubClass56@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@end69 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