Mercurial > hg > CbC > CbC_gcc
comparison gcc/testsuite/g++.dg/goacc/mdc.C @ 145:1830386684a0
gcc-9.2.0
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 11:34:05 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
131:84e7813d76e9 | 145:1830386684a0 |
---|---|
1 /* Test OpenACC's support for manual deep copy, including the attach | |
2 and detach clauses. */ | |
3 | |
4 void | |
5 t1 () | |
6 { | |
7 struct foo { | |
8 int *a, *b, c, d, *e; | |
9 } s; | |
10 | |
11 struct foo& rs = s; | |
12 | |
13 int *a, *z, scalar, **y; | |
14 int* const &ra = a; | |
15 int* const &rz = z; | |
16 int& rscalar = scalar; | |
17 int** const &ry = y; | |
18 | |
19 #pragma acc enter data copyin(rs) detach(rz) /* { dg-error ".detach. is not valid for" } */ | |
20 { | |
21 #pragma acc data copy(rs.a[0:10]) copy(rz[0:10]) | |
22 { | |
23 s.e = z; | |
24 #pragma acc parallel loop attach(rs.e) detach(rs.b) /* { dg-error ".detach. is not valid for" } */ | |
25 for (int i = 0; i < 10; i++) | |
26 s.a[i] = s.e[i]; | |
27 | |
28 a = s.e; | |
29 #pragma acc enter data attach(ra) detach(rs.c) /* { dg-error ".detach. is not valid for" } */ | |
30 #pragma acc exit data detach(ra) | |
31 } | |
32 | |
33 #pragma acc enter data attach(rz[:5]) /* { dg-error "expected single pointer in .attach. clause" } */ | |
34 /* { dg-error "has no data movement clause" "" { target *-*-* } .-1 } */ | |
35 #pragma acc exit data detach(rz[:5]) /* { dg-error "expected single pointer in .detach. clause" } */ | |
36 /* { dg-error "has no data movement clause" "" { target *-*-* } .-1 } */ | |
37 #pragma acc enter data attach(rz[1:]) /* { dg-error "expected single pointer in .attach. clause" } */ | |
38 /* { dg-error "has no data movement clause" "" { target *-*-* } .-1 } */ | |
39 #pragma acc exit data detach(rz[1:]) /* { dg-error "expected single pointer in .detach. clause" } */ | |
40 /* { dg-error "has no data movement clause" "" { target *-*-* } .-1 } */ | |
41 #pragma acc enter data attach(rz[:]) /* { dg-error "expected single pointer in .attach. clause" } */ | |
42 /* { dg-error "has no data movement clause" "" { target *-*-* } .-1 } */ | |
43 #pragma acc exit data detach(rz[:]) /* { dg-error "expected single pointer in .detach. clause" } */ | |
44 /* { dg-error "has no data movement clause" "" { target *-*-* } .-1 } */ | |
45 #pragma acc enter data attach(rz[3]) /* { dg-error "expected pointer in .attach. clause" } */ | |
46 #pragma acc exit data detach(rz[3]) /* { dg-error "expected pointer in .detach. clause" } */ | |
47 | |
48 #pragma acc acc enter data attach(rs.e) | |
49 #pragma acc exit data detach(rs.e) attach(rz) /* { dg-error ".attach. is not valid for" } */ | |
50 | |
51 #pragma acc data attach(rs.e) | |
52 { | |
53 } | |
54 #pragma acc exit data delete(ra) attach(rs.a) /* { dg-error ".attach. is not valid for" } */ | |
55 | |
56 #pragma acc enter data attach(rscalar) /* { dg-error "expected pointer in .attach. clause" } */ | |
57 /* { dg-error "has no data movement clause" "" { target *-*-* } .-1 } */ | |
58 #pragma acc exit data detach(rscalar) /* { dg-error "expected pointer in .detach. clause" } */ | |
59 /* { dg-error "has no data movement clause" "" { target *-*-* } .-1 } */ | |
60 #pragma acc enter data attach(rs) /* { dg-error "expected pointer in .attach. clause" } */ | |
61 /* { dg-error "has no data movement clause" "" { target *-*-* } .-1 } */ | |
62 #pragma acc exit data detach(rs) /* { dg-error "expected pointer in .detach. clause" } */ | |
63 /* { dg-error "has no data movement clause" "" { target *-*-* } .-1 } */ | |
64 } | |
65 | |
66 #pragma acc enter data attach(ry[10]) | |
67 #pragma acc exit data detach(ry[10]) | |
68 } |