You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: clang/test/SemaCXX/warn-cast-qual.cpp
-102Lines changed: 0 additions & 102 deletions
Original file line number
Diff line number
Diff line change
@@ -34,17 +34,6 @@ void foo_0() {
34
34
constint &a6 = (int &)((int &)a); // expected-warning {{cast from 'const int' to 'int &' drops const qualifier}}
35
35
constint &a7 = (int &)((constint &)a); // expected-warning {{cast from 'const int' to 'int &' drops const qualifier}}
36
36
constint &a8 = (constint &)((int &)a); // expected-warning {{cast from 'const int' to 'int &' drops const qualifier}}
37
-
38
-
using T = int&;
39
-
using T2 = constint&;
40
-
constint &a11 =T2(a); // no warning
41
-
int a22 = T(a); // expected-warning {{cast from 'const int' to 'int &' drops const qualifier}}
42
-
constint &a33 = T(a); // expected-warning {{cast from 'const int' to 'int &' drops const qualifier}}
43
-
int &a44 = T(T2(a)); // expected-warning {{cast from 'const int' to 'int &' drops const qualifier}}
44
-
int &a55 = T(T(a)); // expected-warning {{cast from 'const int' to 'int &' drops const qualifier}}
45
-
constint &a66 = T(T(a)); // expected-warning {{cast from 'const int' to 'int &' drops const qualifier}}
46
-
int &a77 = T(T2(a)); // expected-warning {{cast from 'const int' to 'int &' drops const qualifier}}
47
-
constint &a88 = T2(T(a)); // expected-warning {{cast from 'const int' to 'int &' drops const qualifier}}
48
37
}
49
38
50
39
voidfoo_1() {
@@ -60,17 +49,6 @@ void foo_1() {
60
49
volatileint &a6 = (int &)((int &)a); // expected-warning {{cast from 'volatile int' to 'int &' drops volatile qualifier}}
61
50
volatileint &a7 = (int &)((volatileint &)a); // expected-warning {{cast from 'volatile int' to 'int &' drops volatile qualifier}}
62
51
volatileint &a8 = (volatileint &)((int &)a); // expected-warning {{cast from 'volatile int' to 'int &' drops volatile qualifier}}
63
-
64
-
using T = int&;
65
-
using T2 = volatileint&;
66
-
volatileint &a11 =T2(a); // no warning
67
-
int a22 = T(a); // expected-warning {{cast from 'volatile int' to 'int &' drops volatile qualifier}}
68
-
volatileint &a33 = T(a); // expected-warning {{cast from 'volatile int' to 'int &' drops volatile qualifier}}
69
-
int &a44 = T(T2(a)); // expected-warning {{cast from 'volatile int' to 'int &' drops volatile qualifier}}
70
-
int &a55 = T(T(a)); // expected-warning {{cast from 'volatile int' to 'int &' drops volatile qualifier}}
71
-
volatileint &a66 = T(T(a)); // expected-warning {{cast from 'volatile int' to 'int &' drops volatile qualifier}}
72
-
int &a77 = T(T2(a)); // expected-warning {{cast from 'volatile int' to 'int &' drops volatile qualifier}}
73
-
volatileint &a88 = T2(T(a)); // expected-warning {{cast from 'volatile int' to 'int &' drops volatile qualifier}}
74
52
}
75
53
76
54
voidfoo_2() {
@@ -86,17 +64,6 @@ void foo_2() {
86
64
constvolatileint &a6 = (int &)((int &)a); // expected-warning {{cast from 'const volatile int' to 'int &' drops const and volatile qualifiers}}
87
65
constvolatileint &a7 = (int &)((constvolatileint &)a); // expected-warning {{cast from 'const volatile int' to 'int &' drops const and volatile qualifiers}}
88
66
constvolatileint &a8 = (constvolatileint &)((int &)a); // expected-warning {{cast from 'const volatile int' to 'int &' drops const and volatile qualifiers}}
89
-
90
-
using T = int&;
91
-
using T2 = constvolatileint&;
92
-
constvolatileint &a11 =T2(a); // no warning
93
-
int a22 = T(a); // expected-warning {{cast from 'const volatile int' to 'int &' drops const and volatile qualifiers}}
94
-
constvolatileint &a33 = T(a); // expected-warning {{cast from 'const volatile int' to 'int &' drops const and volatile qualifiers}}
95
-
int &a44 = T(T2(a)); // expected-warning {{cast from 'const volatile int' to 'int &' drops const and volatile qualifiers}}
96
-
int &a55 = T(T(a)); // expected-warning {{cast from 'const volatile int' to 'int &' drops const and volatile qualifiers}}
97
-
constvolatileint &a66 = T(T(a)); // expected-warning {{cast from 'const volatile int' to 'int &' drops const and volatile qualifiers}}
98
-
constvolatileint &a77 = T(T2(a)); // expected-warning {{cast from 'const volatile int' to 'int &' drops const and volatile qualifiers}}
99
-
constvolatileint &a88 = T2(T(a)); // expected-warning {{cast from 'const volatile int' to 'int &' drops const and volatile qualifiers}}
100
67
}
101
68
102
69
voidbar_0() {
@@ -111,16 +78,6 @@ void bar_0() {
111
78
112
79
constint **a4 = (constint **)((int **)a); // expected-warning {{cast from 'const int *' to 'int *' drops const qualifier}} expected-warning {{cast from 'int **' to 'const int **' must have all intermediate pointers const qualified to be safe}}
113
80
constint **a5 = (constint **)((constint **)a); // no warning
114
-
115
-
using T = int**;
116
-
using T2 = constint**;
117
-
118
-
int **a00 = T(T2(a)) ; // expected-warning {{cast from 'const int *' to 'int *' drops const qualifier}}
119
-
int **a11 = T(T(a)); // expected-warning {{cast from 'const int *' to 'int *' drops const qualifier}}
120
-
121
-
constint **a44 = T2(T(a)); // expected-warning {{cast from 'const int *' to 'int *' drops const qualifier}} expected-warning {{cast from 'T' (aka 'int **') to 'T2' (aka 'const int **') must have all intermediate pointers const qualified to be safe}}
122
-
constint **a55 = T2(T2(a)); // no warning
123
-
124
81
}
125
82
126
83
voidbar_1() {
@@ -135,15 +92,6 @@ void bar_1() {
135
92
136
93
constint *&a4 = (constint *&)((int *&)a); // expected-warning {{cast from 'const int *' to 'int *' drops const qualifier}} expected-warning {{cast from 'int *' to 'const int *&' must have all intermediate pointers const qualified to be safe}}
137
94
constint *&a5 = (constint *&)((constint *&)a); // no warning
138
-
139
-
using T = int*&;
140
-
using T2 = constint*&;
141
-
142
-
int *&a00 = T(T2(a)); // expected-warning {{cast from 'const int *' to 'int *' drops const qualifier}}
143
-
int *&a11 = T(T(a)); // expected-warning {{cast from 'const int *' to 'int *' drops const qualifier}}
144
-
145
-
constint *&a44 = T2(T(a)); // expected-warning {{cast from 'const int *' to 'int *' drops const qualifier}} expected-warning {{cast from 'int *' to 'T2' (aka 'const int *&') must have all intermediate pointers const qualified to be safe}}
146
-
constint *&a55 = T2(T2(a)); // no warning
147
95
}
148
96
149
97
voidbaz_0() {
@@ -160,14 +108,6 @@ void baz_0() {
160
108
161
109
((C *)&S)->B(); // expected-warning {{cast from 'const C *' to 'C *' drops const qualifier}}
162
110
((C *)&S)->A(); // expected-warning {{cast from 'const C *' to 'C *' drops const qualifier}}
163
-
164
-
using T = C&;
165
-
using T2 = C*;
166
-
T(S).B(); // expected-warning {{cast from 'const C' to 'C &' drops const qualifier}}
167
-
T(S).A(); // expected-warning {{cast from 'const C' to 'C &' drops const qualifier}}
168
-
169
-
T2(&S)->B(); // expected-warning {{cast from 'const C *' to 'C *' drops const qualifier}}
170
-
T2(&S)->A(); // expected-warning {{cast from 'const C *' to 'C *' drops const qualifier}}
171
111
}
172
112
173
113
voidbaz_1() {
@@ -187,14 +127,6 @@ void baz_1() {
187
127
188
128
*(int *)(&S.a) = 0; // expected-warning {{cast from 'const int *' to 'int *' drops const qualifier}}
189
129
*(int *)(&S.b) = 0; // no warning
190
-
191
-
using T = int&;
192
-
using T2 = int*;
193
-
T(S.a) = 0; // expected-warning {{cast from 'const int' to 'int &' drops const qualifier}}
194
-
T(S.b) = 0; // no warning
195
-
196
-
*T2(&S.a) = 0; // expected-warning {{cast from 'const int *' to 'int *' drops const qualifier}}
197
-
*T2(&S.b) = 0; // no warning
198
130
}
199
131
{
200
132
const C S;
@@ -204,39 +136,5 @@ void baz_1() {
204
136
205
137
*(int *)(&S.a) = 0; // expected-warning {{cast from 'const int *' to 'int *' drops const qualifier}}
206
138
*(int *)(&S.b) = 0; // expected-warning {{cast from 'const int *' to 'int *' drops const qualifier}}
207
-
208
-
using T = int&;
209
-
using T2 = int*;
210
-
T(S.a) = 0; // expected-warning {{cast from 'const int' to 'int &' drops const qualifier}}
211
-
T(S.b) = 0; // expected-warning {{cast from 'const int' to 'int &' drops const qualifier}}
212
-
213
-
*T2(&S.a) = 0; // expected-warning {{cast from 'const int *' to 'int *' drops const qualifier}}
214
-
*T2(&S.b) = 0; // expected-warning {{cast from 'const int *' to 'int *' drops const qualifier}}
215
139
}
216
140
}
217
-
218
-
voidqux_0() {
219
-
constauto i = 42;
220
-
using T = int*;
221
-
auto p = T(&i); // expected-warning {{cast from 'const int *' to 'int *' drops const qualifier}}
222
-
223
-
constauto i2 = 42;
224
-
using T2 = constint*;
225
-
auto p2 = T2(&i2);
226
-
227
-
volatileauto i3 = 42;
228
-
using T3= int*;
229
-
auto p3 = T3(&i3); // expected-warning {{cast from 'volatile int *' to 'int *' drops volatile qualifier}}
230
-
231
-
volatileauto i4 = 42;
232
-
using T4 = volatileint*;
233
-
auto p4 = T4(&i4);
234
-
235
-
constvolatileauto i5 = 42;
236
-
using T5= int*;
237
-
auto p5 = T5(&i5); // expected-warning {{cast from 'const volatile int *' to 'int *' drops const and volatile qualifiers}}
0 commit comments