[Bug fortran/77532] ICE in check_dtio_interface1, at fortran/interface.c:4622
kargl at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Sep 14 01:17:00 GMT 2016
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;
}
More information about the Gcc-bugs
mailing list