37 lines
800 B
Fortran
37 lines
800 B
Fortran
|
! { dg-do compile }
|
||
|
!
|
||
|
! PR fortran/38095
|
||
|
!
|
||
|
! Contributed by Vivek Rao
|
||
|
!
|
||
|
! Compiling the program below gave an ICE
|
||
|
!
|
||
|
module bar
|
||
|
implicit none
|
||
|
contains
|
||
|
elemental function trim_append(xx,yy) result(xy)
|
||
|
character (len=*), intent(in) :: xx,yy
|
||
|
character (len=len(xx) + len(yy)) :: xy
|
||
|
xy = trim(xx) // yy
|
||
|
end function trim_append
|
||
|
function same(xx) result(yy)
|
||
|
character (len=*), intent(in) :: xx(:)
|
||
|
character (len=len(xx)) :: yy(size(xx))
|
||
|
yy = [xx]
|
||
|
end function same
|
||
|
subroutine foo(labels)
|
||
|
character (len=*), intent(in) :: labels(:)
|
||
|
print*,"size(labels)=",size(labels)
|
||
|
end subroutine foo
|
||
|
subroutine xmain()
|
||
|
call foo(trim_append(["a"],same(["b"])))
|
||
|
end subroutine xmain
|
||
|
end module bar
|
||
|
|
||
|
program main
|
||
|
use bar
|
||
|
call xmain()
|
||
|
end program main
|
||
|
|
||
|
! { dg-final { cleanup-modules "bar" } }
|