https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77532
--- Comment #7 from kargl at gcc dot gnu.org --- > $ cat zc1.f90 > module m > type t > contains > procedure :: s > generic :: write(unformatted) => s > end type > contains > subroutine s(dtv, *) > class(t), intent(out) :: dtv > end > end > > > $ gfortran-7-20160911 zc1.f90 > zc1.f90:8:19: > > subroutine s(dtv, *) > 1 > Error: DTIO dummy argument at (1) must have intent IN > f951: internal compiler error: Segmentation fault > 0xc2154f crash_signal > ../../gcc/toplev.c:336 > 0x69290d check_dtio_arg_TKR_intent > ../../gcc/fortran/interface.c:4561 > 0x692b4a check_dtio_interface1 > ../../gcc/fortran/interface.c:4676 > 0x69a303 gfc_check_dtio_interfaces(gfc_symbol*) > ../../gcc/fortran/interface.c:4735 > 0x70c86b do_traverse_symtree > ../../gcc/fortran/symbol.c:3939 > 0x6f65c0 resolve_types > ../../gcc/fortran/resolve.c:15658 > 0x6f1d9c gfc_resolve(gfc_namespace*) > ../../gcc/fortran/resolve.c:15730 > 0x6dd3a4 gfc_parse_file() > ../../gcc/fortran/parse.c:6056 > 0x71f5f2 gfc_be_parse_file > ../../gcc/fortran/f95-lang.c:198 > troutmask:sgk[232] svn diff interface.c |more Index: interface.c =================================================================== --- interface.c (revision 240119) +++ interface.c (working copy) @@ -4558,6 +4558,9 @@ static void check_dtio_arg_TKR_intent (gfc_symbol *fsym, bool typebound, bt type, int kind, int rank, sym_intent intent) { + if (!fsym) + return; + if (fsym->ts.type != type) { gfc_error ("DTIO dummy argument at %L must be of type %s", @@ -4584,7 +4587,6 @@ check_dtio_arg_TKR_intent (gfc_symbol *f if (fsym->attr.intent != intent) gfc_error ("DTIO dummy argument at %L must have intent %s", &fsym->declared_at, gfc_code2string (intents, (int)intent)); - return; }