Lines Matching +full:- +full:- +full:target

3 // expected-no-diagnostics
7 // RUN: %clang_cc1 -DOMP45 -verify -Wno-vla -fopenmp -fopenmp-version=45 -ast-print %s | FileCheck …
8 // RUN: %clang_cc1 -DOMP45 -fopenmp -fopenmp-version=45 -x c++ -std=c++11 -emit-pch -o %t %s
9 … RUN: %clang_cc1 -DOMP45 -fopenmp -fopenmp-version=45 -std=c++11 -include-pch %t -verify -Wno-vla …
11 // RUN: %clang_cc1 -DOMP45 -verify -Wno-vla -fopenmp-simd -fopenmp-version=45 -ast-print %s | FileC…
12 // RUN: %clang_cc1 -DOMP45 -fopenmp-simd -fopenmp-version=45 -x c++ -std=c++11 -emit-pch -o %t %s
13 …UN: %clang_cc1 -DOMP45 -fopenmp-simd -fopenmp-version=45 -std=c++11 -include-pch %t -verify -Wno-v…
21 #pragma omp target in tmain()
23 #pragma omp target if (target:argc > 0) in tmain()
25 #pragma omp target if (C) in tmain()
27 #pragma omp target map(i) in tmain()
29 #pragma omp target map(a[0:10], i) in tmain()
31 #pragma omp target map(to: i) map(from: j) in tmain()
33 #pragma omp target map(always,alloc: i) in tmain()
35 #pragma omp target map(always from: i) in tmain()
37 #pragma omp target map(always) in tmain()
39 #pragma omp target map(always,i) in tmain()
41 #pragma omp target map(close,alloc: i) in tmain()
43 #pragma omp target map(close, from: i) in tmain()
45 #pragma omp target map(close) in tmain()
47 #pragma omp target map(close,i) in tmain()
49 #pragma omp target nowait in tmain()
51 #pragma omp target depend(in : argc, argv[i:argc], a[:]) in tmain()
53 #pragma omp target defaultmap(tofrom: scalar) in tmain()
59 // OMP45-NEXT: T i, j, a[20]
60 // OMP45-NEXT: #pragma omp target{{$}}
61 // OMP45-NEXT: foo();
62 // OMP45-NEXT: #pragma omp target if(target: argc > 0)
63 // OMP45-NEXT: foo()
64 // OMP45-NEXT: #pragma omp target if(C)
65 // OMP45-NEXT: foo()
66 // OMP45-NEXT: #pragma omp target map(tofrom: i)
67 // OMP45-NEXT: foo()
68 // OMP45-NEXT: #pragma omp target map(tofrom: a[0:10],i)
69 // OMP45-NEXT: foo()
70 // OMP45-NEXT: #pragma omp target map(to: i) map(from: j)
71 // OMP45-NEXT: foo()
72 // OMP45-NEXT: #pragma omp target map(always,alloc: i)
73 // OMP45-NEXT: foo()
74 // OMP45-NEXT: #pragma omp target map(always,from: i)
75 // OMP45-NEXT: foo()
76 // OMP45-NEXT: #pragma omp target map(tofrom: always)
77 // OMP45-NEXT: {
78 // OMP45-NEXT: always++;
79 // OMP45-NEXT: }
80 // OMP45-NEXT: #pragma omp target map(tofrom: always,i)
81 // OMP45-NEXT: {
82 // OMP45-NEXT: always++;
83 // OMP45-NEXT: i++;
84 // OMP45-NEXT: }
85 // OMP45-NEXT: #pragma omp target map(close,alloc: i)
86 // OMP45-NEXT: foo()
87 // OMP45-NEXT: #pragma omp target map(close,from: i)
88 // OMP45-NEXT: foo()
89 // OMP45-NEXT: #pragma omp target map(tofrom: close)
90 // OMP45-NEXT: {
91 // OMP45-NEXT: close++;
92 // OMP45-NEXT: }
93 // OMP45-NEXT: #pragma omp target map(tofrom: close,i)
94 // OMP45-NEXT: {
95 // OMP45-NEXT: close++;
96 // OMP45-NEXT: i++;
97 // OMP45-NEXT: }
98 // OMP45-NEXT: #pragma omp target nowait
99 // OMP45-NEXT: foo()
100 // OMP45-NEXT: #pragma omp target depend(in : argc,argv[i:argc],a[:])
101 // OMP45-NEXT: foo()
102 // OMP45-NEXT: #pragma omp target defaultmap(tofrom: scalar)
103 // OMP45-NEXT: foo()
105 // OMP45-NEXT: int i, j, a[20]
106 // OMP45-NEXT: #pragma omp target
107 // OMP45-NEXT: foo();
108 // OMP45-NEXT: #pragma omp target if(target: argc > 0)
109 // OMP45-NEXT: foo()
110 // OMP45-NEXT: #pragma omp target if(5)
111 // OMP45-NEXT: foo()
112 // OMP45-NEXT: #pragma omp target map(tofrom: i)
113 // OMP45-NEXT: foo()
114 // OMP45-NEXT: #pragma omp target map(tofrom: a[0:10],i)
115 // OMP45-NEXT: foo()
116 // OMP45-NEXT: #pragma omp target map(to: i) map(from: j)
117 // OMP45-NEXT: foo()
118 // OMP45-NEXT: #pragma omp target map(always,alloc: i)
119 // OMP45-NEXT: foo()
120 // OMP45-NEXT: #pragma omp target map(always,from: i)
121 // OMP45-NEXT: foo()
122 // OMP45-NEXT: #pragma omp target map(tofrom: always)
123 // OMP45-NEXT: {
124 // OMP45-NEXT: always++;
125 // OMP45-NEXT: }
126 // OMP45-NEXT: #pragma omp target map(tofrom: always,i)
127 // OMP45-NEXT: {
128 // OMP45-NEXT: always++;
129 // OMP45-NEXT: i++;
130 // OMP45-NEXT: }
131 // OMP45-NEXT: #pragma omp target map(close,alloc: i)
132 // OMP45-NEXT: foo()
133 // OMP45-NEXT: #pragma omp target map(close,from: i)
134 // OMP45-NEXT: foo()
135 // OMP45-NEXT: #pragma omp target map(tofrom: close)
136 // OMP45-NEXT: {
137 // OMP45-NEXT: close++;
138 // OMP45-NEXT: }
139 // OMP45-NEXT: #pragma omp target map(tofrom: close,i)
140 // OMP45-NEXT: {
141 // OMP45-NEXT: close++;
142 // OMP45-NEXT: i++;
143 // OMP45-NEXT: }
144 // OMP45-NEXT: #pragma omp target nowait
145 // OMP45-NEXT: foo()
146 // OMP45-NEXT: #pragma omp target depend(in : argc,argv[i:argc],a[:])
147 // OMP45-NEXT: foo()
148 // OMP45-NEXT: #pragma omp target defaultmap(tofrom: scalar)
149 // OMP45-NEXT: foo()
151 // OMP45-NEXT: char i, j, a[20]
152 // OMP45-NEXT: #pragma omp target
153 // OMP45-NEXT: foo();
154 // OMP45-NEXT: #pragma omp target if(target: argc > 0)
155 // OMP45-NEXT: foo()
156 // OMP45-NEXT: #pragma omp target if(1)
157 // OMP45-NEXT: foo()
158 // OMP45-NEXT: #pragma omp target map(tofrom: i)
159 // OMP45-NEXT: foo()
160 // OMP45-NEXT: #pragma omp target map(tofrom: a[0:10],i)
161 // OMP45-NEXT: foo()
162 // OMP45-NEXT: #pragma omp target map(to: i) map(from: j)
163 // OMP45-NEXT: foo()
164 // OMP45-NEXT: #pragma omp target map(always,alloc: i)
165 // OMP45-NEXT: foo()
166 // OMP45-NEXT: #pragma omp target map(always,from: i)
167 // OMP45-NEXT: foo()
168 // OMP45-NEXT: #pragma omp target map(tofrom: always)
169 // OMP45-NEXT: {
170 // OMP45-NEXT: always++;
171 // OMP45-NEXT: }
172 // OMP45-NEXT: #pragma omp target map(tofrom: always,i)
173 // OMP45-NEXT: {
174 // OMP45-NEXT: always++;
175 // OMP45-NEXT: i++;
176 // OMP45-NEXT: }
177 // OMP45-NEXT: #pragma omp target map(close,alloc: i)
178 // OMP45-NEXT: foo()
179 // OMP45-NEXT: #pragma omp target map(close,from: i)
180 // OMP45-NEXT: foo()
181 // OMP45-NEXT: #pragma omp target map(tofrom: close)
182 // OMP45-NEXT: {
183 // OMP45-NEXT: close++;
184 // OMP45-NEXT: }
185 // OMP45-NEXT: #pragma omp target map(tofrom: close,i)
186 // OMP45-NEXT: {
187 // OMP45-NEXT: close++;
188 // OMP45-NEXT: i++;
189 // OMP45-NEXT: }
190 // OMP45-NEXT: #pragma omp target nowait
191 // OMP45-NEXT: foo()
192 // OMP45-NEXT: #pragma omp target depend(in : argc,argv[i:argc],a[:])
193 // OMP45-NEXT: foo()
194 // OMP45-NEXT: #pragma omp target defaultmap(tofrom: scalar)
195 // OMP45-NEXT: foo()
197 // OMP45-LABEL: class S {
200 // OMP45-NEXT: void foo() { in foo()
202 // OMP45-NEXT: int a = 0; in foo()
203 #pragma omp target map(this[0]) in foo()
204 // OMP45-NEXT: #pragma omp target map(tofrom: this[0]) in foo()
206 // OMP45-NEXT: a++; in foo()
207 #pragma omp target map(this[:1]) in foo()
208 // OMP45-NEXT: #pragma omp target map(tofrom: this[:1]) in foo()
210 // OMP45-NEXT: a++; in foo()
211 #pragma omp target map((this)[0]) in foo()
212 // OMP45-NEXT: #pragma omp target map(tofrom: (this)[0]) in foo()
214 // OMP45-NEXT: a++; in foo()
215 #pragma omp target map(this[:a]) in foo()
216 // OMP45-NEXT: #pragma omp target map(tofrom: this[:a]) in foo()
218 // OMP45-NEXT: a++; in foo()
219 #pragma omp target map(this[a:1]) in foo()
220 // OMP45-NEXT: #pragma omp target map(tofrom: this[a:1]) in foo()
222 // OMP45-NEXT: a++; in foo()
223 #pragma omp target map(this[a]) in foo()
224 // OMP45-NEXT: #pragma omp target map(tofrom: this[a]) in foo()
226 // OMP45-NEXT: a++; in foo()
228 // OMP45-NEXT: }
230 // OMP45-NEXT: };
232 // OMP45-LABEL: int main(int argc, char **argv) {
235 // OMP45-NEXT: int i, j, a[20] in main()
236 #pragma omp target in main()
237 // OMP45-NEXT: #pragma omp target in main()
239 // OMP45-NEXT: foo(); in main()
240 #pragma omp target if (argc > 0) in main()
241 // OMP45-NEXT: #pragma omp target if(argc > 0) in main()
243 // OMP45-NEXT: foo(); in main()
245 #pragma omp target map(i) if(argc>0) in main()
246 // OMP45-NEXT: #pragma omp target map(tofrom: i) if(argc > 0) in main()
248 // OMP45-NEXT: foo(); in main()
250 #pragma omp target map(i) in main()
251 // OMP45-NEXT: #pragma omp target map(tofrom: i) in main()
253 // OMP45-NEXT: foo(); in main()
255 #pragma omp target map(a[0:10], i) in main()
256 // OMP45-NEXT: #pragma omp target map(tofrom: a[0:10],i) in main()
258 // OMP45-NEXT: foo(); in main()
260 #pragma omp target map(to: i) map(from: j) in main()
261 // OMP45-NEXT: #pragma omp target map(to: i) map(from: j) in main()
263 // OMP45-NEXT: foo(); in main()
265 #pragma omp target map(always,alloc: i) in main()
266 // OMP45-NEXT: #pragma omp target map(always,alloc: i) in main()
268 // OMP45-NEXT: foo(); in main()
270 #pragma omp target map(always from: i) in main()
271 // OMP45-NEXT: #pragma omp target map(always,from: i) in main()
273 // OMP45-NEXT: foo(); in main()
275 #pragma omp target map(always) in main()
276 // OMP45-NEXT: #pragma omp target map(tofrom: always) in main()
278 // OMP45-NEXT: { in main()
279 // OMP45-NEXT: always++; in main()
280 // OMP45-NEXT: } in main()
282 #pragma omp target map(always,i) in main()
283 // OMP45-NEXT: #pragma omp target map(tofrom: always,i) in main()
285 // OMP45-NEXT: { in main()
286 // OMP45-NEXT: always++; in main()
287 // OMP45-NEXT: i++; in main()
288 // OMP45-NEXT: } in main()
290 #pragma omp target map(close,alloc: i) in main()
291 // OMP45-NEXT: #pragma omp target map(close,alloc: i) in main()
293 // OMP45-NEXT: foo(); in main()
295 #pragma omp target map(close from: i) in main()
296 // OMP45-NEXT: #pragma omp target map(close,from: i) in main()
298 // OMP45-NEXT: foo(); in main()
300 #pragma omp target map(close) in main()
301 // OMP45-NEXT: #pragma omp target map(tofrom: close) in main()
303 // OMP45-NEXT: { in main()
304 // OMP45-NEXT: close++; in main()
305 // OMP45-NEXT: } in main()
307 #pragma omp target map(close,i) in main()
308 // OMP45-NEXT: #pragma omp target map(tofrom: close,i) in main()
310 // OMP45-NEXT: { in main()
311 // OMP45-NEXT: close++; in main()
312 // OMP45-NEXT: i++; in main()
313 // OMP45-NEXT: } in main()
315 #pragma omp target nowait in main()
316 // OMP45-NEXT: #pragma omp target nowait in main()
318 // OMP45-NEXT: foo(); in main()
320 #pragma omp target depend(in : argc, argv[i:argc], a[:]) in main()
321 // OMP45-NEXT: #pragma omp target depend(in : argc,argv[i:argc],a[:]) in main()
323 // OMP45-NEXT: foo(); in main()
325 #pragma omp target defaultmap(tofrom: scalar) in main()
326 // OMP45-NEXT: #pragma omp target defaultmap(tofrom: scalar) in main()
328 // OMP45-NEXT: foo(); in main()
338 // RUN: %clang_cc1 -DOMP5 -verify -Wno-vla -fopenmp -fopenmp-version=50 -ast-print %s | FileCheck %…
339 // RUN: %clang_cc1 -DOMP5 -fopenmp -fopenmp-version=50 -x c++ -std=c++11 -emit-pch -o %t %s
340 …/ RUN: %clang_cc1 -DOMP5 -fopenmp -fopenmp-version=50 -std=c++11 -include-pch %t -verify -Wno-vla …
342 // RUN: %clang_cc1 -DOMP5 -verify -Wno-vla -fopenmp-simd -fopenmp-version=50 -ast-print %s | FileCh…
343 // RUN: %clang_cc1 -DOMP5 -fopenmp-simd -fopenmp-version=50 -x c++ -std=c++11 -emit-pch -o %t %s
344 …UN: %clang_cc1 -DOMP5 -fopenmp-simd -fopenmp-version=50 -std=c++11 -include-pch %t -verify -Wno-vl…
346 // RUN: %clang_cc1 -DOMP5 -verify -Wno-vla -fopenmp -fopenmp-version=99 -DOMP99 -ast-print %s | Fil…
347 // RUN: %clang_cc1 -DOMP5 -fopenmp -fopenmp-version=99 -DOMP99 -x c++ -std=c++11 -emit-pch -o %t %s
348 …N: %clang_cc1 -DOMP5 -fopenmp -fopenmp-version=99 -DOMP99 -std=c++11 -include-pch %t -verify -Wno-
350 // RUN: %clang_cc1 -DOMP5 -verify -Wno-vla -fopenmp-simd -fopenmp-version=99 -DOMP99 -ast-print %s …
351 // RUN: %clang_cc1 -DOMP5 -fopenmp-simd -fopenmp-version=99 -DOMP99 -x c++ -std=c++11 -emit-pch -o …
352 …%clang_cc1 -DOMP5 -fopenmp-simd -fopenmp-version=99 -DOMP99 -std=c++11 -include-pch %t -verify -Wn…
370 #pragma omp declare target
372 #pragma omp end declare target
375 #pragma omp declare target link(a)
380 #pragma omp target device(argc) in tmain()
382 #pragma omp target if (target:argc > 0) device(device_num: C) in tmain()
385 #pragma omp target if (C) device(ancestor: argc) in tmain()
388 #pragma omp target map(i) in tmain()
390 #pragma omp target map(a[0:10], i) in tmain()
392 #pragma omp target map(to: i) map(from: j) in tmain()
394 #pragma omp target map(always,alloc: i) in tmain()
396 #pragma omp target map(always, from: i) in tmain()
398 #pragma omp target map(always) in tmain()
400 #pragma omp target map(always,i) in tmain()
402 #pragma omp target map(close,alloc: i) in tmain()
404 #pragma omp target map(close, from: i) in tmain()
406 #pragma omp target map(close) in tmain()
408 #pragma omp target map(close,i) in tmain()
410 #pragma omp target nowait in tmain()
412 #pragma omp target depend(in : argc, argv[i:argc], a[:]) in tmain()
414 #pragma omp target defaultmap(alloc: scalar) in tmain()
416 #pragma omp target defaultmap(to: scalar) in tmain()
418 #pragma omp target defaultmap(from: scalar) in tmain()
420 #pragma omp target defaultmap(tofrom: scalar) in tmain()
422 #pragma omp target defaultmap(firstprivate: scalar) in tmain()
424 #pragma omp target defaultmap(none: scalar) in tmain()
426 #pragma omp target defaultmap(default: scalar) in tmain()
428 #pragma omp target defaultmap(alloc: aggregate) in tmain()
430 #pragma omp target defaultmap(to: aggregate) in tmain()
432 #pragma omp target defaultmap(from: aggregate) in tmain()
434 #pragma omp target defaultmap(tofrom: aggregate) in tmain()
436 #pragma omp target defaultmap(firstprivate: aggregate) in tmain()
438 #pragma omp target defaultmap(none: aggregate) in tmain()
440 #pragma omp target defaultmap(default: aggregate) in tmain()
442 #pragma omp target defaultmap(alloc: pointer) in tmain()
444 #pragma omp target defaultmap(to: pointer) in tmain()
446 #pragma omp target defaultmap(from: pointer) in tmain()
448 #pragma omp target defaultmap(tofrom: pointer) in tmain()
450 #pragma omp target defaultmap(firstprivate: pointer) in tmain()
452 #pragma omp target defaultmap(none: pointer) in tmain()
454 #pragma omp target defaultmap(default: pointer) in tmain()
456 #pragma omp target defaultmap(to: scalar) defaultmap(tofrom: pointer) in tmain()
458 #pragma omp target defaultmap(from: pointer) defaultmap(none: aggregate) in tmain()
460 #pragma omp target defaultmap(default: aggregate) defaultmap(alloc: scalar) in tmain()
462 #pragma omp target defaultmap(alloc: aggregate) defaultmap(firstprivate: scalar) defaultmap(tofrom:… in tmain()
464 #pragma omp target defaultmap(tofrom: aggregate) defaultmap(to: pointer) defaultmap(alloc: scalar) in tmain()
469 #pragma omp target is_device_ptr(g) defaultmap(none: pointer) in tmain()
471 #pragma omp target private(g) defaultmap(none: pointer) in tmain()
473 #pragma omp target firstprivate(g) defaultmap(none: pointer) in tmain()
475 #pragma omp target defaultmap(none: scalar) map(to: i) in tmain()
477 #pragma omp target defaultmap(none: aggregate) map(to: a) in tmain()
479 #pragma omp target defaultmap(none: scalar) in tmain()
486 // OMP5-NEXT: T i, j, a[20]
487 // OMP5-NEXT: #pragma omp target device(argc){{$}}
488 // OMP5-NEXT: foo();
489 // OMP5-NEXT: #pragma omp target if(target: argc > 0) device(device_num: C)
490 // OMP5-NEXT: foo()
491 // REV: #pragma omp target if(C) device(ancestor: argc)
492 // REV-NEXT: foo()
493 // OMP5-NEXT: #pragma omp target map(tofrom: i)
494 // OMP5-NEXT: foo()
495 // OMP5-NEXT: #pragma omp target map(tofrom: a[0:10],i)
496 // OMP5-NEXT: foo()
497 // OMP5-NEXT: #pragma omp target map(to: i) map(from: j)
498 // OMP5-NEXT: foo()
499 // OMP5-NEXT: #pragma omp target map(always,alloc: i)
500 // OMP5-NEXT: foo()
501 // OMP5-NEXT: #pragma omp target map(always,from: i)
502 // OMP5-NEXT: foo()
503 // OMP5-NEXT: #pragma omp target map(tofrom: always)
504 // OMP5-NEXT: {
505 // OMP5-NEXT: always++;
506 // OMP5-NEXT: }
507 // OMP5-NEXT: #pragma omp target map(tofrom: always,i)
508 // OMP5-NEXT: {
509 // OMP5-NEXT: always++;
510 // OMP5-NEXT: i++;
511 // OMP5-NEXT: }
512 // OMP5-NEXT: #pragma omp target map(close,alloc: i)
513 // OMP5-NEXT: foo()
514 // OMP5-NEXT: #pragma omp target map(close,from: i)
515 // OMP5-NEXT: foo()
516 // OMP5-NEXT: #pragma omp target map(tofrom: close)
517 // OMP5-NEXT: {
518 // OMP5-NEXT: close++;
519 // OMP5-NEXT: }
520 // OMP5-NEXT: #pragma omp target map(tofrom: close,i)
521 // OMP5-NEXT: {
522 // OMP5-NEXT: close++;
523 // OMP5-NEXT: i++;
524 // OMP5-NEXT: }
525 // OMP5-NEXT: #pragma omp target nowait
526 // OMP5-NEXT: foo()
527 // OMP5-NEXT: #pragma omp target depend(in : argc,argv[i:argc],a[:])
528 // OMP5-NEXT: foo()
529 // OMP5-NEXT: #pragma omp target defaultmap(alloc: scalar)
530 // OMP5-NEXT: foo()
531 // OMP5-NEXT: #pragma omp target defaultmap(to: scalar)
532 // OMP5-NEXT: foo()
533 // OMP5-NEXT: #pragma omp target defaultmap(from: scalar)
534 // OMP5-NEXT: foo()
535 // OMP5-NEXT: #pragma omp target defaultmap(tofrom: scalar)
536 // OMP5-NEXT: foo()
537 // OMP5-NEXT: #pragma omp target defaultmap(firstprivate: scalar)
538 // OMP5-NEXT: foo()
539 // OMP5-NEXT: #pragma omp target defaultmap(none: scalar)
540 // OMP5-NEXT: foo()
541 // OMP5-NEXT: #pragma omp target defaultmap(default: scalar)
542 // OMP5-NEXT: foo()
543 // OMP5-NEXT: #pragma omp target defaultmap(alloc: aggregate)
544 // OMP5-NEXT: foo()
545 // OMP5-NEXT: #pragma omp target defaultmap(to: aggregate)
546 // OMP5-NEXT: foo()
547 // OMP5-NEXT: #pragma omp target defaultmap(from: aggregate)
548 // OMP5-NEXT: foo()
549 // OMP5-NEXT: #pragma omp target defaultmap(tofrom: aggregate)
550 // OMP5-NEXT: foo()
551 // OMP5-NEXT: #pragma omp target defaultmap(firstprivate: aggregate)
552 // OMP5-NEXT: foo()
553 // OMP5-NEXT: #pragma omp target defaultmap(none: aggregate)
554 // OMP5-NEXT: foo()
555 // OMP5-NEXT: #pragma omp target defaultmap(default: aggregate)
556 // OMP5-NEXT: foo()
557 // OMP5-NEXT: #pragma omp target defaultmap(alloc: pointer)
558 // OMP5-NEXT: foo()
559 // OMP5-NEXT: #pragma omp target defaultmap(to: pointer)
560 // OMP5-NEXT: foo()
561 // OMP5-NEXT: #pragma omp target defaultmap(from: pointer)
562 // OMP5-NEXT: foo()
563 // OMP5-NEXT: #pragma omp target defaultmap(tofrom: pointer)
564 // OMP5-NEXT: foo()
565 // OMP5-NEXT: #pragma omp target defaultmap(firstprivate: pointer)
566 // OMP5-NEXT: foo()
567 // OMP5-NEXT: #pragma omp target defaultmap(none: pointer)
568 // OMP5-NEXT: foo()
569 // OMP5-NEXT: #pragma omp target defaultmap(default: pointer)
570 // OMP5-NEXT: foo()
571 // OMP5-NEXT: #pragma omp target defaultmap(to: scalar) defaultmap(tofrom: pointer)
572 // OMP5-NEXT: foo()
573 // OMP5-NEXT: #pragma omp target defaultmap(from: pointer) defaultmap(none: aggregate)
574 // OMP5-NEXT: foo()
575 // OMP5-NEXT: #pragma omp target defaultmap(default: aggregate) defaultmap(alloc: scalar)
576 // OMP5-NEXT: foo()
577 // OMP5-NEXT: #pragma omp target defaultmap(alloc: aggregate) defaultmap(firstprivate: scalar) defa…
578 // OMP5-NEXT: foo()
579 // OMP5-NEXT: #pragma omp target defaultmap(tofrom: aggregate) defaultmap(to: pointer) defaultmap(a…
580 // OMP5-NEXT: foo()
582 // OMP5-NEXT: int i, j, a[20]
583 // OMP5-NEXT: #pragma omp target
584 // OMP5-NEXT: foo();
585 // OMP5-NEXT: #pragma omp target if(target: argc > 0)
586 // OMP5-NEXT: foo()
587 // REV: #pragma omp target if(5)
588 // REV-NEXT: foo()
589 // OMP5-NEXT: #pragma omp target map(tofrom: i)
590 // OMP5-NEXT: foo()
591 // OMP5-NEXT: #pragma omp target map(tofrom: a[0:10],i)
592 // OMP5-NEXT: foo()
593 // OMP5-NEXT: #pragma omp target map(to: i) map(from: j)
594 // OMP5-NEXT: foo()
595 // OMP5-NEXT: #pragma omp target map(always,alloc: i)
596 // OMP5-NEXT: foo()
597 // OMP5-NEXT: #pragma omp target map(always,from: i)
598 // OMP5-NEXT: foo()
599 // OMP5-NEXT: #pragma omp target map(tofrom: always)
600 // OMP5-NEXT: {
601 // OMP5-NEXT: always++;
602 // OMP5-NEXT: }
603 // OMP5-NEXT: #pragma omp target map(tofrom: always,i)
604 // OMP5-NEXT: {
605 // OMP5-NEXT: always++;
606 // OMP5-NEXT: i++;
607 // OMP5-NEXT: }
608 // OMP5-NEXT: #pragma omp target map(close,alloc: i)
609 // OMP5-NEXT: foo()
610 // OMP5-NEXT: #pragma omp target map(close,from: i)
611 // OMP5-NEXT: foo()
612 // OMP5-NEXT: #pragma omp target map(tofrom: close)
613 // OMP5-NEXT: {
614 // OMP5-NEXT: close++;
615 // OMP5-NEXT: }
616 // OMP5-NEXT: #pragma omp target map(tofrom: close,i)
617 // OMP5-NEXT: {
618 // OMP5-NEXT: close++;
619 // OMP5-NEXT: i++;
620 // OMP5-NEXT: }
621 // OMP5-NEXT: #pragma omp target nowait
622 // OMP5-NEXT: foo()
623 // OMP5-NEXT: #pragma omp target depend(in : argc,argv[i:argc],a[:])
624 // OMP5-NEXT: foo()
625 // OMP5-NEXT: #pragma omp target defaultmap(alloc: scalar)
626 // OMP5-NEXT: foo()
627 // OMP5-NEXT: #pragma omp target defaultmap(to: scalar)
628 // OMP5-NEXT: foo()
629 // OMP5-NEXT: #pragma omp target defaultmap(from: scalar)
630 // OMP5-NEXT: foo()
631 // OMP5-NEXT: #pragma omp target defaultmap(tofrom: scalar)
632 // OMP5-NEXT: foo()
633 // OMP5-NEXT: #pragma omp target defaultmap(firstprivate: scalar)
634 // OMP5-NEXT: foo()
635 // OMP5-NEXT: #pragma omp target defaultmap(none: scalar)
636 // OMP5-NEXT: foo()
637 // OMP5-NEXT: #pragma omp target defaultmap(default: scalar)
638 // OMP5-NEXT: foo()
639 // OMP5-NEXT: #pragma omp target defaultmap(alloc: aggregate)
640 // OMP5-NEXT: foo()
641 // OMP5-NEXT: #pragma omp target defaultmap(to: aggregate)
642 // OMP5-NEXT: foo()
643 // OMP5-NEXT: #pragma omp target defaultmap(from: aggregate)
644 // OMP5-NEXT: foo()
645 // OMP5-NEXT: #pragma omp target defaultmap(tofrom: aggregate)
646 // OMP5-NEXT: foo()
647 // OMP5-NEXT: #pragma omp target defaultmap(firstprivate: aggregate)
648 // OMP5-NEXT: foo()
649 // OMP5-NEXT: #pragma omp target defaultmap(none: aggregate)
650 // OMP5-NEXT: foo()
651 // OMP5-NEXT: #pragma omp target defaultmap(default: aggregate)
652 // OMP5-NEXT: foo()
653 // OMP5-NEXT: #pragma omp target defaultmap(alloc: pointer)
654 // OMP5-NEXT: foo()
655 // OMP5-NEXT: #pragma omp target defaultmap(to: pointer)
656 // OMP5-NEXT: foo()
657 // OMP5-NEXT: #pragma omp target defaultmap(from: pointer)
658 // OMP5-NEXT: foo()
659 // OMP5-NEXT: #pragma omp target defaultmap(tofrom: pointer)
660 // OMP5-NEXT: foo()
661 // OMP5-NEXT: #pragma omp target defaultmap(firstprivate: pointer)
662 // OMP5-NEXT: foo()
663 // OMP5-NEXT: #pragma omp target defaultmap(none: pointer)
664 // OMP5-NEXT: foo()
665 // OMP5-NEXT: #pragma omp target defaultmap(default: pointer)
666 // OMP5-NEXT: foo()
667 // OMP5-NEXT: #pragma omp target defaultmap(to: scalar) defaultmap(tofrom: pointer)
668 // OMP5-NEXT: foo()
669 // OMP5-NEXT: #pragma omp target defaultmap(from: pointer) defaultmap(none: aggregate)
670 // OMP5-NEXT: foo()
671 // OMP5-NEXT: #pragma omp target defaultmap(default: aggregate) defaultmap(alloc: scalar)
672 // OMP5-NEXT: foo()
673 // OMP5-NEXT: #pragma omp target defaultmap(alloc: aggregate) defaultmap(firstprivate: scalar) defa…
674 // OMP5-NEXT: foo()
675 // OMP5-NEXT: #pragma omp target defaultmap(tofrom: aggregate) defaultmap(to: pointer) defaultmap(a…
676 // OMP5-NEXT: foo()
678 // OMP5-NEXT: char i, j, a[20]
679 // OMP5-NEXT: #pragma omp target device(argc)
680 // OMP5-NEXT: foo();
681 // OMP5-NEXT: #pragma omp target if(target: argc > 0) device(device_num: 1)
682 // OMP5-NEXT: foo()
683 // REV: #pragma omp target if(1) device(ancestor: argc)
684 // REV-NEXT: foo()
685 // OMP5-NEXT: #pragma omp target map(tofrom: i)
686 // OMP5-NEXT: foo()
687 // OMP5-NEXT: #pragma omp target map(tofrom: a[0:10],i)
688 // OMP5-NEXT: foo()
689 // OMP5-NEXT: #pragma omp target map(to: i) map(from: j)
690 // OMP5-NEXT: foo()
691 // OMP5-NEXT: #pragma omp target map(always,alloc: i)
692 // OMP5-NEXT: foo()
693 // OMP5-NEXT: #pragma omp target map(always,from: i)
694 // OMP5-NEXT: foo()
695 // OMP5-NEXT: #pragma omp target map(tofrom: always)
696 // OMP5-NEXT: {
697 // OMP5-NEXT: always++;
698 // OMP5-NEXT: }
699 // OMP5-NEXT: #pragma omp target map(tofrom: always,i)
700 // OMP5-NEXT: {
701 // OMP5-NEXT: always++;
702 // OMP5-NEXT: i++;
703 // OMP5-NEXT: }
704 // OMP5-NEXT: #pragma omp target map(close,alloc: i)
705 // OMP5-NEXT: foo()
706 // OMP5-NEXT: #pragma omp target map(close,from: i)
707 // OMP5-NEXT: foo()
708 // OMP5-NEXT: #pragma omp target map(tofrom: close)
709 // OMP5-NEXT: {
710 // OMP5-NEXT: close++;
711 // OMP5-NEXT: }
712 // OMP5-NEXT: #pragma omp target map(tofrom: close,i)
713 // OMP5-NEXT: {
714 // OMP5-NEXT: close++;
715 // OMP5-NEXT: i++;
716 // OMP5-NEXT: }
717 // OMP5-NEXT: #pragma omp target nowait
718 // OMP5-NEXT: foo()
719 // OMP5-NEXT: #pragma omp target depend(in : argc,argv[i:argc],a[:])
720 // OMP5-NEXT: foo()
721 // OMP5-NEXT: #pragma omp target defaultmap(alloc: scalar)
722 // OMP5-NEXT: foo()
723 // OMP5-NEXT: #pragma omp target defaultmap(to: scalar)
724 // OMP5-NEXT: foo()
725 // OMP5-NEXT: #pragma omp target defaultmap(from: scalar)
726 // OMP5-NEXT: foo()
727 // OMP5-NEXT: #pragma omp target defaultmap(tofrom: scalar)
728 // OMP5-NEXT: foo()
729 // OMP5-NEXT: #pragma omp target defaultmap(firstprivate: scalar)
730 // OMP5-NEXT: foo()
731 // OMP5-NEXT: #pragma omp target defaultmap(none: scalar)
732 // OMP5-NEXT: foo()
733 // OMP5-NEXT: #pragma omp target defaultmap(default: scalar)
734 // OMP5-NEXT: foo()
735 // OMP5-NEXT: #pragma omp target defaultmap(alloc: aggregate)
736 // OMP5-NEXT: foo()
737 // OMP5-NEXT: #pragma omp target defaultmap(to: aggregate)
738 // OMP5-NEXT: foo()
739 // OMP5-NEXT: #pragma omp target defaultmap(from: aggregate)
740 // OMP5-NEXT: foo()
741 // OMP5-NEXT: #pragma omp target defaultmap(tofrom: aggregate)
742 // OMP5-NEXT: foo()
743 // OMP5-NEXT: #pragma omp target defaultmap(firstprivate: aggregate)
744 // OMP5-NEXT: foo()
745 // OMP5-NEXT: #pragma omp target defaultmap(none: aggregate)
746 // OMP5-NEXT: foo()
747 // OMP5-NEXT: #pragma omp target defaultmap(default: aggregate)
748 // OMP5-NEXT: foo()
749 // OMP5-NEXT: #pragma omp target defaultmap(alloc: pointer)
750 // OMP5-NEXT: foo()
751 // OMP5-NEXT: #pragma omp target defaultmap(to: pointer)
752 // OMP5-NEXT: foo()
753 // OMP5-NEXT: #pragma omp target defaultmap(from: pointer)
754 // OMP5-NEXT: foo()
755 // OMP5-NEXT: #pragma omp target defaultmap(tofrom: pointer)
756 // OMP5-NEXT: foo()
757 // OMP5-NEXT: #pragma omp target defaultmap(firstprivate: pointer)
758 // OMP5-NEXT: foo()
759 // OMP5-NEXT: #pragma omp target defaultmap(none: pointer)
760 // OMP5-NEXT: foo()
761 // OMP5-NEXT: #pragma omp target defaultmap(default: pointer)
762 // OMP5-NEXT: foo()
763 // OMP5-NEXT: #pragma omp target defaultmap(to: scalar) defaultmap(tofrom: pointer)
764 // OMP5-NEXT: foo()
765 // OMP5-NEXT: #pragma omp target defaultmap(from: pointer) defaultmap(none: aggregate)
766 // OMP5-NEXT: foo()
767 // OMP5-NEXT: #pragma omp target defaultmap(default: aggregate) defaultmap(alloc: scalar)
768 // OMP5-NEXT: foo()
769 // OMP5-NEXT: #pragma omp target defaultmap(alloc: aggregate) defaultmap(firstprivate: scalar) defa…
770 // OMP5-NEXT: foo()
771 // OMP5-NEXT: #pragma omp target defaultmap(tofrom: aggregate) defaultmap(to: pointer) defaultmap(a…
772 // OMP5-NEXT: foo()
773 // OMP5-NEXT: int *g;
774 // OMP5-NEXT: #pragma omp target is_device_ptr(g) defaultmap(none: pointer)
775 // OMP5-NEXT: g++;
776 // OMP5-NEXT: #pragma omp target private(g) defaultmap(none: pointer)
777 // OMP5-NEXT: g++;
778 // OMP5-NEXT: #pragma omp target firstprivate(g) defaultmap(none: pointer)
779 // OMP5-NEXT: g++;
780 // OMP5-NEXT: #pragma omp target defaultmap(none: scalar) map(to: i)
781 // OMP5-NEXT: i++;
782 // OMP5-NEXT: #pragma omp target defaultmap(none: aggregate) map(to: a)
783 // OMP5-NEXT: a[3]++;
784 // OMP5-NEXT: #pragma omp target defaultmap(none: scalar)
785 // OMP5-NEXT: bar();
787 // OMP5-LABEL: class S {
790 // OMP5-NEXT: void foo() { in foo()
792 // OMP5-NEXT: int a = 0; in foo()
793 #pragma omp target map(this[0]) in foo()
794 // OMP5-NEXT: #pragma omp target map(tofrom: this[0]) in foo()
796 // OMP5-NEXT: a++; in foo()
797 #pragma omp target map(this[:1]) in foo()
798 // OMP5-NEXT: #pragma omp target map(tofrom: this[:1]) in foo()
800 // OMP5-NEXT: a++; in foo()
801 #pragma omp target map((this)[0]) in foo()
802 // OMP5-NEXT: #pragma omp target map(tofrom: (this)[0]) in foo()
804 // OMP5-NEXT: a++; in foo()
805 #pragma omp target map(this[:a]) in foo()
806 // OMP5-NEXT: #pragma omp target map(tofrom: this[:a]) in foo()
808 // OMP5-NEXT: a++; in foo()
809 #pragma omp target map(this[a:1]) in foo()
810 // OMP5-NEXT: #pragma omp target map(tofrom: this[a:1]) in foo()
812 // OMP5-NEXT: a++; in foo()
813 #pragma omp target map(this[a]) in foo()
814 // OMP5-NEXT: #pragma omp target map(tofrom: this[a]) in foo()
816 // OMP5-NEXT: a++; in foo()
818 // OMP5-NEXT: }
820 // OMP5-NEXT: };
822 // OMP5-LABEL: int main(int argc, char **argv) {
825 // OMP5-NEXT: int i, j, a[20] in main()
826 #pragma omp target in main()
827 // OMP5-NEXT: #pragma omp target in main()
829 // OMP5-NEXT: foo(); in main()
830 #pragma omp target if (argc > 0) in main()
831 // OMP5-NEXT: #pragma omp target if(argc > 0) in main()
833 // OMP5-NEXT: foo(); in main()
835 #pragma omp target map(i) if(argc>0) in main()
836 // OMP5-NEXT: #pragma omp target map(tofrom: i) if(argc > 0) in main()
838 // OMP5-NEXT: foo(); in main()
840 #pragma omp target map(i) in main()
841 // OMP5-NEXT: #pragma omp target map(tofrom: i) in main()
843 // OMP5-NEXT: foo(); in main()
845 #pragma omp target map(a[0:10], i) in main()
846 // OMP5-NEXT: #pragma omp target map(tofrom: a[0:10],i) in main()
848 // OMP5-NEXT: foo(); in main()
850 #pragma omp target map(to: i) map(from: j) in main()
851 // OMP5-NEXT: #pragma omp target map(to: i) map(from: j) in main()
853 // OMP5-NEXT: foo(); in main()
855 #pragma omp target map(always,alloc: i) in main()
856 // OMP5-NEXT: #pragma omp target map(always,alloc: i) in main()
858 // OMP5-NEXT: foo(); in main()
860 #pragma omp target map(always, from: i) in main()
861 // OMP5-NEXT: #pragma omp target map(always,from: i) in main()
863 // OMP5-NEXT: foo(); in main()
865 #pragma omp target map(always) in main()
866 // OMP5-NEXT: #pragma omp target map(tofrom: always) in main()
868 // OMP5-NEXT: { in main()
869 // OMP5-NEXT: always++; in main()
870 // OMP5-NEXT: } in main()
872 #pragma omp target map(always,i) in main()
873 // OMP5-NEXT: #pragma omp target map(tofrom: always,i) in main()
875 // OMP5-NEXT: { in main()
876 // OMP5-NEXT: always++; in main()
877 // OMP5-NEXT: i++; in main()
878 // OMP5-NEXT: } in main()
880 #pragma omp target map(close,alloc: i) in main()
881 // OMP5-NEXT: #pragma omp target map(close,alloc: i) in main()
883 // OMP5-NEXT: foo(); in main()
885 #pragma omp target map(close, from: i) in main()
886 // OMP5-NEXT: #pragma omp target map(close,from: i) in main()
888 // OMP5-NEXT: foo(); in main()
890 #pragma omp target map(close) in main()
891 // OMP5-NEXT: #pragma omp target map(tofrom: close) in main()
893 // OMP5-NEXT: { in main()
894 // OMP5-NEXT: close++; in main()
895 // OMP5-NEXT: } in main()
897 #pragma omp target map(close,i) in main()
898 // OMP5-NEXT: #pragma omp target map(tofrom: close,i) in main()
900 // OMP5-NEXT: { in main()
901 // OMP5-NEXT: close++; in main()
902 // OMP5-NEXT: i++; in main()
903 // OMP5-NEXT: } in main()
905 #pragma omp target nowait in main()
906 // OMP5-NEXT: #pragma omp target nowait in main()
908 // OMP5-NEXT: foo(); in main()
910 #pragma omp target depend(in : argc, argv[i:argc], a[:]) in main()
911 // OMP5-NEXT: #pragma omp target depend(in : argc,argv[i:argc],a[:]) in main()
913 // OMP5-NEXT: foo(); in main()
915 #pragma omp target defaultmap(alloc: scalar) in main()
916 // OMP5-NEXT: #pragma omp target defaultmap(alloc: scalar) in main()
918 // OMP5-NEXT: foo(); in main()
920 #pragma omp target defaultmap(to: scalar) in main()
921 // OMP5-NEXT: #pragma omp target defaultmap(to: scalar) in main()
923 // OMP5-NEXT: foo(); in main()
925 #pragma omp target defaultmap(from: scalar) in main()
926 // OMP5-NEXT: #pragma omp target defaultmap(from: scalar) in main()
928 // OMP5-NEXT: foo(); in main()
930 #pragma omp target defaultmap(tofrom: scalar) in main()
931 // OMP5-NEXT: #pragma omp target defaultmap(tofrom: scalar) in main()
933 // OMP5-NEXT: foo(); in main()
935 #pragma omp target defaultmap(firstprivate: scalar) in main()
936 // OMP5-NEXT: #pragma omp target defaultmap(firstprivate: scalar) in main()
938 // OMP5-NEXT: foo(); in main()
940 #pragma omp target defaultmap(none: scalar) in main()
941 // OMP5-NEXT: #pragma omp target defaultmap(none: scalar) in main()
943 // OMP5-NEXT: foo(); in main()
945 #pragma omp target defaultmap(default: scalar) in main()
946 // OMP5-NEXT: #pragma omp target defaultmap(default: scalar) in main()
948 // OMP5-NEXT: foo(); in main()
950 #pragma omp target defaultmap(alloc: aggregate) in main()
951 // OMP5-NEXT: #pragma omp target defaultmap(alloc: aggregate) in main()
953 // OMP5-NEXT: foo(); in main()
955 #pragma omp target defaultmap(to: aggregate) in main()
956 // OMP5-NEXT: #pragma omp target defaultmap(to: aggregate) in main()
958 // OMP5-NEXT: foo(); in main()
960 #pragma omp target defaultmap(from: aggregate) in main()
961 // OMP5-NEXT: #pragma omp target defaultmap(from: aggregate) in main()
963 // OMP5-NEXT: foo(); in main()
965 #pragma omp target defaultmap(tofrom: aggregate) in main()
966 // OMP5-NEXT: #pragma omp target defaultmap(tofrom: aggregate) in main()
968 // OMP5-NEXT: foo(); in main()
970 #pragma omp target defaultmap(firstprivate: aggregate) in main()
971 // OMP5-NEXT: #pragma omp target defaultmap(firstprivate: aggregate) in main()
973 // OMP5-NEXT: foo(); in main()
975 #pragma omp target defaultmap(none: aggregate) in main()
976 // OMP5-NEXT: #pragma omp target defaultmap(none: aggregate) in main()
978 // OMP5-NEXT: foo(); in main()
980 #pragma omp target defaultmap(default: aggregate) in main()
981 // OMP5-NEXT: #pragma omp target defaultmap(default: aggregate) in main()
983 // OMP5-NEXT: foo(); in main()
985 #pragma omp target defaultmap(alloc: pointer) in main()
986 // OMP5-NEXT: #pragma omp target defaultmap(alloc: pointer) in main()
988 // OMP5-NEXT: foo(); in main()
990 #pragma omp target defaultmap(to: pointer) in main()
991 // OMP5-NEXT: #pragma omp target defaultmap(to: pointer) in main()
993 // OMP5-NEXT: foo(); in main()
995 #pragma omp target defaultmap(from: pointer) in main()
996 // OMP5-NEXT: #pragma omp target defaultmap(from: pointer) in main()
998 // OMP5-NEXT: foo(); in main()
1000 #pragma omp target defaultmap(tofrom: pointer) in main()
1001 // OMP5-NEXT: #pragma omp target defaultmap(tofrom: pointer) in main()
1003 // OMP5-NEXT: foo(); in main()
1005 #pragma omp target defaultmap(firstprivate: pointer) in main()
1006 // OMP5-NEXT: #pragma omp target defaultmap(firstprivate: pointer) in main()
1008 // OMP5-NEXT: foo(); in main()
1010 #pragma omp target defaultmap(none: pointer) in main()
1011 // OMP5-NEXT: #pragma omp target defaultmap(none: pointer) in main()
1013 // OMP5-NEXT: foo(); in main()
1015 #pragma omp target defaultmap(default: pointer) in main()
1016 // OMP5-NEXT: #pragma omp target defaultmap(default: pointer) in main()
1018 // OMP5-NEXT: foo(); in main()
1020 #pragma omp target defaultmap(to: scalar) defaultmap(tofrom: pointer) in main()
1021 // OMP5-NEXT: #pragma omp target defaultmap(to: scalar) defaultmap(tofrom: pointer) in main()
1023 // OMP5-NEXT: foo(); in main()
1025 #pragma omp target defaultmap(from: pointer) defaultmap(none: aggregate) in main()
1026 // OMP5-NEXT: #pragma omp target defaultmap(from: pointer) defaultmap(none: aggregate) in main()
1028 // OMP5-NEXT: foo(); in main()
1030 #pragma omp target defaultmap(default: aggregate) defaultmap(alloc: scalar) in main()
1031 // OMP5-NEXT: #pragma omp target defaultmap(default: aggregate) defaultmap(alloc: scalar) in main()
1033 // OMP5-NEXT: foo(); in main()
1035 #pragma omp target defaultmap(alloc: aggregate) defaultmap(firstprivate: scalar) defaultmap(tofrom:… in main()
1036 // OMP5-NEXT: #pragma omp target defaultmap(alloc: aggregate) defaultmap(firstprivate: scalar) defa… in main()
1038 // OMP5-NEXT: foo(); in main()
1040 #pragma omp target defaultmap(tofrom: aggregate) defaultmap(to: pointer) defaultmap(alloc: scalar) in main()
1041 // OMP5-NEXT: #pragma omp target defaultmap(tofrom: aggregate) defaultmap(to: pointer) defaultmap(a… in main()
1043 // OMP5-NEXT: foo(); in main()
1046 // OMP5-NEXT: int *g; in main()
1048 #pragma omp target is_device_ptr(g) defaultmap(none: pointer) in main()
1049 // OMP5-NEXT: #pragma omp target is_device_ptr(g) defaultmap(none: pointer) in main()
1051 // OMP5-NEXT: g++; in main()
1053 #pragma omp target private(g) defaultmap(none: pointer) in main()
1054 // OMP5-NEXT: #pragma omp target private(g) defaultmap(none: pointer) in main()
1056 // OMP5-NEXT: g++; in main()
1058 #pragma omp target firstprivate(g) defaultmap(none: pointer) in main()
1059 // OMP5-NEXT: #pragma omp target firstprivate(g) defaultmap(none: pointer) in main()
1061 // OMP5-NEXT: g++; in main()
1063 #pragma omp target defaultmap(none: scalar) map(to: i) in main()
1064 // OMP5-NEXT: #pragma omp target defaultmap(none: scalar) map(to: i) in main()
1066 // OMP5-NEXT: i++; in main()
1068 #pragma omp target defaultmap(none: aggregate) map(to: a) in main()
1069 // OMP5-NEXT: #pragma omp target defaultmap(none: aggregate) map(to: a) in main()
1071 // OMP5-NEXT: a[3]++; in main()
1073 #pragma omp target defaultmap(none: scalar) in main()
1074 // OMP5-NEXT: #pragma omp target defaultmap(none: scalar) in main()
1076 // OMP5-NEXT: bar(); in main()
1077 #pragma omp target defaultmap(none) in main()
1078 // OMP5-NEXT: #pragma omp target defaultmap(none) in main()
1079 // OMP5-NEXT: bar(); in main()
1081 #pragma omp target allocate(omp_default_mem_alloc:argv) uses_allocators(omp_default_mem_alloc,omp_l… in main()
1082 …// OMP5-NEXT: #pragma omp target allocate(omp_default_mem_alloc: argv) uses_allocators(omp_default… in main()
1083 // OMP5-NEXT: bar(); in main()
1093 // RUN: %clang_cc1 -DOMP51 -verify -Wno-vla -fopenmp -ast-print %s | FileCheck %s --check-prefix OM…
1094 // RUN: %clang_cc1 -DOMP51 -fopenmp -x c++ -std=c++11 -emit-pch -o %t %s
1095 // RUN: %clang_cc1 -DOMP51 -fopenmp -std=c++11 -include-pch %t -verify -Wno-vla %s -ast-print | Fil…
1097 // RUN: %clang_cc1 -DOMP51 -verify -Wno-vla -fopenmp-simd -ast-print %s | FileCheck %s --check-pref…
1098 // RUN: %clang_cc1 -DOMP51 -fopenmp-simd -x c++ -std=c++11 -emit-pch -o %t %s
1099 // RUN: %clang_cc1 -DOMP51 -fopenmp-simd -std=c++11 -include-pch %t -verify -Wno-vla %s -ast-print …
1105 #pragma omp target defaultmap(present: scalar) in tmain()
1107 #pragma omp target defaultmap(present: aggregate) in tmain()
1109 #pragma omp target defaultmap(present: pointer) in tmain()
1111 #pragma omp target thread_limit(C) in tmain()
1113 #pragma omp target defaultmap(present) in tmain()
1120 // OMP51-NEXT: #pragma omp target defaultmap(present: scalar)
1121 // OMP51-NEXT: foo()
1122 // OMP51-NEXT: #pragma omp target defaultmap(present: aggregate)
1123 // OMP51-NEXT: foo()
1124 // OMP51-NEXT: #pragma omp target defaultmap(present: pointer)
1125 // OMP51-NEXT: foo()
1126 // OMP51-NEXT: #pragma omp target thread_limit(C)
1127 // OMP51-NEXT: foo()
1128 // OMP51-NEXT: #pragma omp target defaultmap(present)
1129 // OMP51-NEXT: foo()
1131 // OMP51-LABEL: int main(int argc, char **argv) {
1133 #pragma omp target defaultmap(present: scalar) in main()
1134 // OMP51-NEXT: #pragma omp target defaultmap(present: scalar) in main()
1136 // OMP51-NEXT: foo(); in main()
1137 #pragma omp target defaultmap(present: aggregate) in main()
1138 // OMP51-NEXT: #pragma omp target defaultmap(present: aggregate) in main()
1140 // OMP51-NEXT: foo(); in main()
1141 #pragma omp target defaultmap(present: pointer) in main()
1142 // OMP51-NEXT: #pragma omp target defaultmap(present: pointer) in main()
1144 // OMP51-NEXT: foo(); in main()
1153 // RUN: %clang_cc1 -DOMP52 -verify -Wno-vla -fopenmp -fopenmp-version=52 -ast-print %s | FileCheck …
1154 // RUN: %clang_cc1 -DOMP52 -fopenmp -fopenmp-version=52 -x c++ -std=c++11 -emit-pch -o %t %s
1155 … RUN: %clang_cc1 -DOMP52 -fopenmp -fopenmp-version=52 -std=c++11 -include-pch %t -verify -Wno-vla …
1157 // RUN: %clang_cc1 -DOMP52 -verify -Wno-vla -fopenmp-simd -fopenmp-version=52 -ast-print %s | FileC…
1158 // RUN: %clang_cc1 -DOMP52 -fopenmp-simd -fopenmp-version=52 -x c++ -std=c++11 -emit-pch -o %t %s
1159 …UN: %clang_cc1 -DOMP52 -fopenmp-simd -fopenmp-version=52 -std=c++11 -include-pch %t -verify -Wno-v…
1167 #pragma omp target map(iterator(it = 0:N:2), to: v[it]) in tmain()
1169 #pragma omp target map(iterator(it = 0:N:4), from: v[it]) in tmain()
1176 // OMP52-NEXT: int N = 100;
1177 // OMP52-NEXT: int v[N];
1178 // OMP52-NEXT: #pragma omp target map(iterator(int it = 0:N:2),to: v[it])
1179 // OMP52-NEXT: foo()
1180 // OMP52-NEXT: #pragma omp target map(iterator(int it = 0:N:4),from: v[it])
1181 // OMP52-NEXT: foo()
1183 // OMP52-LABEL: int main(int argc, char **argv) {
1186 // OMP52-NEXT: int i, j, a[20] in main()
1187 #pragma omp target in main()
1188 // OMP52-NEXT: #pragma omp target in main()
1190 // OMP52-NEXT: foo(); in main()
1191 #pragma omp target map(iterator(it = 0:20:2), to: a[it]) in main()
1192 // OMP52-NEXT: #pragma omp target map(iterator(int it = 0:20:2),to: a[it]) in main()
1194 // OMP52-NEXT: foo(); in main()
1195 #pragma omp target map(iterator(it = 0:20:4), from: a[it]) in main()
1196 // OMP52-NEXT: #pragma omp target map(iterator(int it = 0:20:4),from: a[it]) in main()
1198 // OMP52-NEXT: foo(); in main()
1207 // RUN: %clang_cc1 -DOMP60 -verify -Wno-vla -fopenmp -fopenmp-version=60 -ast-print %s | FileCheck …
1208 // RUN: %clang_cc1 -DOMP60 -fopenmp -fopenmp-version=60 -x c++ -std=c++11 -emit-pch -o %t %s
1209 … RUN: %clang_cc1 -DOMP60 -fopenmp -fopenmp-version=60 -std=c++11 -include-pch %t -verify -Wno-vla …
1211 // RUN: %clang_cc1 -DOMP60 -verify -Wno-vla -fopenmp-simd -fopenmp-version=60 -ast-print %s | FileC…
1212 // RUN: %clang_cc1 -DOMP60 -fopenmp-simd -fopenmp-version=60 -x c++ -std=c++11 -emit-pch -o %t %s
1213 …UN: %clang_cc1 -DOMP60 -fopenmp-simd -fopenmp-version=60 -std=c++11 -include-pch %t -verify -Wno-v…
1219 #pragma omp target map(from always: i) in tmain()
1221 #pragma omp target map(from, close: i) in tmain()
1223 #pragma omp target map(always,close: i) in tmain()
1228 //OMP60-NEXT: T i;
1229 //OMP60-NEXT: #pragma omp target map(always,from: i)
1230 //OMP60-NEXT: foo();
1231 //OMP60-NEXT: #pragma omp target map(close,from: i)
1232 //OMP60-NEXT: foo();
1233 //OMP60-NEXT: #pragma omp target map(always,close,tofrom: i)
1234 //OMP60-NEXT: foo();
1235 //OMP60-NEXT: return 0;
1236 //OMP60-NEXT:}
1238 //OMP60-NEXT: int i;
1239 //OMP60-NEXT: #pragma omp target map(always,from: i)
1240 //OMP60-NEXT: foo();
1241 //OMP60-NEXT: #pragma omp target map(close,from: i)
1242 //OMP60-NEXT: foo();
1243 //OMP60-NEXT: #pragma omp target map(always,close,tofrom: i)
1244 //OMP60-NEXT: foo();
1245 //OMP60-NEXT: return 0;
1246 //OMP60-NEXT:}
1248 //OMP60-NEXT: char i;
1249 //OMP60-NEXT: #pragma omp target map(always,from: i)
1250 //OMP60-NEXT: foo();
1251 //OMP60-NEXT: #pragma omp target map(close,from: i)
1252 //OMP60-NEXT: foo();
1253 //OMP60-NEXT: #pragma omp target map(always,close,tofrom: i)
1254 //OMP60-NEXT: foo();
1255 //OMP60-NEXT: return 0;
1256 //OMP60-NEXT:}
1264 // RUN: %clang_cc1 -DOMPX -verify -Wno-vla -fopenmp -fopenmp-extensions -ast-print %s | FileCheck %…
1265 // RUN: %clang_cc1 -DOMPX -fopenmp -fopenmp-extensions -x c++ -std=c++11 -emit-pch -o %t %s
1266 …/ RUN: %clang_cc1 -DOMPX -fopenmp -fopenmp-extensions -std=c++11 -include-pch %t -verify -Wno-vla …
1268 // RUN: %clang_cc1 -DOMPX -verify -Wno-vla -fopenmp-simd -fopenmp-extensions -ast-print %s | FileCh…
1269 // RUN: %clang_cc1 -DOMPX -fopenmp-simd -fopenmp-extensions -x c++ -std=c++11 -emit-pch -o %t %s
1270 …UN: %clang_cc1 -DOMPX -fopenmp-simd -fopenmp-extensions -std=c++11 -include-pch %t -verify -Wno-vl…
1277 #pragma omp target map(ompx_hold,alloc: i) in tmain()
1279 #pragma omp target map(ompx_hold from: i) in tmain()
1281 #pragma omp target map(ompx_hold) in tmain()
1283 #pragma omp target map(ompx_hold,i) in tmain()
1289 // OMPX-NEXT: T i, ompx_hold;
1290 // OMPX-NEXT: #pragma omp target map(ompx_hold,alloc: i)
1291 // OMPX-NEXT: foo()
1292 // OMPX-NEXT: #pragma omp target map(ompx_hold,from: i)
1293 // OMPX-NEXT: foo()
1294 // OMPX-NEXT: #pragma omp target map(tofrom: ompx_hold)
1295 // OMPX-NEXT: {
1296 // OMPX-NEXT: ompx_hold++;
1297 // OMPX-NEXT: }
1298 // OMPX-NEXT: #pragma omp target map(tofrom: ompx_hold,i)
1299 // OMPX-NEXT: {
1300 // OMPX-NEXT: ompx_hold++;
1301 // OMPX-NEXT: i++;
1302 // OMPX-NEXT: }
1304 // OMPX-LABEL: int main(int argc, char **argv) {
1305 // OMPX-NEXT: int i, ompx_hold;
1306 // OMPX-NEXT: #pragma omp target map(ompx_hold,alloc: i)
1307 // OMPX-NEXT: foo();
1308 // OMPX-NEXT: #pragma omp target map(ompx_hold,from: i)
1309 // OMPX-NEXT: foo();
1310 // OMPX-NEXT: #pragma omp target map(tofrom: ompx_hold)
1311 // OMPX-NEXT: {
1312 // OMPX-NEXT: ompx_hold++;
1313 // OMPX-NEXT: }
1314 // OMPX-NEXT: #pragma omp target map(tofrom: ompx_hold,i)
1315 // OMPX-NEXT: {
1316 // OMPX-NEXT: ompx_hold++;
1317 // OMPX-NEXT: i++;
1318 // OMPX-NEXT: }
1321 #pragma omp target map(ompx_hold,alloc: i) in main()
1323 #pragma omp target map(ompx_hold from: i) in main()
1325 #pragma omp target map(ompx_hold) in main()
1327 #pragma omp target map(ompx_hold,i) in main()