https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88047
--- Comment #2 from Dominique d'Humieres <dominiq at lps dot ens.fr> --- The following patch restores the errors --- ../_clean/gcc/fortran/match.c 2018-11-01 22:06:33.000000000 +0100 +++ gcc/fortran/match.c 2018-11-15 22:47:01.000000000 +0100 @@ -1374,7 +1374,8 @@ gfc_match_assignment (void) gfc_check_do_variable (lvalue->symtree); - if (lvalue->ts.type == BT_CLASS) + if (lvalue->ts.type == BT_CLASS && (rvalue->ts.type != BT_CLASS + || rvalue->ts.u.derived->components)) gfc_find_vtab (&rvalue->ts); return MATCH_YES; without breaking gfortran.dg/class_assign_2.f90 and gfortran.dg/class_assign_3.f90.