Mercurial > hg > CbC > CbC_gcc
comparison gcc/testsuite/c-c++-common/gomp/map-1.c @ 111:04ced10e8804
gcc 7
author | kono |
---|---|
date | Fri, 27 Oct 2017 22:46:09 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
68:561a7518be6b | 111:04ced10e8804 |
---|---|
1 /* { dg-do compile } */ | |
2 /* { dg-options "-fopenmp" } */ | |
3 | |
4 extern int a[][10], a2[][10]; | |
5 int b[10], c[10][2], d[10], e[10], f[10]; | |
6 int b2[10], c2[10][2], d2[10], e2[10], f2[10]; | |
7 int k[10], l[10], m[10], n[10], o; | |
8 int *p; | |
9 int **q; | |
10 int r[4][4][4][4][4]; | |
11 extern struct s s1; | |
12 extern struct s s2[1]; /* { dg-error "array type has incomplete element type" "" { target c } } */ | |
13 int t[10]; | |
14 #pragma omp threadprivate (t) | |
15 #pragma omp declare target | |
16 void bar (int *); | |
17 #pragma omp end declare target | |
18 | |
19 void | |
20 foo (int g[3][10], int h[4][8], int i[2][10], int j[][9], | |
21 int g2[3][10], int h2[4][8], int i2[2][10], int j2[][9]) | |
22 { | |
23 #pragma omp target map(to: bar[2:5]) /* { dg-error "is not a variable" } */ | |
24 ; | |
25 #pragma omp target map(from: t[2:5]) /* { dg-error "is threadprivate variable" } */ | |
26 ; | |
27 #pragma omp target map(tofrom: k[0.5:]) /* { dg-error "low bound \[^\n\r]* of array section does not have integral type" } */ | |
28 ; | |
29 #pragma omp target map(from: l[:7.5f]) /* { dg-error "length \[^\n\r]* of array section does not have integral type" } */ | |
30 ; | |
31 #pragma omp target map(to: m[p:]) /* { dg-error "low bound \[^\n\r]* of array section does not have integral type" } */ | |
32 ; | |
33 #pragma omp target map(tofrom: n[:p]) /* { dg-error "length \[^\n\r]* of array section does not have integral type" } */ | |
34 ; | |
35 #pragma omp target map(to: o[2:5]) /* { dg-error "does not have pointer or array type" } */ | |
36 ; | |
37 #pragma omp target map(alloc: s1) /* { dg-error "'s1' does not have a mappable type in 'map' clause" } */ | |
38 ; | |
39 #pragma omp target map(alloc: s2) /* { dg-error "'s2' does not have a mappable type in 'map' clause" } */ | |
40 ; | |
41 #pragma omp target map(to: a[:][:]) /* { dg-error "array type length expression must be specified" } */ | |
42 bar (&a[0][0]); /* { dg-error "referenced in target region does not have a mappable type" } */ | |
43 #pragma omp target map(tofrom: b[-1:]) /* { dg-error "negative low bound in array section" } */ | |
44 bar (b); | |
45 #pragma omp target map(tofrom: c[:-3][:]) /* { dg-error "negative length in array section" } */ | |
46 bar (&c[0][0]); | |
47 #pragma omp target map(from: d[11:]) /* { dg-error "low bound \[^\n\r]* above array section size" } */ | |
48 bar (d); | |
49 #pragma omp target map(to: e[:11]) /* { dg-error "length \[^\n\r]* above array section size" } */ | |
50 bar (e); | |
51 #pragma omp target map(to: f[1:10]) /* { dg-error "high bound \[^\n\r]* above array section size" } */ | |
52 bar (f); | |
53 #pragma omp target map(from: g[:][0:10]) /* { dg-error "for pointer type length expression must be specified" } */ | |
54 bar (&g[0][0]); | |
55 #pragma omp target map(from: h[2:1][-1:]) /* { dg-error "negative low bound in array section" } */ | |
56 bar (&h[0][0]); | |
57 #pragma omp target map(tofrom: h[:1][:-3]) /* { dg-error "negative length in array section" } */ | |
58 bar (&h[0][0]); | |
59 #pragma omp target map(i[:1][11:]) /* { dg-error "low bound \[^\n\r]* above array section size" } */ | |
60 bar (&i[0][0]); | |
61 #pragma omp target map(from: j[3:1][:10]) /* { dg-error "length \[^\n\r]* above array section size" } */ | |
62 bar (&j[0][0]); | |
63 #pragma omp target map(to: j[30:1][5:5]) /* { dg-error "high bound \[^\n\r]* above array section size" } */ | |
64 bar (&j[0][0]); | |
65 #pragma omp target map(to: a2[:1][2:4]) | |
66 bar (&a2[0][0]); | |
67 #pragma omp target map(a2[3:5][:]) | |
68 bar (&a2[0][0]); | |
69 #pragma omp target map(to: a2[3:5][:10]) | |
70 bar (&a2[0][0]); | |
71 #pragma omp target map(tofrom: b2[0:]) | |
72 bar (b2); | |
73 #pragma omp target map(tofrom: c2[:3][:]) | |
74 bar (&c2[0][0]); | |
75 #pragma omp target map(from: d2[9:]) | |
76 bar (d2); | |
77 #pragma omp target map(to: e2[:10]) | |
78 bar (e2); | |
79 #pragma omp target map(to: f2[1:9]) | |
80 bar (f2); | |
81 #pragma omp target map(g2[:1][2:4]) | |
82 bar (&g2[0][0]); | |
83 #pragma omp target map(from: h2[2:2][0:]) | |
84 bar (&h2[0][0]); | |
85 #pragma omp target map(tofrom: h2[:1][:3]) | |
86 bar (&h2[0][0]); | |
87 #pragma omp target map(to: i2[:1][9:]) | |
88 bar (&i2[0][0]); | |
89 #pragma omp target map(from: j2[3:4][:9]) | |
90 bar (&j2[0][0]); | |
91 #pragma omp target map(to: j2[30:1][5:4]) | |
92 bar (&j2[0][0]); | |
93 #pragma omp target map(q[1:2]) | |
94 ; | |
95 #pragma omp target map(tofrom: q[3:5][:10]) /* { dg-error "array section is not contiguous" } */ | |
96 ; | |
97 #pragma omp target map(r[3:][2:1][1:2]) | |
98 ; | |
99 #pragma omp target map(r[3:][2:1][1:2][:][0:4]) | |
100 ; | |
101 #pragma omp target map(r[3:][2:1][1:2][1:][0:4]) /* { dg-error "array section is not contiguous" } */ | |
102 ; | |
103 #pragma omp target map(r[3:][2:1][1:2][:3][0:4]) /* { dg-error "array section is not contiguous" } */ | |
104 ; | |
105 #pragma omp target map(r[3:][2:1][1:2][:][1:]) /* { dg-error "array section is not contiguous" } */ | |
106 ; | |
107 #pragma omp target map(r[3:][2:1][1:2][:][:3]) /* { dg-error "array section is not contiguous" } */ | |
108 ; | |
109 } |