Hi all, I have just committed to trunk another obvious one-line fix for an ICE-on-invalid regression:
https://gcc.gnu.org/viewcvs?rev=243020&root=gcc&view=rev I plan to backport this to the gcc-6 branch within a week or so. Cheers, Janus
Index: gcc/fortran/primary.c =================================================================== --- gcc/fortran/primary.c (revision 243019) +++ gcc/fortran/primary.c (working copy) @@ -2050,7 +2050,7 @@ gfc_match_varspec (gfc_expr *primary, int equiv_fl if (m != MATCH_YES) return MATCH_ERROR; - if (sym->f2k_derived) + if (sym && sym->f2k_derived) tbp = gfc_find_typebound_proc (sym, &t, name, false, &gfc_current_locus); else tbp = NULL; Index: gcc/testsuite/gfortran.dg/derived_result.f90 =================================================================== --- gcc/testsuite/gfortran.dg/derived_result.f90 (nonexistent) +++ gcc/testsuite/gfortran.dg/derived_result.f90 (working copy) @@ -0,0 +1,10 @@ +! { dg-do compile } +! +! PR 78593: [6/7 Regression] ICE in gfc_match_varspec, at fortran/primary.c:2053 +! +! Contributed by Gerhard Steinmetz <gerhard.steinmetz.fort...@t-online.de> + +type(t) function add (x, y) ! { dg-error "is not accessible" } + integer, intent(in) :: x, y + add%a = x + y ! { dg-error "Unclassifiable statement" } +end