1
- // RUN: %clang_cc1 -std=c++17 -verify %s
2
- // RUN: %clang_cc1 -std=c++17 -verify %s -DNO_CONSTEXPR
3
- // RUN: %clang_cc1 -std=c++20 -verify %s
1
+ // RUN: %clang_cc1 -std=c++17 -verify=cxx17,expected %s
2
+ // RUN: %clang_cc1 -std=c++17 -verify=cxx17,expected %s -DNO_CONSTEXPR
3
+ // RUN: %clang_cc1 -std=c++20 -verify=cxx20,expected %s
4
4
5
5
namespace std {
6
6
#ifndef NO_CONSTEXPR
@@ -137,27 +137,24 @@ C &&(&rMove)(C&) = std::move; // #8 expected-note {{instantiation of}}
137
137
C &&(&rForward)(C&) = std::forward<C>; // #9 expected-note {{instantiation of}}
138
138
int (&rUnrelatedMove)(B, B) = std::move;
139
139
140
- #if __cplusplus <= 201703L
141
- // expected-warning@#1 {{non-addressable}}
142
- // expected-warning@#2 {{non-addressable}}
143
- // expected-warning@#3 {{non-addressable}}
144
- // expected-warning@#4 {{non-addressable}}
145
- // expected-warning@#5 {{non-addressable}}
146
- // expected-warning@#6 {{non-addressable}}
147
- // expected-warning@#7 {{non-addressable}}
148
- // expected-warning@#8 {{non-addressable}}
149
- // expected-warning@#9 {{non-addressable}}
150
- #else
151
- // expected-error@#1 {{non-addressable}}
152
- // expected-error@#2 {{non-addressable}}
153
- // expected-error@#3 {{non-addressable}}
154
- // expected-error@#4 {{non-addressable}}
155
- // expected-error@#5 {{non-addressable}}
156
- // expected-error@#6 {{non-addressable}}
157
- // expected-error@#7 {{non-addressable}}
158
- // expected-error@#8 {{non-addressable}}
159
- // expected-error@#9 {{non-addressable}}
160
- #endif
140
+ // cxx17-warning@#1 {{non-addressable}}
141
+ // cxx17-warning@#2 {{non-addressable}}
142
+ // cxx17-warning@#3 {{non-addressable}}
143
+ // cxx17-warning@#4 {{non-addressable}}
144
+ // cxx17-warning@#5 {{non-addressable}}
145
+ // cxx17-warning@#6 {{non-addressable}}
146
+ // cxx17-warning@#7 {{non-addressable}}
147
+ // cxx17-warning@#8 {{non-addressable}}
148
+ // cxx17-warning@#9 {{non-addressable}}
149
+ // cxx20-error@#1 {{non-addressable}}
150
+ // cxx20-error@#2 {{non-addressable}}
151
+ // cxx20-error@#3 {{non-addressable}}
152
+ // cxx20-error@#4 {{non-addressable}}
153
+ // cxx20-error@#5 {{non-addressable}}
154
+ // cxx20-error@#6 {{non-addressable}}
155
+ // cxx20-error@#7 {{non-addressable}}
156
+ // cxx20-error@#8 {{non-addressable}}
157
+ // cxx20-error@#9 {{non-addressable}}
161
158
162
159
void attribute_const () {
163
160
int n;
@@ -176,23 +173,20 @@ struct D {
176
173
void * operator new (__SIZE_TYPE__, const D&(*)(D&));
177
174
};
178
175
179
- #if __cplusplus <= 201703L
180
- // expected-warning@#10 {{non-addressable}}
181
- // expected-warning@#11 {{non-addressable}}
182
- // expected-warning@#12 {{non-addressable}}
183
- // expected-warning@#13 {{non-addressable}}
184
- // expected-warning@#14 {{non-addressable}}
185
- // expected-warning@#15 {{non-addressable}}
186
- // expected-warning@#16 {{non-addressable}}
187
- #else
188
- // expected-error@#10 {{non-addressable}}
189
- // expected-error@#11 {{non-addressable}}
190
- // expected-error@#12 {{non-addressable}}
191
- // expected-error@#13 {{non-addressable}}
192
- // expected-error@#14 {{non-addressable}}
193
- // expected-error@#15 {{non-addressable}}
194
- // expected-error@#16 {{non-addressable}}
195
- #endif
176
+ // cxx17-warning@#10 {{non-addressable}}
177
+ // cxx17-warning@#11 {{non-addressable}}
178
+ // cxx17-warning@#12 {{non-addressable}}
179
+ // cxx17-warning@#13 {{non-addressable}}
180
+ // cxx17-warning@#14 {{non-addressable}}
181
+ // cxx17-warning@#15 {{non-addressable}}
182
+ // cxx17-warning@#16 {{non-addressable}}
183
+ // cxx20-error@#10 {{non-addressable}}
184
+ // cxx20-error@#11 {{non-addressable}}
185
+ // cxx20-error@#12 {{non-addressable}}
186
+ // cxx20-error@#13 {{non-addressable}}
187
+ // cxx20-error@#14 {{non-addressable}}
188
+ // cxx20-error@#15 {{non-addressable}}
189
+ // cxx20-error@#16 {{non-addressable}}
196
190
197
191
void placement_new () {
198
192
new (std::move<D>) D; // #10 expected-note {{instantiation of}}
0 commit comments