Hi, the following legal program crashes with a segfault at runtime:
program gfcbug60 implicit none integer :: i, j integer, allocatable :: mm(:) logical, allocatable :: mask(:) do i = 1, 0, -1 print *, "i =", j allocate (mm(i), mask(i)) mm(:) = 1 mask(:) = (mm == 0) j = count (mask) print *, "j =", j print *, "mm =", mm print *, "mask =", mask ! gfortran runtime crash for i=j=0: bug in pack for 0-sized arrays! print *, "pack (mm, mask) =", pack (mm, mask) deallocate (mm, mask) print * end do end program gfcbug60 % gfc gfcbug60.f90 && ./a.out i = 0 j = 0 mm = 1 mask = F pack (mm, mask) = i = 0 j = 0 mm = mask = Segmentation fault (core dumped) -- Summary: PACK crashes on zero-sized arrays Product: gcc Version: 4.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libfortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: anlauf at gmx dot de GCC host triplet: i686-pc-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31001