https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103608
Bug ID: 103608 Summary: ICE in do_intent, at fortran/frontend-passes.c:3035 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: --- Affects versions down to at least r5 : (gcc configured with --enable-checking=yes) $ cat z1.f90 program p integer :: i, x x(*) = 0 do i = 1, 2 call s(x(i)) end do end $ cat z2.f90 program p integer :: i, x x(*) = 0 do i = 1, 2 print *, x(i) end do end $ cat z3.f90 program p integer :: i, x x(*) = 0 print *, (x(i), i=1,2) end $ gfortran-12-20211205 -c z1.f90 z1.f90:2:18: 2 | integer :: i, x | 1 Error: Alternate return specifier in function 'x' at (1) is not allowed z1.f90:5:13: 5 | call s(x(i)) | 1 Error: Missing alternate return specifier in subroutine call at (1) f951: internal compiler error: Segmentation fault 0xf0b99f crash_signal ../../gcc/toplev.c:322 0x9564d5 do_intent ../../gcc/fortran/frontend-passes.c:3035 0x9564d5 do_function ../../gcc/fortran/frontend-passes.c:2699 0x952495 gfc_expr_walker(gfc_expr**, int (*)(gfc_expr**, int*, void*), void*) ../../gcc/fortran/frontend-passes.c:5223 0x9554f3 gfc_code_walker(gfc_code**, int (*)(gfc_code**, int*, void*), int (*)(gfc_expr**, int*, void*), void*) ../../gcc/fortran/frontend-passes.c:5392 0x954697 gfc_code_walker(gfc_code**, int (*)(gfc_code**, int*, void*), int (*)(gfc_expr**, int*, void*), void*) ../../gcc/fortran/frontend-passes.c:5669 0x95570b doloop_warn ../../gcc/fortran/frontend-passes.c:3059 0x955c5a gfc_run_passes(gfc_namespace*) ../../gcc/fortran/frontend-passes.c:156 0x856467 gfc_resolve(gfc_namespace*) ../../gcc/fortran/resolve.c:17572 0x83e764 resolve_all_program_units ../../gcc/fortran/parse.c:6586 0x83e764 gfc_parse_file() ../../gcc/fortran/parse.c:6842 0x88c73f gfc_be_parse_file ../../gcc/fortran/f95-lang.c:216