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

            Bug ID: 82923
           Summary: Automatic allocation of deferred length character
                    using function result
           Product: gcc
           Version: 7.2.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: werner.blokbuster at gmail dot com
  Target Milestone: ---

I can't believe that this isn't a duplicate although I can't find it. The
following code gives an ICE for me on gfortran 7.2, if the line
mine=getchars(2,4) is included:


module m
    implicit none
contains
    function getchars(my_len,my_size)
        integer, intent(in) :: my_len, my_size
        character(my_len) :: getchars(my_size)
            getchars = 'A-'
    end function getchars
end module m

program testca

    use m, only: getchars
    implicit none
    character(:), allocatable :: mine(:)

    ! this works:
    write(*,*) getchars(2,4)
    write(*,*) len(getchars(2,4))
    write(*,*) size(getchars(2,4))

    ! this works:
    mine = [character(2) :: 'A-','A-']
    write(*,*) mine

    ! ICE occurs if this line is included:
    mine = getchars(2,4)

end program testca

WB

Reply via email to