brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.1 KiB · aa0c8c9 Raw
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