re PR middle-end/68733 (FAIL: libgomp.c/target-29.c (internal compiler error))
[gcc.git] / gcc / testsuite / c-c++-common / gomp / clauses-2.c
1 /* { dg-skip-if "PR 68733" { hppa*-*-hpux* && { ! lp64 } } } */
2 struct S { int r; int *s; int t[10]; };
3 void bar (int *);
4
5 void
6 foo (int *p, int q, struct S t, int i, int j, int k, int l)
7 {
8 #pragma omp target map (q), firstprivate (q) /* { dg-error "appears both in data and map clauses" } */
9 bar (&q);
10 #pragma omp target map (p[0]) firstprivate (p) /* { dg-error "appears more than once in data clauses" } */
11 bar (p);
12 #pragma omp target firstprivate (p), map (p[0]) /* { dg-error "appears more than once in data clauses" } */
13 bar (p);
14 #pragma omp target map (p[0]) map (p) /* { dg-error "appears both in data and map clauses" } */
15 bar (p);
16 #pragma omp target map (p) , map (p[0]) /* { dg-error "appears both in data and map clauses" } */
17 bar (p);
18 #pragma omp target map (q) map (q) /* { dg-error "appears more than once in map clauses" } */
19 bar (&q);
20 #pragma omp target map (p[0]) map (p[0]) /* { dg-error "appears more than once in data clauses" } */
21 bar (p);
22 #pragma omp target map (t) map (t.r) /* { dg-error "appears more than once in map clauses" } */
23 bar (&t.r);
24 #pragma omp target map (t.r) map (t) /* { dg-error "appears more than once in map clauses" } */
25 bar (&t.r);
26 #pragma omp target map (t.r) map (t.r) /* { dg-error "appears more than once in map clauses" } */
27 bar (&t.r);
28 #pragma omp target firstprivate (t), map (t.r) /* { dg-error "appears both in data and map clauses" } */
29 bar (&t.r);
30 #pragma omp target map (t.r) firstprivate (t) /* { dg-error "appears both in data and map clauses" } */
31 bar (&t.r);
32 #pragma omp target map (t.s[0]) map (t) /* { dg-error "appears more than once in map clauses" } */
33 bar (t.s);
34 #pragma omp target map (t) map(t.s[0]) /* { dg-error "appears more than once in map clauses" } */
35 bar (t.s);
36 #pragma omp target firstprivate (t) map (t.s[0]) /* { dg-error "appears both in data and map clauses" } */
37 bar (t.s);
38 #pragma omp target map (t.s[0]) firstprivate (t) /* { dg-error "appears both in data and map clauses" } */
39 bar (t.s);
40 #pragma omp target map (t.s[0]) map (t.s[2]) /* { dg-error "appears more than once in map clauses" } */
41 bar (t.s);
42 #pragma omp target map (t.t[0:2]) map (t.t[4:6]) /* { dg-error "appears more than once in map clauses" } */
43 bar (t.t);
44 #pragma omp target map (t.t[i:j]) map (t.t[k:l]) /* { dg-error "appears more than once in map clauses" } */
45 bar (t.t);
46 #pragma omp target map (t.s[0]) map (t.r)
47 bar (t.s);
48 #pragma omp target map (t.r) ,map (t.s[0])
49 bar (t.s);
50 #pragma omp target map (t.r) map (t) map (t.s[0]) firstprivate (t) /* { dg-error "appears both in data and map clauses" } */
51 bar (t.s);
52 #pragma omp target map (t) map (t.r) firstprivate (t) map (t.s[0]) /* { dg-error "appears both in data and map clauses" } */
53 bar (t.s); /* { dg-error "appears more than once in map clauses" "" { target *-*-* } .-1 } */
54 }