1! { dg-do run }
2! Tests the fix for PR33888, in which the character length of
3! the elemental function myfunc was not being calculated before
4! the temporary for the array result was allocated.
5!
6! Contributed by Walter Spector <w6ws@earthlink.net>
7!
8program ftn95bug
9  implicit none
10
11  character(8) :: indata(4) =  &
12              (/ '12344321', '98766789', 'abcdefgh', 'ABCDEFGH' /)
13
14  call process (myfunc (indata))  ! <- This caused a gfortran ICE !
15
16contains
17
18  elemental function myfunc (s)
19    character(*), intent(in) :: s
20    character(len (s)) :: myfunc
21
22    myfunc = s
23
24  end function
25
26  subroutine process (strings)
27    character(*), intent(in) :: strings(:)
28
29    if (any (strings .ne. indata)) STOP 1
30
31  end subroutine
32
33end program
34