[Bug fortran/88047] [9 Regression] ICE in gfc_find_vtab, at fortran/class.c:2843

dominiq at lps dot ens.fr gcc-bugzilla@gcc.gnu.org
Thu Nov 15 21:51:00 GMT 2018


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.


More information about the Gcc-bugs mailing list