summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gfortran.dg/allocate_zerosize_2.f90
blob: bd6d299f4b6f059dc6dc73a251a01ba14f19bf55 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
! { 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