blob: 0d352b7f5ca093d1bb430b1402d4f764f819d6f7 [file] [log] [blame]
! { dg-do run }
! PR 62242
! Array constructor with an array element whose value is a
! character function that is described in an interface block and which
! has an assumed-length result
module gfbug
implicit none
INTERFACE
function UpperCase(string) result(upper)
character(*), intent(IN) :: string
character(LEN(string)) :: upper
end function
function f2(string) result(upper)
character(*), intent(IN) :: string
character(5) :: upper
end function
END INTERFACE
contains
subroutine s1
character(5) c
character(5), dimension(1) :: ca
character(5), dimension(1) :: cb
c = "12345"
ca = (/f2(c)/) ! This works
!print *, ca(1)
cb = (/Uppercase(c)/) ! This gets an ICE
if (ca(1) .ne. cb(1)) then
call abort()
end if
!print *, ca(1)
end subroutine
end module gfbug
function UpperCase(string) result(upper)
character(*), intent(IN) :: string
character(LEN(string)) :: upper
upper = string
end function
function f2(string) result(upper)
character(*), intent(IN) :: string
character(5) :: upper
upper = string
end function
program main
use gfbug
call s1
end program