| |
| module amod |
| implicit none |
| integer :: b(8) |
| |
| !$acc declare copy (b) ! { dg-error "Invalid clause in module" } |
| !$acc declare copyout (b) ! { dg-error "Invalid clause in module" } |
| !$acc declare present (b) ! { dg-error "Invalid clause in module" } |
| !$acc declare present_or_copy (b) ! { dg-error "Invalid clause in module" } |
| !$acc declare present_or_copyin (b) ! { dg-error "present on multiple" } |
| !$acc declare present_or_copyout (b) ! { dg-error "Invalid clause in module" } |
| !$acc declare present_or_create (b) ! { dg-error "present on multiple" } |
| !$acc declare deviceptr (b) ! { dg-error "Invalid clause in module" } |
| !$acc declare create (b) copyin (b) ! { dg-error "present on multiple" } |
| end module |
| |
| module amod2 |
| contains |
| subroutine asubr (a, b, c, d, e, f, g, h, i, j, k) |
| implicit none |
| integer, dimension(8) :: a, b, c, d, e, f, g, h, i, j, k |
| |
| !$acc declare copy (a) |
| !$acc declare copyout (b) |
| !$acc declare present (c) |
| !$acc declare present_or_copy (d) |
| !$acc declare present_or_copyin (e) |
| !$acc declare present_or_copyout (f) |
| !$acc declare present_or_create (g) |
| !$acc declare deviceptr (h) |
| !$acc declare create (j) copyin (k) |
| end subroutine |
| end module |
| |
| module bmod |
| |
| implicit none |
| integer :: a, b, c, d, e, f, g, h, i |
| common /data1/ a, b, c |
| common /data2/ d, e, f |
| common /data3/ g, h, i |
| !$acc declare link (a) ! { dg-error "element of a COMMON" } |
| !$acc declare link (/data1/) |
| !$acc declare link (a, b, c) ! { dg-error "element of a COMMON" } |
| !$acc declare link (/foo/) ! { dg-error "not found" } |
| !$acc declare device_resident (/data2/) |
| !$acc declare device_resident (/data3/) ! { dg-error "present on multiple clauses" } |
| !$acc declare device_resident (g, h, i) |
| |
| end module |
| |
| subroutine bsubr (foo) |
| implicit none |
| |
| integer, dimension (:) :: foo |
| |
| !$acc declare copy (foo) ! { dg-error "Assumed-size dummy array" } |
| !$acc declare copy (foo(1:2)) ! { dg-error "Assumed-size dummy array" } |
| |
| end subroutine bsubr |
| |
| subroutine multiline |
| integer :: b(8) |
| |
| !$acc declare copyin (b) ! { dg-error "present on multiple clauses" } |
| !$acc declare copyin (b) |
| |
| end subroutine multiline |
| |
| subroutine subarray |
| integer :: c(8) |
| |
| !$acc declare copy (c(1:2)) ! { dg-error "Array sections: 'c' not allowed" } |
| |
| end subroutine subarray |
| |
| program test |
| integer :: a(8) |
| |
| !$acc declare create (a) copyin (a) ! { dg-error "present on multiple clauses" } |
| |
| end program |