| ! RUN: %python %S/test_errors.py %s %flang_fc1 -fopenacc |
| |
| subroutine implicitDeviceInSameFile(v) |
| real, device :: v(10) |
| end |
| |
| subroutine implicitNonDeviceInSameFile(v) |
| real :: v(10) |
| end |
| |
| program p |
| real, device :: dev(10) |
| real :: host(10) |
| interface |
| subroutine explicitDevice(v) |
| real, device :: v(10) |
| end |
| subroutine explicitNonDevice(v) |
| real :: v(10) |
| end |
| end interface |
| !WARNING: Actual argument 'dev' with CUDA data attributes should be passed via an explicit interface [-Wcuda-usage] |
| call implicit1(dev) |
| call implicit2(host) |
| !WARNING: Actual argument 'dev' with CUDA data attributes should be passed via an explicit interface [-Wcuda-usage] |
| call implicitDeviceInSameFile(dev) |
| !WARNING: If the procedure's interface were explicit, this reference would be in error [-Wknown-bad-implicit-interface] |
| !BECAUSE: dummy argument 'v=' has ATTRIBUTES(DEVICE) but its associated actual argument has no CUDA data attribute |
| call implicitDeviceInSameFile(host) |
| !WARNING: If the procedure's interface were explicit, this reference would be in error [-Wknown-bad-implicit-interface] |
| !BECAUSE: dummy argument 'v=' has no CUDA data attribute but its associated actual argument has ATTRIBUTES(DEVICE) |
| call implicitNonDeviceInSameFile(dev) |
| call implicitNonDeviceInSameFile(host) |
| call explicitDevice(dev) |
| !ERROR: dummy argument 'v=' has ATTRIBUTES(DEVICE) but its associated actual argument has no CUDA data attribute |
| call explicitDevice(host) |
| !ERROR: dummy argument 'v=' has no CUDA data attribute but its associated actual argument has ATTRIBUTES(DEVICE) |
| call explicitNonDevice(dev) |
| call explicitNonDevice(host) |
| end |