! { dg-do compile } ! ! Test the fix for PR87239 in which the call to the elemental function ! 'gettwo' was being added before the scalarization loop in the assignment. ! Since the result temporary was being declared in the loop body, this ! drove the gimplifier crazy. It is sufficient to compile this testcase ! since it used to ICE. ! ! Contributed by Juergen Reuter ! module test implicit none contains elemental function gettwo( s ) result( res ) character(*), intent(in) :: s character(len(s)) :: res res = s( 1 : 2 ) endfunction gettwo endmodule test program main use test implicit none character(10) :: inp( 5 ) integer :: i ! character(10), allocatable :: out(:) ! this works character(:), allocatable :: out(:) ! this was stuffed inp = [ 'aaa', 'bbb', 'ccc', 'ddd', 'eee' ] out = gettwo( inp ) do i = 1, size (out, 1) if (trim (out(i)) .ne. inp(i)(1:2)) stop 1 end do endprogram main