https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103634
Bug ID: 103634
Summary: Runtime crash with PACK on zero-sized arrays
Product: gcc
Version: 12.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: fortran
Assignee: unassigned at gcc dot gnu.org
Reporter: anlauf at gcc dot gnu.org
Target Milestone: ---
I thought we had fixed this one (see PR31001), but maybe not completely:
program p
implicit none
type t
real :: r(24) = -99.
end type
type(t), allocatable :: new(:), old(:)
logical, allocatable :: mask(:)
integer :: n, m
! m = 1 ! works
m = 0 ! fails
allocate (old(m), mask(m))
mask(:) = .false.
n = count (mask)
allocate (new(n))
new(:) = pack (old, mask)
print *, size (new)
end
% ./a.out
Program received signal SIGSEGV: Segmentation fault - invalid memory reference.
Backtrace for this error:
#0 0x151ef209949f in ???
#1 0x151ef2e263e0 in pack_internal
at ../../../gcc-trunk/libgfortran/intrinsics/pack_generic.c:182
#2 0x401194 in p
at /home/anlauf/gcc-bugs/pack-bug.f90:15
#3 0x401255 in main
at /home/anlauf/gcc-bugs/pack-bug.f90:17