Mercurial > hg > CbC > CbC_gcc
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." } */ |