Changed between 20210314 and 20210328 : $ cat z1.f90 subroutine s1 (x) character(*) :: x(*)[*] end $ cat z2.f90 subroutine s2 (x) character(*), dimension(*), codimension[*] :: x integer :: i i = len(x) end $ gfortran-11-20210314 -c z1.f90 -fcoarray=lib $ gfortran-11-20210314 -c z1.f90 -fcoarray=single $ gfortran-11-20210328 -c z1.f90 -fcoarray=single $ $ gfortran-11-20210328 -c z1.f90 -fcoarray=lib z1.f90:1:13: 1 | subroutine s1 (x) | 1 internal compiler error: Segmentation fault 0xc09d4f crash_signal ../../gcc/toplev.c:327 0x754ed9 create_function_arglist ../../gcc/fortran/trans-decl.c:2838 0x75a153 gfc_create_function_decl(gfc_namespace*, bool) ../../gcc/fortran/trans-decl.c:3089 0x7603b6 gfc_generate_function_code(gfc_namespace*) ../../gcc/fortran/trans-decl.c:6778 0x6e5de6 translate_all_program_units ../../gcc/fortran/parse.c:6351 0x6e5de6 gfc_parse_file() ../../gcc/fortran/parse.c:6620 0x7320ef gfc_be_parse_file ../../gcc/fortran/f95-lang.c:212
Related variants : $ cat z3.f90 subroutine s3 (x, y) character(*), dimension(:) :: x[*] character(*) :: y end $ cat z4.f90 subroutine s4 (x, y, z) character(*), dimension(:) :: x[2, *] character(*), dimension(*) :: y character(*) :: z end $ gfortran-11-20210328 -c z3.f90 -fcoarray=lib z3.f90:1:13: 1 | subroutine s3 (x, y) | 1 internal compiler error: Segmentation fault 0xc09d4f crash_signal ../../gcc/toplev.c:327 0x754bd9 create_function_arglist ../../gcc/fortran/trans-decl.c:2625 #... $ gfortran-11-20210328 -c z4.f90 -fcoarray=lib z4.f90:1:13: 1 | subroutine s4 (x, y, z) | 1 internal compiler error: in create_function_arglist, at fortran/trans-decl.c:2628 0x75539e create_function_arglist ../../gcc/fortran/trans-decl.c:2628 #...
Confirmed.
The ICE happens in Program received signal SIGSEGV, Segmentation fault. create_function_arglist (sym=<optimized out>) at ../../gcc-trunk/gcc/fortran/trans-decl.c:2838 2838 hidden_typelist = TREE_CHAIN (hidden_typelist); (gdb) git blame points to: commit 212f4988f37ccf788c8c72b1dc952980bc9be3b7 Author: Tobias Burnus <tobias@codesourcery.com> Date: Tue Mar 23 15:45:36 2021 +0100 Fortran: Fix func decl mismatch [PR93660] Adding Tobias.
GCC 10.3 is being released, retargeting bugs to GCC 10.4.
The master branch has been updated by Tobias Burnus <burnus@gcc.gnu.org>: https://gcc.gnu.org/g:d31f485dedc86773152d0384bc6ba5583b259a42 commit r11-8076-gd31f485dedc86773152d0384bc6ba5583b259a42 Author: Tobias Burnus <tobias@codesourcery.com> Date: Fri Apr 9 10:18:24 2021 +0200 Fortran: Fix fndecl with -fcoarray=lib [PR99817] gcc/fortran/ChangeLog: PR fortran/99817 * trans-types.c (gfc_get_function_type): Also generate hidden coarray argument for character arguments. gcc/testsuite/ChangeLog: PR fortran/99817 * gfortran.dg/coarray/dummy_2.f90: New test.
The releases/gcc-10 branch has been updated by Tobias Burnus <burnus@gcc.gnu.org>: https://gcc.gnu.org/g:e976dc67ac5b0f6e9ea5e7e0e4f99c40e5abcd28 commit r10-9697-ge976dc67ac5b0f6e9ea5e7e0e4f99c40e5abcd28 Author: Tobias Burnus <tobias@codesourcery.com> Date: Fri Apr 9 10:18:24 2021 +0200 Fortran: Fix fndecl with -fcoarray=lib [PR99817] gcc/fortran/ChangeLog: PR fortran/99817 * trans-types.c (gfc_get_function_type): Also generate hidden coarray argument for character arguments. gcc/testsuite/ChangeLog: PR fortran/99817 * gfortran.dg/coarray/dummy_2.f90: New test. (cherry picked from commit d31f485dedc86773152d0384bc6ba5583b259a42)
FIXED (GCC 10+mainline/11) - thanks for the report. Unfortunately, it (just) did miss the GCC 10.3 release.