[Bug fortran/92863] ICE in gfc_typename
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92863 Thomas Koenig changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED --- Comment #4 from Thomas Koenig --- Fixed, closing. Thanks a lot for the bug report!
[Bug fortran/92863] ICE in gfc_typename
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92863 --- Comment #3 from Thomas Koenig --- Author: tkoenig Date: Tue Dec 10 18:31:33 2019 New Revision: 279180 URL: https://gcc.gnu.org/viewcvs?rev=279180&root=gcc&view=rev Log: 2019-12-10 Thomas Koenig PR fortran/92863 * misc.c (gfc_typename): If derived component is NULL for derived or class, return "invalid type" or "invalid class", respectively. 2019-12-10 Thomas Koenig PR fortran/92863 * gfortran.dg/interface_45.f90: New test. Added: trunk/gcc/testsuite/gfortran.dg/interface_45.f90 Modified: trunk/gcc/fortran/ChangeLog trunk/gcc/fortran/misc.c trunk/gcc/testsuite/ChangeLog
[Bug fortran/92863] ICE in gfc_typename
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92863 --- Comment #2 from Thomas Koenig --- This looks reasonable: Index: misc.c === --- misc.c (Revision 279064) +++ misc.c (Arbeitskopie) @@ -164,9 +164,17 @@ gfc_typename (gfc_typespec *ts) sprintf (buffer, "UNION(%s)", ts->u.derived->name); break; case BT_DERIVED: - sprintf (buffer, "TYPE(%s)", ts->u.derived->name); + if (ts->u.derived) + sprintf (buffer, "TYPE(%s)", ts->u.derived->name); + else + sprintf (buffer, "invalid type"); break; case BT_CLASS: + if (ts->u.derived == NULL) + { + sprintf (buffer, "invalid class"); + break; + } ts1 = ts->u.derived->components ? &ts->u.derived->components->ts : NULL; if (ts1 && ts1->u.derived && ts1->u.derived->attr.unlimited_polymorphic) sprintf (buffer, "CLASS(*)");
[Bug fortran/92863] ICE in gfc_typename
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92863 Thomas Koenig changed: What|Removed |Added Status|UNCONFIRMED |ASSIGNED Last reconfirmed||2019-12-09 CC||tkoenig at gcc dot gnu.org Assignee|unassigned at gcc dot gnu.org |tkoenig at gcc dot gnu.org Ever confirmed|0 |1 --- Comment #1 from Thomas Koenig --- Probably a regression introduced by my earlier patches with argument checking. Should be easy enough to fix.