https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103662
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |pault at gcc dot gnu.org --- Comment #11 from Jakub Jelinek <jakub at gcc dot gnu.org> --- gfc_get_derived_type sets the unlimited_entity flag for these, but I guess not all unlimited entities should have the same TYPE_CANONICAL, e.g. on subroutine foo (a, b, c, d, e, f) class(*) :: a class(*) :: b(:) class(*) :: c(:, :, :) class(*), pointer :: d class(*), pointer :: e(:) class(*), pointer :: f(:, :) end subroutine there are various RECORD_TYPEs. So just adding a single tree to use for those would be wrong, thus I think best would be really to register the unlimited entities in the derived type list and handle them in gfc_compare_derived_types. But I'm afraid I don't know enough about this stuff to do this myself. Tobias or Paul, could you please have a look? This is a P1 bug and therefore GCC 12 blocker.