https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117774
Bug ID: 117774 Summary: ICE passing imaginary part of complex array to assumed rank dummy Product: gcc Version: 14.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: neil.n.carlson at gmail dot com Target Milestone: --- In the following example the compiler segfaults on the line where the imaginary part of a complex array is passed to an assumed-rank dummy argument. Interestingly it has no problem with passing the real part. module mod contains subroutine foo(r) real, intent(in) :: r(..) ! ASSUMED-RANK DUMMY end subroutine end module use mod complex :: x(3,10) call foo(x%re) ! COMPILES WITHOUT ERROR call foo(x%im) ! INTERNAL COMPILER ERROR end The traceback: $ gfortran gfortran-20241125.f90 gfortran-20241125.f90:11:40: 11 | call foo(x%im) ! INTERNAL COMPILER ERROR | 1 internal compiler error: Segmentation fault 0xdff61f crash_signal ../../gcc/toplev.cc:319 0x8ae07b gfc_conv_procedure_call(gfc_se*, gfc_symbol*, gfc_actual_arglist*, gfc_expr*, vec<tree_node*, va_gc, vl_embed>*) ../../gcc/fortran/trans-expr.cc:7149 0x8f8362 gfc_trans_call(gfc_code*, bool, tree_node*, tree_node*, bool) ../../gcc/fortran/trans-stmt.cc:425 0x870edb trans_code ../../gcc/fortran/trans.cc:2431 0x8a0ea4 gfc_generate_function_code(gfc_namespace*) ../../gcc/fortran/trans-decl.cc:7880 0x812d46 translate_all_program_units ../../gcc/fortran/parse.cc:7099 0x812d46 gfc_parse_file() ../../gcc/fortran/parse.cc:7413 0x86dc6f gfc_be_parse_file ../../gcc/fortran/f95-lang.cc:241