Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / clang / test / SemaObjC / property-2.m
blob3298ee5766e2ae327434d042bc8109c3244d521e
1 // RUN: %clang_cc1 -fsyntax-only -verify -Wno-objc-root-class %s
2 // expected-no-diagnostics
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
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
34 @interface SubClass : Tester
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;
49 @end
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