Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / clang / test / SemaObjC / synthesized-ivar.m
blob4952bd878d15637acf69a9567a7c545657df4c71
1 // RUN: %clang_cc1 -fsyntax-only -verify -Wno-objc-root-class %s
2 @interface I
5 @property int IP;
6 @end
8 @implementation I
9 @synthesize IP;
10 - (int) Meth {
11    return IP;
13 @end
15 int f0(I *a) { return a->IP; } // expected-error {{instance variable 'IP' is private}}
17 @interface I1 {
18  int protected_ivar;
20 @property int PROP_INMAIN;
21 @end
23 @interface I1() {
24  int private_ivar;
26 @property int PROP_INCLASSEXT;
27 @end
29 @implementation I1
30 - (int) Meth {
31    _PROP_INMAIN = 1;
32    _PROP_INCLASSEXT = 2;
33    protected_ivar = 1;  // OK
34    return private_ivar; // OK
36 @end
39 @interface DER : I1
40 @end
42 @implementation DER
43 - (int) Meth {
44    protected_ivar = 1;  // OK
45    _PROP_INMAIN = 1; // expected-error {{instance variable '_PROP_INMAIN' is private}}
46    _PROP_INCLASSEXT = 2; // expected-error {{instance variable '_PROP_INCLASSEXT' is private}}
47    return private_ivar; // expected-error {{instance variable 'private_ivar' is private}}
49 @end
51 @interface A
52 @property (weak) id testObjectWeakProperty; // expected-note {{declared here}}
53 @end
55 @implementation A
56 @synthesize testObjectWeakProperty; // expected-error {{cannot synthesize weak property because the current deployment target does not support weak references}}
57 @end