Hi, the above ICE is fixed by the following simple/trivial fix:
Index: gcc/fortran/interface.c =================================================================== --- gcc/fortran/interface.c (revision 234170) +++ gcc/fortran/interface.c (working copy) @@ -2006,7 +2006,7 @@ compare_parameter (gfc_symbol *formal, gfc_expr *a } ppc = gfc_get_proc_ptr_comp (actual); - if (ppc) + if (ppc && ppc->ts.interface) { if (!gfc_compare_interfaces (formal, ppc->ts.interface, ppc->name, 0, 1, err, sizeof(err), NULL, NULL)) Suggested testcase: Index: gcc/testsuite/gfortran.dg/pr69603.f90 =================================================================== --- gcc/testsuite/gfortran.dg/pr69603.f90 (revision 0) +++ gcc/testsuite/gfortran.dg/pr69603.f90 (revision 0) @@ -0,0 +1,15 @@ +! { dg-do compile } +! PR fortran/69603 - segfault with -fimplicit-none and proc_ptr_comp_24.f90 +! Based on reduced testcase by Dominique d'Humieres +PROGRAM prog + implicit none + TYPE object + PROCEDURE(), POINTER, NOPASS :: f + END TYPE object + TYPE (object) :: o1 + CALL set_func(o1%f) +CONTAINS + SUBROUTINE set_func(f) + PROCEDURE(), POINTER :: f + END SUBROUTINE set_func +END PROGRAM prog Regtested with no new failures on i686-pc-linux-gnu. Whoever wants to take it... Cheers, Harald