[Fortran] OpenACC – permit common blocks in some clauses
[official-gcc.git] / gcc / testsuite / gfortran.dg / goacc / common-block-2.f90
blob1ba945019f9e8b0a1e3f11e0d7b8b482cda6fbd7
1 ! Test data clauses involving common blocks and common block data.
2 ! Specifically, resolver errors such as duplicate data clauses.
4 program test
5 implicit none
6 integer, parameter :: n = 10
7 integer a(n), b(n), c, d(n), e
8 real*4 x(n), y(n), z, w(n), v
9 common /blockA/ a, c, x
10 common /blockB/ b, y, z
12 !$acc data copy(/blockA/, /blockB/, e, v, a) ! { dg-error "Symbol .a. present on multiple clauses" }
13 !$acc end data
15 !$acc data copyin(/blockA/, /blockB/, e, v, a) ! { dg-error "Symbol .a. present on multiple clauses" }
16 !$acc end data
18 !$acc data copyout(/blockA/, /blockB/, e, v, a) ! { dg-error "Symbol .a. present on multiple clauses" }
19 !$acc end data
21 !$acc data create(/blockA/, /blockB/, e, v, a) ! { dg-error "Symbol .a. present on multiple clauses" }
22 !$acc end data
24 !$acc data copyout(/blockA/, /blockB/, e, v, a) ! { dg-error "Symbol .a. present on multiple clauses" }
25 !$acc end data
27 !$acc data pcopy(/blockA/, /blockB/, e, v, a) ! { dg-error "Symbol .a. present on multiple clauses" }
28 !$acc end data
30 !$acc data pcopyin(/blockA/, /blockB/, e, v, a) ! { dg-error "Symbol .a. present on multiple clauses" }
31 !$acc end data
33 !$acc data pcopyout(/blockA/, /blockB/, e, v, a) ! { dg-error "Symbol .a. present on multiple clauses" }
34 !$acc end data
36 !$acc data pcreate(/blockA/, /blockB/, e, v, a) ! { dg-error "Symbol .a. present on multiple clauses" }
37 !$acc end data
39 !$acc data pcopyout(/blockA/, /blockB/, e, v, a) ! { dg-error "Symbol .a. present on multiple clauses" }
40 !$acc end data
42 !$acc parallel private(/blockA/, /blockB/, e, v, a) ! { dg-error "Symbol .a. present on multiple clauses" }
43 !$acc end parallel
45 !$acc parallel firstprivate(/blockA/, /blockB/, e, v, a) ! { dg-error "Symbol .a. present on multiple clauses" }
46 !$acc update device(b, /blockA/, x) ! { dg-error "Symbol .x. present on multiple clauses" }
47 !$acc update self(z, /blockB/, v) ! { dg-error "Symbol .z. present on multiple clauses" }
48 !$acc update host(/blockA/, c) ! { dg-error "Symbol .c. present on multiple clauses" }
49 !$acc end parallel
51 !$acc enter data copyin(/blockB/, e, v, a, c, y) ! { dg-error "Symbol .y. present on multiple clauses" }
52 !$acc exit data delete(/blockA/, /blockB/, e, v, a) ! { dg-error "Symbol .a. present on multiple clauses" }
53 end program test