annotate gcc/testsuite/g++.dg/torture/accessor-fixits-1.C @ 158:494b0b89df80 default tip

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 25 May 2020 18:13:55 +0900
parents 84e7813d76e9
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
131
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
1 // { dg-options "-fdiagnostics-show-caret" }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
2
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
3 class t1
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
4 {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
5 public:
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
6 int get_color () const { return m_color; }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
7 int get_shape () const { return m_shape; }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
8
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
9 private:
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
10 int m_color;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
11
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
12 protected:
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
13 int m_shape;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
14 };
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
15
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
16 int test_access_t1_color (t1 &ref)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
17 {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
18 return ref.m_color; // { dg-error ".int t1::m_color. is private within this context" }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
19 /* { dg-begin-multiline-output "" }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
20 return ref.m_color;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
21 ^~~~~~~
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
22 { dg-end-multiline-output "" } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
23
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
24 // { dg-message "declared private here" "" { target *-*-* } 10 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
25 /* { dg-begin-multiline-output "" }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
26 int m_color;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
27 ^~~~~~~
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
28 { dg-end-multiline-output "" } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
29
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
30 // { dg-message "field .int t1::m_color. can be accessed via .int t1::get_color\\(\\) const." "" { target *-*-* } .-12 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
31 /* { dg-begin-multiline-output "" }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
32 return ref.m_color;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
33 ^~~~~~~
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
34 get_color()
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
35 { dg-end-multiline-output "" } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
36 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
37
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
38 int test_access_const_t1_color (const t1 &ref)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
39 {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
40 return ref.m_color; // { dg-error ".int t1::m_color. is private within this context" }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
41 /* { dg-begin-multiline-output "" }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
42 return ref.m_color;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
43 ^~~~~~~
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
44 { dg-end-multiline-output "" } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
45
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
46
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
47 /* { dg-begin-multiline-output "" }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
48 int m_color;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
49 ^~~~~~~
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
50 { dg-end-multiline-output "" } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
51
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
52 // { dg-message "field .int t1::m_color. can be accessed via .int t1::get_color\\(\\) const." "" { target *-*-* } .-12 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
53 /* { dg-begin-multiline-output "" }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
54 return ref.m_color;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
55 ^~~~~~~
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
56 get_color()
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
57 { dg-end-multiline-output "" } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
58 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
59
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
60 int test_access_t1_shape (t1 &ref)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
61 {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
62 return ref.m_shape; // { dg-error ".int t1::m_shape. is protected within this context" }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
63 /* { dg-begin-multiline-output "" }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
64 return ref.m_shape;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
65 ^~~~~~~
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
66 { dg-end-multiline-output "" } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
67
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
68 // { dg-message "declared protected here" "" { target *-*-* } 13 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
69 /* { dg-begin-multiline-output "" }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
70 int m_shape;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
71 ^~~~~~~
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
72 { dg-end-multiline-output "" } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
73
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
74 // { dg-message "field .int t1::m_shape. can be accessed via .int t1::get_shape\\(\\) const." "" { target *-*-* } .-12 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
75 /* { dg-begin-multiline-output "" }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
76 return ref.m_shape;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
77 ^~~~~~~
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
78 get_shape()
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
79 { dg-end-multiline-output "" } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
80 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
81
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
82 int test_deref_t1_color (t1 *ptr)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
83 {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
84 return ptr->m_color; // { dg-error ".int t1::m_color. is private within this context" }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
85 /* { dg-begin-multiline-output "" }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
86 return ptr->m_color;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
87 ^~~~~~~
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
88 { dg-end-multiline-output "" } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
89
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
90
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
91 /* { dg-begin-multiline-output "" }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
92 int m_color;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
93 ^~~~~~~
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
94 { dg-end-multiline-output "" } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
95
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
96 // { dg-message "field .int t1::m_color. can be accessed via .int t1::get_color\\(\\) const." "" { target *-*-* } .-12 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
97 /* { dg-begin-multiline-output "" }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
98 return ptr->m_color;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
99 ^~~~~~~
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
100 get_color()
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
101 { dg-end-multiline-output "" } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
102 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
103
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
104 int test_deref_const_t1_color (const t1 *ptr)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
105 {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
106 return ptr->m_color; // { dg-error ".int t1::m_color. is private within this context" }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
107 /* { dg-begin-multiline-output "" }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
108 return ptr->m_color;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
109 ^~~~~~~
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
110 { dg-end-multiline-output "" } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
111
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
112
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
113 /* { dg-begin-multiline-output "" }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
114 int m_color;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
115 ^~~~~~~
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
116 { dg-end-multiline-output "" } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
117
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
118 // { dg-message "field .int t1::m_color. can be accessed via .int t1::get_color\\(\\) const." "" { target *-*-* } .-12 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
119 /* { dg-begin-multiline-output "" }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
120 return ptr->m_color;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
121 ^~~~~~~
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
122 get_color()
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
123 { dg-end-multiline-output "" } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
124 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
125
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
126 int test_deref_t1_shape (t1 *ptr)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
127 {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
128 return ptr->m_shape; // { dg-error ".int t1::m_shape. is protected within this context" }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
129 /* { dg-begin-multiline-output "" }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
130 return ptr->m_shape;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
131 ^~~~~~~
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
132 { dg-end-multiline-output "" } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
133
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
134
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
135 /* { dg-begin-multiline-output "" }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
136 int m_shape;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
137 ^~~~~~~
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
138 { dg-end-multiline-output "" } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
139
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
140 // { dg-message "field .int t1::m_shape. can be accessed via .int t1::get_shape\\(\\) const." "" { target *-*-* } .-12 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
141 /* { dg-begin-multiline-output "" }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
142 return ptr->m_shape;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
143 ^~~~~~~
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
144 get_shape()
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
145 { dg-end-multiline-output "" } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
146 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
147
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
148 /* Example of public inheritance. */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
149
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
150 class t2 : public t1
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
151 {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
152 };
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
153
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
154 int test_deref_t2_color (t2 *ptr)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
155 {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
156 return ptr->m_color; // { dg-error ".int t1::m_color. is private within this context" }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
157 /* { dg-begin-multiline-output "" }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
158 return ptr->m_color;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
159 ^~~~~~~
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
160 { dg-end-multiline-output "" } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
161
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
162
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
163 /* { dg-begin-multiline-output "" }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
164 int m_color;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
165 ^~~~~~~
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
166 { dg-end-multiline-output "" } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
167
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
168 // { dg-message "field .int t1::m_color. can be accessed via .int t1::get_color\\(\\) const." "" { target *-*-* } .-12 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
169 /* { dg-begin-multiline-output "" }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
170 return ptr->m_color;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
171 ^~~~~~~
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
172 get_color()
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
173 { dg-end-multiline-output "" } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
174 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
175
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
176 /* Example of private inheritance. */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
177
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
178 class t3 : private t1
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
179 {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
180 };
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
181
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
182 int test_deref_t3_color (t3 *ptr)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
183 {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
184 return ptr->m_color; // { dg-error ".int t1::m_color. is private within this context" }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
185 /* { dg-begin-multiline-output "" }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
186 return ptr->m_color;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
187 ^~~~~~~
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
188 { dg-end-multiline-output "" } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
189
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
190 /* { dg-begin-multiline-output "" }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
191 int m_color;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
192 ^~~~~~~
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
193 { dg-end-multiline-output "" } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
194
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
195 /* We shouldn't provide a fix-it hint for this case due to the
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
196 private inheritance. */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
197 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
198
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
199 /* Example of non-public "accessor". */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
200
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
201 class t4
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
202 {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
203 int m_field;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
204 int get_field () { return m_field; }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
205 };
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
206
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
207 int test_deref_t4_field (t4 *ptr)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
208 {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
209 return ptr->m_field; // { dg-error ".int t4::m_field. is private within this context" }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
210 /* { dg-begin-multiline-output "" }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
211 return ptr->m_field;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
212 ^~~~~~~
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
213 { dg-end-multiline-output "" } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
214
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
215 /* { dg-begin-multiline-output "" }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
216 int m_field;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
217 ^~~~~~~
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
218 { dg-end-multiline-output "" } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
219
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
220 /* We shouldn't provide a fix-it hint for this case, as the accessor is
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
221 itself private. */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
222 }