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