https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87239
Bug ID: 87239
Summary: ICE in deferred-length string
Product: gcc
Version: 9.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: fortran
Assignee: unassigned at gcc dot gnu.org
Reporter: juergen.reuter at desy dot de
Target Milestone: ---
The following code posted on c.l.f. on Apr 28, 2018 leads to an ICE with
gfortran, but it seems this was never posted here:
$ gfortran alloc_string.f90
alloc_string.f90:24:0:
24 | out = gettwo( inp )
|
internal compiler error: in gimplify_var_or_parm_decl, at gimplify.c:2697
with the following code:
!alloc_string.f90
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 )
! character(10), allocatable :: out(:) ! this works
character(:), allocatable :: out(:) ! this is NG
inp = [ 'aaa', 'bbb', 'ccc', 'ddd', 'eee' ]
out = gettwo( inp )
print *, out ! aa bb cc dd ee (with gfortran-7.3 + fixed-length out)
endprogram main