https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102620
Bug ID: 102620 Summary: [12 Regression] ICE in gfc_get_array_span, at fortran/trans-array.c:865 Product: gcc Version: 12.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: gs...@t-online.de Target Milestone: --- The result of len(c) or c%len is always a scalar. It can't be an argument of size(x) where x must be an array. Issue started between 20210530 and 20210606 : $ cat z1.f90 program p character(3), allocatable :: y(:) y = ['abc', 'xyz'] call s(y) contains subroutine s(x) character(*) :: x(:) integer :: i print *, [(len_trim(x(i)), i=1,size(x%len))] end end $ cat z1b.f90 program p character(:), allocatable :: y(:) y = ['abc', 'xyz'] call s(y) contains subroutine s(x) character(*) :: x(:) integer :: i print *, [(len_trim(x(i)), i=1,size(x%len))] end end $ gfortran-12-20210530 -c z1.f90 $ $ gfortran-12-20211003 -c z1.f90 z1.f90:9:50: 9 | print *, [(len_trim(x(i)), i=1,size(x%len))] | 1 internal compiler error: in gfc_get_array_span, at fortran/trans-array.c:865 0x84d8aa gfc_get_array_span(tree_node*, gfc_expr*) ../../gcc/fortran/trans-array.c:865 0x8597c0 gfc_conv_expr_descriptor(gfc_se*, gfc_expr*) ../../gcc/fortran/trans-array.c:7739 0x88ce8f gfc_conv_intrinsic_size ../../gcc/fortran/trans-intrinsic.c:8064 0x8a488a gfc_conv_intrinsic_function(gfc_se*, gfc_expr*) ../../gcc/fortran/trans-intrinsic.c:10718 0x87956a gfc_conv_expr(gfc_se*, gfc_expr*) ../../gcc/fortran/trans-expr.c:9066 0x87c443 gfc_conv_expr_val(gfc_se*, gfc_expr*) ../../gcc/fortran/trans-expr.c:9119 0x857580 gfc_trans_array_constructor_value ../../gcc/fortran/trans-array.c:1942 0x85892a trans_array_constructor ../../gcc/fortran/trans-array.c:2769 0x85892a gfc_add_loop_ss_code ../../gcc/fortran/trans-array.c:3049 0x858ff5 gfc_conv_loop_setup(gfc_loopinfo*, locus*) ../../gcc/fortran/trans-array.c:5293 0x8aa9e5 gfc_trans_transfer(gfc_code*) ../../gcc/fortran/trans-io.c:2646 0x84aee7 trans_code ../../gcc/fortran/trans.c:2138 0x8a836e build_dt ../../gcc/fortran/trans-io.c:2026 0x84aec7 trans_code ../../gcc/fortran/trans.c:2110 0x871974 gfc_generate_function_code(gfc_namespace*) ../../gcc/fortran/trans-decl.c:6905 0x871774 gfc_generate_contained_functions ../../gcc/fortran/trans-decl.c:5899 0x871774 gfc_generate_function_code(gfc_namespace*) ../../gcc/fortran/trans-decl.c:6837 0x7f77b6 translate_all_program_units ../../gcc/fortran/parse.c:6572 0x7f77b6 gfc_parse_file() ../../gcc/fortran/parse.c:6841 0x843f3f gfc_be_parse_file ../../gcc/fortran/f95-lang.c:216