annotate gcc/testsuite/c-c++-common/gomp/declare-target-3.c @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents
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-do compile } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
2 /* { dg-options "-fopenmp" } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
3
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
4 #pragma omp declare target
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
5 int a[] = { 1, 2, 3 };
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
6 extern int b[]; /* { dg-error "'b' in declare target directive does not have mappable type" } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
7 extern int c[]; /* { dg-error "'c' in declare target directive does not have mappable type" } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
8 extern int d[]; /* { dg-error "'d' in declare target directive does not have mappable type" } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
9 int d[3];
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
10 #pragma omp end declare target
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
11 int c[3];
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
12 int e[] = { 1, 2, 3 };
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
13 #pragma omp declare target to (e)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
14 extern int f[];
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
15 #pragma omp declare target to (f) /* { dg-error "'f' does not have a mappable type in 'to' clause" } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
16 extern int g[];
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
17 #pragma omp declare target to (g) /* { dg-error "'g' does not have a mappable type in 'to' clause" } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
18 int g[3];
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
19 extern int h[];
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
20 int h[3];
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
21 #pragma omp declare target to (h)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
22
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
23 int i[] = { 1, 2, 3 };
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
24 int j[] = { 1, 2, 3 };
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
25 extern int k[];
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
26 extern int l[];
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
27 extern int m[];
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
28 extern int n[];
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
29 extern int o[];
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
30 extern int p[];
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
31 int k[3];
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
32 int l[3];
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
33 int q;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
34
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
35 void
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
36 foo (void)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
37 {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
38 #pragma omp target update to (q) to (i)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
39 #pragma omp target map (tofrom: j)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
40 ;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
41 #pragma omp target update from (q) from (k)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
42 #pragma omp target map (to: l)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
43 ;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
44 #pragma omp target update from (q) from (m) /* { dg-error "'m' does not have a mappable type in 'from' clause" } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
45 #pragma omp target map (from: n) /* { dg-error "'n' does not have a mappable type in 'map' clause" } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
46 ;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
47 #pragma omp target update to (q) to (o) /* { dg-error "'o' does not have a mappable type in 'to' clause" } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
48 #pragma omp target map (from: p) /* { dg-error "'p' does not have a mappable type in 'map' clause" } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
49 ;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
50 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
51
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
52 int o[3];
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
53 int p[3];