comparison gcc/testsuite/c-c++-common/gomp/declare-target-2.c @ 111:04ced10e8804

gcc 7
author kono
date Fri, 27 Oct 2017 22:46:09 +0900
parents
children 1830386684a0
comparison
equal deleted inserted replaced
68:561a7518be6b 111:04ced10e8804
1 /* { dg-do compile } */
2 /* { dg-options "-fopenmp" } */
3
4 extern int a;
5 #pragma omp declare target
6 #pragma omp declare target to (a) /* { dg-error "with clauses in between" } */
7 #pragma omp end declare target
8 int b;
9 #pragma omp declare target to (b) link (b) /* { dg-error "appears more than once on the same .declare target. directive" } */
10 int c;
11 #pragma omp declare target (c)
12 #pragma omp declare target link (c) /* { dg-error "specified both in declare target" } */
13 int foo (void);
14 #pragma omp declare target link (foo) /* { dg-error "is not a variable in clause" } */
15 struct S;
16 extern struct S d[]; /* { dg-error "array type has incomplete element type" "" { target c } } */
17 #pragma omp declare target to (d) /* { dg-error "does not have a mappable type in" } */
18 extern struct S e;
19 #pragma omp declare target link (e) /* { dg-error "does not have a mappable type in" } */
20 extern int f[];
21 #pragma omp declare target to (f) /* { dg-error "does not have a mappable type in" } */
22 int g, h;
23 #pragma omp threadprivate (g, h)
24 #pragma omp declare target to (g) /* { dg-error "is threadprivate variable in" } */
25 #pragma omp declare target link (h) /* { dg-error "is threadprivate variable in" } */
26 int j[10];
27 #pragma omp declare target to (j[0:4]) /* { dg-error "expected" } */
28 int k, l;
29 #pragma omp declare target
30 int m;
31 #pragma omp end declare target
32 #pragma omp declare target to (k)
33 #pragma omp declare target (k)
34 #pragma omp declare target to (k, m) link (l)
35 #pragma omp declare target link (l)
36 int n, o, s, t;
37 #pragma omp declare target to (n) to (n) /* { dg-error "appears more than once on the same .declare target. directive" } */
38 #pragma omp declare target link (o, o) /* { dg-error "appears more than once on the same .declare target. directive" } */
39 #pragma omp declare target (s, t, s) /* { dg-error "appears more than once on the same .declare target. directive" } */
40 int p, q, r;
41 #pragma omp declare target (p) to (q) /* { dg-error "expected end of line before .to." } */
42 #pragma omp declare target to (p) (q) link (r) /* { dg-error "expected .#pragma omp. clause before" } */
43 #pragma omp declare target link (r) (p) /* { dg-error "expected .#pragma omp. clause before" } */
44 #pragma omp declare target
45 #pragma omp end declare target to (p) /* { dg-error "expected end of line before .to." } */