https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104130
anlauf at gcc dot gnu.org changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords|ice-on-valid-code |ice-on-invalid-code --- Comment #8 from anlauf at gcc dot gnu.org --- (In reply to Andre Vehreschild from comment #7) > ifort/ifx (2024.1.2) accepts the code. Well, Intel rejects a bare call s(z) so it should also reject call s(transpose(z)) for multiple reasons. Intel still has a couple of issues with unlimited polymorphism. > My fortran is not very good, but I would expect either a select around the > call to `s` or needing `x` to be of `class(*)`. The latter is what the > changed example errors with: Right. A correct version would be: program p class(*), pointer :: z(:,:) select type (z) type is (integer) call s(z) call s(transpose(z)) end select contains subroutine s(x) bind(c) integer, contiguous :: x(:,:) end end This is happily accepted by all gfortran >= 12. Updating keywords from ice-on-valid-code to ice-on-invalid-code.