blob: 8bec943f9900607bd806fa1b3a2a7ee30a3b8548 [file] [log] [blame] [edit]
! RUN: %python %S/test_errors.py %s %flang_fc1
interface
subroutine foo(a)
real, device, dimension(:,:) :: a
end
end interface
real, device, allocatable :: a(:,:)
complex, device, allocatable :: z(:,:)
integer :: i = 2, j = 3
allocate(a(10,10))
allocate(z(10,10))
call foo(a) ! ok
call foo(a(:,:)) ! ok
call foo(a(1:10,1:10)) ! ok
!ERROR: actual argument associated with assumed shape/rank device dummy argument 'a=' is known to be discontiguous on its first dimension
call foo(a(1:10:2,1:10))
call foo(a(1:0:2,1:10)) ! empty dimension is ok
call foo(a(1:10:2,1:0)) ! any empty dimension is ok
call foo(a(1:10,1:10:2)) ! discontiguous second dimension is ok
!WARNING: actual argument associated with assumed shape/rank device dummy argument 'a=' is not known to be contiguous on its first dimension
call foo(a(1:10:i,1:10))
!WARNING: actual argument associated with assumed shape/rank device dummy argument 'a=' is not known to be contiguous on its first dimension
call foo(a(1:i:2,1:10))
call foo(a(i:j:1,1:10)) ! stride 1, okay, despite unknown bounds
!WARNING: actual argument associated with assumed shape/rank device dummy argument 'a=' is not known to be contiguous on its first dimension
call foo(a(i:j:-1,1:10))
!ERROR: actual argument associated with assumed shape/rank device dummy argument 'a=' is known to be discontiguous on its first dimension
call foo(z%re)
end