24 lines
685 B
Fortran
24 lines
685 B
Fortran
! { dg-do run }
|
|
! PR 27980 - We used to allocate negative amounts of memory
|
|
! for functions returning arrays if lbound > ubound-1.
|
|
! Based on a test case by beliavsky@aol.com posted to
|
|
! comp.lang.fortran.
|
|
program xint_func
|
|
implicit none
|
|
integer, parameter :: n=3,ii(n)=(/2,0,-1/)
|
|
integer :: i
|
|
character(len=80) :: line
|
|
do i=1,n
|
|
write (line,'(10I5)') int_func(ii(i))
|
|
end do
|
|
contains
|
|
function int_func(n) result(ivec)
|
|
integer, intent(in) :: n
|
|
integer :: ivec(n)
|
|
integer :: i
|
|
if (n > 0) then
|
|
forall (i=1:n) ivec(i) = i
|
|
end if
|
|
end function int_func
|
|
end program xint_func
|