http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48786
--- Comment #13 from janus at gcc dot gnu.org --- (In reply to janus from comment #11) > Apparently it is due to r201329 (for PR 57530), in particular the > interface.c part. However, reverting this via Index: gcc/fortran/interface.c =================================================================== --- gcc/fortran/interface.c (revision 201883) +++ gcc/fortran/interface.c (working copy) @@ -514,12 +514,6 @@ compare_type (gfc_symbol *s1, gfc_symbol *s2) if (s2->attr.ext_attr & (1 << EXT_ATTR_NO_ARG_CHECK)) return 1; - /* TYPE and CLASS of the same declared type are type compatible, - but have different characteristics. */ - if ((s1->ts.type == BT_CLASS && s2->ts.type == BT_DERIVED) - || (s1->ts.type == BT_DERIVED && s2->ts.type == BT_CLASS)) - return 0; - return gfc_compare_types (&s1->ts, &s2->ts) || s2->ts.type == BT_ASSUMED; } results in these testsuite failures: FAIL: gfortran.dg/proc_ptr_30.f90 -O (test for errors, line 25) FAIL: gfortran.dg/proc_ptr_comp_32.f90 -O (test for errors, line 34) FAIL: gfortran.dg/proc_ptr_comp_33.f90 -O (test for errors, line 14) FAIL: gfortran.dg/proc_ptr_comp_33.f90 -O (test for errors, line 54) FAIL: gfortran.dg/dummy_procedure_4.f90 -O (test for errors, line 28)