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
[OpenMP-5.2] deprecate delimited form of 'declare target' (llvm#145854)
According to OpenMP 5.2 (Section 7.8.2), the directive name `declare
target` may be used as a synonym for `begin declare target` only when no
clauses are specified. This clause-less delimited form is now deprecated
and should emit a deprecation warning.
```
// Deprecated usage (should trigger warning):
#pragma omp declare target // deprecated in OpenMP 5.2
void foo1() {
}
#pragma omp end declare target
// Valid usage with clause (should not trigger warning):
#pragma omp declare target enter(foo2)
void foo2() {
}
```
```
// Recommended replacement for deprecated delimited form:
#pragma omp begin declare target
void foo() {
}
#pragma omp end declare target
```
---------
Co-authored-by: urvi-rav <[email protected]>
Copy file name to clipboardExpand all lines: clang/test/OpenMP/declare_target_messages.cpp
+12-12Lines changed: 12 additions & 12 deletions
Original file line number
Diff line number
Diff line change
@@ -53,7 +53,7 @@ __thread int t;
53
53
// omp52-error@+2 {{expected '(' after 'declare target'}}
54
54
// omp45-to-51-error@+1 {{expected '(' after 'declare target'}}
55
55
#pragma omp declare target .
56
-
56
+
// omp52-or-later-warning@+1 {{the delimited form of '#pragma omp declare target' without clauses is deprecated; use '#pragma omp begin declare target' instead}}
57
57
#pragma omp declare target
58
58
voidf();
59
59
// omp60-warning@+3 {{extra tokens at the end of '#pragma omp end declare_target' are ignored}}
@@ -156,15 +156,15 @@ typedef int sint;
156
156
template <typename T>
157
157
T bla1() { return0; }
158
158
159
-
#pragma omp declare target
159
+
#pragma omp begin declare target
160
160
template <typename T>
161
161
T bla2() { return0; }
162
162
#pragma omp end declare target
163
163
164
164
template<>
165
165
floatbla2() { return1.0; }
166
166
167
-
#pragma omp declare target
167
+
#pragma omp begin declare target
168
168
voidblub2() {
169
169
bla2<float>();
170
170
bla2<int>();
@@ -179,7 +179,7 @@ void t2() {
179
179
}
180
180
}
181
181
182
-
#pragma omp declare target
182
+
#pragma omp begin declare target
183
183
voidabc();
184
184
#pragma omp end declare target
185
185
voidcba();
@@ -188,13 +188,13 @@ void cba();
188
188
// omp45-to-51-error@+1 {{unexpected OpenMP directive '#pragma omp end declare target'}}
189
189
#pragma omp end declare target
190
190
191
-
#pragma omp declare target
192
-
#pragma omp declare target
191
+
#pragma omp begin declare target
192
+
#pragma omp begin declare target
193
193
voiddef();
194
194
#pragma omp end declare target
195
195
voidfed();
196
196
197
-
#pragma omp declare target
197
+
#pragma omp begin declare target
198
198
// expected-note@+1 {{defined as threadprivate or thread local}}
199
199
#pragma omp threadprivate(a)
200
200
externint b;
@@ -239,7 +239,7 @@ void foo(int p) {
239
239
q();
240
240
c();
241
241
}
242
-
#pragma omp declare target
242
+
#pragma omp begin declare target
243
243
voidfoo1() {
244
244
// omp5-or-later-var-note@+1 {{variable 'z' is captured here}}
245
245
[&](){ (void)(b+z);}();
@@ -258,7 +258,7 @@ int C::method() {
258
258
}
259
259
260
260
structS {
261
-
#pragma omp declare target
261
+
#pragma omp begin declare target
262
262
int v;
263
263
#pragma omp end declare target
264
264
};
@@ -293,7 +293,7 @@ int main (int argc, char **argv) {
293
293
}
294
294
295
295
namespace {
296
-
#pragma omp declare target
296
+
#pragma omp begin declare target
297
297
int x;
298
298
}
299
299
#pragma omp end declare target
@@ -347,7 +347,7 @@ void host3() {host1();} // dev5-error {{function with 'device_type(host)' is not
347
347
// omp52-or-later-error@+1 {{expected at least one 'enter', 'link' or 'indirect' clause}}
348
348
#pragma omp declare target to(host3)
349
349
350
-
#pragma omp declare target
350
+
#pragma omp begin declare target
351
351
voidany1() {any();}
352
352
// dev5-error@+1 {{function with 'device_type(host)' is not available on device}}
353
353
voidany2() {host1();}
@@ -411,7 +411,7 @@ struct target{
411
411
// expected-warning@+1 {{declaration is not declared in any declare target region}}
0 commit comments