! { 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