blob: 6c75d4f0cf276875f9dad33943a5f913fa5077a1 [file] [log] [blame]
! { dg-do run }
module m
interface
module function f(a, n, b) result(z)
integer, intent(in) :: n
real :: z(n + 1)
real :: a, b
end
end interface
contains
module procedure f
integer :: i
do i = 1, size(z)
z(i) = real(i)
end do
end procedure
end
! Comment 1
module n
interface
module subroutine g(n, z)
integer, intent(in) :: n
real :: z(n)
end
end interface
contains
module procedure g
z = 1
if (int (sum (z)) /= n) stop 1
end procedure
end
use m
use n
real, allocatable :: r(:)
integer :: i = 2
r = f (1.0, i+1, 2.0)
if (any (r .ne. [(real(i), i = 1,4)])) stop 2
if (any (f (3.0, 1, 4.0) .ne. [(real(i), i = 1,2)])) stop 3
r = [(real (i), i = 10,20)]
call g (5, r)
if (int (sum (r)) /= (sum ([(i, i = 15,20)]) + 5)) stop 4
end