https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86277

Harald Anlauf <anlauf at gmx dot de> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |anlauf at gmx dot de

--- Comment #2 from Harald Anlauf <anlauf at gmx dot de> ---
Actually, the problem is not related to zero length arrays, but to the
constructor [integer::].  I think this is related to several other PRs.

program test
  implicit none
  integer :: m(0)
  integer, allocatable :: n(:)
  allocate (n(0))
  call i
  call i(m)
  call i(n)
  call i([integer::])       ! expect "optional argument present: T"
  call i([1])
contains
  subroutine i(str)
    integer, dimension(:), optional, intent(in) :: str
    write(6,*) 'optional argument present:', present(str)
  end subroutine i
end program

produces:

 optional argument present: F
 optional argument present: T
 optional argument present: T
 optional argument present: F
 optional argument present: T

Reply via email to