annotate clang/test/SemaObjC/ivar-access-tests.m @ 207:2e18cbf3894f

LLVM12
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Tue, 08 Jun 2021 06:07:14 +0900
parents 1d019706d866
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
150
anatofuz
parents:
diff changeset
1 // RUN: %clang_cc1 -fsyntax-only -verify -Wno-objc-root-class %s
anatofuz
parents:
diff changeset
2
anatofuz
parents:
diff changeset
3 @interface MySuperClass
anatofuz
parents:
diff changeset
4 {
anatofuz
parents:
diff changeset
5 @private
anatofuz
parents:
diff changeset
6 int private;
anatofuz
parents:
diff changeset
7
anatofuz
parents:
diff changeset
8 @protected
anatofuz
parents:
diff changeset
9 int protected;
anatofuz
parents:
diff changeset
10
anatofuz
parents:
diff changeset
11 @public
anatofuz
parents:
diff changeset
12 int public;
anatofuz
parents:
diff changeset
13 }
anatofuz
parents:
diff changeset
14 @end
anatofuz
parents:
diff changeset
15
anatofuz
parents:
diff changeset
16 @implementation MySuperClass
anatofuz
parents:
diff changeset
17 - (void) test {
anatofuz
parents:
diff changeset
18 int access;
anatofuz
parents:
diff changeset
19 MySuperClass *s = 0;
anatofuz
parents:
diff changeset
20 access = s->private;
anatofuz
parents:
diff changeset
21 access = s->protected;
anatofuz
parents:
diff changeset
22 }
anatofuz
parents:
diff changeset
23 @end
anatofuz
parents:
diff changeset
24
anatofuz
parents:
diff changeset
25
anatofuz
parents:
diff changeset
26 @interface MyClass : MySuperClass
anatofuz
parents:
diff changeset
27 @end
anatofuz
parents:
diff changeset
28
anatofuz
parents:
diff changeset
29 @implementation MyClass
anatofuz
parents:
diff changeset
30 - (void) test {
anatofuz
parents:
diff changeset
31 int access;
anatofuz
parents:
diff changeset
32 MySuperClass *s = 0;
anatofuz
parents:
diff changeset
33 access = s->private; // expected-error {{instance variable 'private' is private}}
anatofuz
parents:
diff changeset
34 access = s->protected;
anatofuz
parents:
diff changeset
35 MyClass *m=0;
anatofuz
parents:
diff changeset
36 access = m->private; // expected-error {{instance variable 'private' is private}}
anatofuz
parents:
diff changeset
37 access = m->protected;
anatofuz
parents:
diff changeset
38 }
anatofuz
parents:
diff changeset
39 @end
anatofuz
parents:
diff changeset
40
anatofuz
parents:
diff changeset
41
anatofuz
parents:
diff changeset
42 @interface Deeper : MyClass
anatofuz
parents:
diff changeset
43 @end
anatofuz
parents:
diff changeset
44
anatofuz
parents:
diff changeset
45 @implementation Deeper
anatofuz
parents:
diff changeset
46 - (void) test {
anatofuz
parents:
diff changeset
47 int access;
anatofuz
parents:
diff changeset
48 MySuperClass *s = 0;
anatofuz
parents:
diff changeset
49 access = s->private; // expected-error {{instance variable 'private' is private}}
anatofuz
parents:
diff changeset
50 access = s->protected;
anatofuz
parents:
diff changeset
51 MyClass *m=0;
anatofuz
parents:
diff changeset
52 access = m->private; // expected-error {{instance variable 'private' is private}}
anatofuz
parents:
diff changeset
53 access = m->protected;
anatofuz
parents:
diff changeset
54 }
anatofuz
parents:
diff changeset
55 @end
anatofuz
parents:
diff changeset
56
anatofuz
parents:
diff changeset
57 @interface Unrelated
anatofuz
parents:
diff changeset
58 @end
anatofuz
parents:
diff changeset
59
anatofuz
parents:
diff changeset
60 @implementation Unrelated
anatofuz
parents:
diff changeset
61 - (void) test {
anatofuz
parents:
diff changeset
62 int access;
anatofuz
parents:
diff changeset
63 MySuperClass *s = 0;
anatofuz
parents:
diff changeset
64 access = s->private; // expected-error {{instance variable 'private' is private}}
anatofuz
parents:
diff changeset
65 access = s->protected; // expected-error {{instance variable 'protected' is protected}}
anatofuz
parents:
diff changeset
66 MyClass *m=0;
anatofuz
parents:
diff changeset
67 access = m->private; // expected-error {{instance variable 'private' is private}}
anatofuz
parents:
diff changeset
68 access = m->protected; // expected-error {{instance variable 'protected' is protected}}
anatofuz
parents:
diff changeset
69 }
anatofuz
parents:
diff changeset
70 @end
anatofuz
parents:
diff changeset
71
anatofuz
parents:
diff changeset
72 int main (void)
anatofuz
parents:
diff changeset
73 {
anatofuz
parents:
diff changeset
74 MySuperClass *s = 0;
anatofuz
parents:
diff changeset
75 int access;
anatofuz
parents:
diff changeset
76 access = s->private; // expected-error {{instance variable 'private' is private}}
anatofuz
parents:
diff changeset
77 access = s->protected; // expected-error {{instance variable 'protected' is protected}}
anatofuz
parents:
diff changeset
78 return 0;
anatofuz
parents:
diff changeset
79 }
anatofuz
parents:
diff changeset
80
anatofuz
parents:
diff changeset
81 typedef signed char BOOL;
anatofuz
parents:
diff changeset
82 typedef unsigned int NSUInteger;
anatofuz
parents:
diff changeset
83 typedef struct _NSZone NSZone;
anatofuz
parents:
diff changeset
84 @class NSInvocation, NSMethodSignature, NSCoder, NSString, NSEnumerator;
anatofuz
parents:
diff changeset
85 @protocol NSObject - (BOOL)isEqual:(id)object;
anatofuz
parents:
diff changeset
86 @end
anatofuz
parents:
diff changeset
87 @protocol NSCoding - (void)encodeWithCoder:(NSCoder *)aCoder;
anatofuz
parents:
diff changeset
88 @end
anatofuz
parents:
diff changeset
89 @interface NSObject <NSObject> {}
anatofuz
parents:
diff changeset
90 @end
anatofuz
parents:
diff changeset
91 extern id NSAllocateObject(Class aClass, NSUInteger extraBytes, NSZone *zone);
anatofuz
parents:
diff changeset
92 @interface NSResponder : NSObject <NSCoding> {}
anatofuz
parents:
diff changeset
93 @end
anatofuz
parents:
diff changeset
94 @protocol NSAnimatablePropertyContainer
anatofuz
parents:
diff changeset
95 - (id)animator;
anatofuz
parents:
diff changeset
96 @end
anatofuz
parents:
diff changeset
97 extern NSString *NSAnimationTriggerOrderIn ;
anatofuz
parents:
diff changeset
98 @interface NSView : NSResponder <NSAnimatablePropertyContainer> {
anatofuz
parents:
diff changeset
99 struct __VFlags2 {
anatofuz
parents:
diff changeset
100 }
anatofuz
parents:
diff changeset
101 _vFlags2;
anatofuz
parents:
diff changeset
102 }
anatofuz
parents:
diff changeset
103 @end
anatofuz
parents:
diff changeset
104 @class NSFontDescriptor, NSAffineTransform, NSGraphicsContext;
anatofuz
parents:
diff changeset
105 @interface NSScrollView : NSView {}
anatofuz
parents:
diff changeset
106 @end
anatofuz
parents:
diff changeset
107
anatofuz
parents:
diff changeset
108 @class CasperMixerView;
anatofuz
parents:
diff changeset
109 @interface CasperDiffScrollView : NSScrollView {
anatofuz
parents:
diff changeset
110 @private
anatofuz
parents:
diff changeset
111 CasperMixerView *_comparatorView;
anatofuz
parents:
diff changeset
112 NSView *someField;
anatofuz
parents:
diff changeset
113 }
anatofuz
parents:
diff changeset
114 @end
anatofuz
parents:
diff changeset
115
anatofuz
parents:
diff changeset
116 @implementation CasperDiffScrollView
anatofuz
parents:
diff changeset
117 + (void)initialize {}
anatofuz
parents:
diff changeset
118 static void _CasperDiffScrollViewInstallMixerView(CasperDiffScrollView *scrollView) {
anatofuz
parents:
diff changeset
119 if (scrollView->someField != ((void *)0)) {
anatofuz
parents:
diff changeset
120 }
anatofuz
parents:
diff changeset
121 }
anatofuz
parents:
diff changeset
122 @end