| ! RUN: %python %S/../test_errors.py %s %flang_fc1 |
| |
| ! Test case 1: Device arrays with ignore_tkr(c) |
| subroutine test_device_arrays() |
| interface bar |
| subroutine bar1(a) |
| !dir$ ignore_tkr(c) a |
| real :: a(..) |
| !@cuf attributes(device) :: a |
| end subroutine |
| end interface |
| |
| integer :: n = 10, k = 2 |
| real, device :: a(10), b(10), c(10) |
| |
| call bar(a(1:n)) ! Should not warn about contiguity |
| call bar(b(1:n:k)) ! Should not warn about contiguity |
| call bar(c(1:n:2)) ! Should not warn about contiguity |
| end subroutine |
| |
| ! Test case 2: Managed arrays with ignore_tkr(c) |
| subroutine test_managed_arrays() |
| interface bar |
| subroutine bar1(a) |
| !dir$ ignore_tkr(c) a |
| real :: a(..) |
| !@cuf attributes(device) :: a |
| end subroutine |
| end interface |
| |
| integer :: n = 10, k = 2 |
| real, managed :: a(10), b(10), c(10) |
| |
| call bar(a(1:n)) ! Should not warn about contiguity |
| call bar(b(1:n:k)) ! Should not warn about contiguity |
| call bar(c(1:n:2)) ! Should not warn about contiguity |
| end subroutine |
| |
| program main |
| call test_device_arrays() |
| call test_managed_arrays() |
| end program |