Affects version 7 (configured with --enable-checking=yes) since about 20160904 : $ cat z1.f90 program p type t end type type(t) :: z interface write(formatted) module procedure wf end interface print *, z end $ gfortran-7-20161127 z1.f90 z1.f90:6:23: module procedure wf 1 Error: Procedure 'wf' in generic interface '_dtio_formatted_write' at (1) is neither function nor subroutine f951: internal compiler error: Segmentation fault 0xc4532f crash_signal ../../gcc/toplev.c:333 0x69ff6d gfc_find_specific_dtio_proc(gfc_symbol*, bool, bool) ../../gcc/fortran/interface.c:4939 0x6fa32b resolve_transfer ../../gcc/fortran/resolve.c:8973 0x6fa32b gfc_resolve_code(gfc_code*, gfc_namespace*) ../../gcc/fortran/resolve.c:11138 0x6f8c07 gfc_resolve_blocks(gfc_code*, gfc_namespace*) ../../gcc/fortran/resolve.c:9865 0x6f903b gfc_resolve_code(gfc_code*, gfc_namespace*) ../../gcc/fortran/resolve.c:10808 0x6fba22 resolve_codes ../../gcc/fortran/resolve.c:16025 0x6fbb1e gfc_resolve(gfc_namespace*) ../../gcc/fortran/resolve.c:16060 0x6e609a resolve_all_program_units ../../gcc/fortran/parse.c:5977 0x6e609a gfc_parse_file() ../../gcc/fortran/parse.c:6224 0x729ee2 gfc_be_parse_file ../../gcc/fortran/f95-lang.c:202
This is a regression. gfortran 6 does not support DTIO and shows no ICE.
Author: janus Date: Wed Nov 30 09:50:04 2016 New Revision: 243005 URL: https://gcc.gnu.org/viewcvs?rev=243005&root=gcc&view=rev Log: 2016-11-30 Janus Weil <janus@gcc.gnu.org> PR fortran/78592 * interface.c (gfc_find_specific_dtio_proc): Rearrange code to avoid dereferencing a null pointer. 2016-11-30 Janus Weil <janus@gcc.gnu.org> PR fortran/78592 * gfortran.dg/dtio_18.f90: New test case. Added: trunk/gcc/testsuite/gfortran.dg/dtio_18.f90 Modified: trunk/gcc/fortran/ChangeLog trunk/gcc/fortran/interface.c trunk/gcc/testsuite/ChangeLog
Fixed with r243005. Closing.
Author: janus Date: Sun Dec 18 11:03:41 2016 New Revision: 243783 URL: https://gcc.gnu.org/viewcvs?rev=243783&root=gcc&view=rev Log: 2016-12-18 Janus Weil <janus@gcc.gnu.org> PR fortran/78592 * interfac.c (gfc_find_specific_dtio_proc): Fixup for r243005, making sure that the generic list is followed through until the end. 2016-12-18 Janus Weil <janus@gcc.gnu.org> PR fortran/78592 * gfortran.dg/dtio_21.f90: New test. Added: trunk/gcc/testsuite/gfortran.dg/dtio_21.f90 Modified: trunk/gcc/fortran/ChangeLog trunk/gcc/fortran/interface.c trunk/gcc/testsuite/ChangeLog