>From a posting 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 $ gfortran foo.f90 $ ./a.out Fortran runtime error: Attempt to allocate a negative amount of memory. $ gfortran -v Using built-in specs. Target: i686-pc-linux-gnu Configured with: ../../gcc/trunk/configure --prefix=/home/ig25 --enable-languages=c,fortran Thread model: posix gcc version 4.2.0 20060525 (experimental)
I'm looking into this. -- Summary: Wrong allocation for zero-sized function result Product: gcc Version: 4.2.0 Status: UNCONFIRMED Keywords: wrong-code Severity: normal Priority: P3 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: tkoenig at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27980