https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85566
Bug ID: 85566
Summary: LEN() intrinsic returns zero when given zero-sized
array
Product: gcc
Version: 6.4.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: fortran
Assignee: unassigned at gcc dot gnu.org
Reporter: urbanjost at comcast dot net
Target Milestone: ---
The following code returns "10,0" instead of "10,20"
program test_len
character(len=:), allocatable :: arr(:)
arr=[ character(len=10)::'A','B']
write(*,*)len(arr) ! gets "10", which is what I expect
arr=[ character(len=20)::]
write(*,*)len(arr) ! gets "0", but I think it should get "20"
end program test_len
That is, when passed a zero-length array the LEN(3f) intrinsic appears to
always report a value of zero(0). Even if the array is of zero size it still
has a length defined for the elments, and I believe it should return that,
not zero.