http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58331
Bug ID: 58331 Summary: [OOP] Bogus rank checking with explicit-/assumed-size arrays and CLASS Product: gcc Version: 4.9.0 Status: UNCONFIRMED Keywords: rejects-valid Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: burnus at gcc dot gnu.org CC: janus at gcc dot gnu.org The following code seems to be valid and to work, except for the bogus error message: Error: Rank mismatch in argument 'a' at (1) (rank-1 and rank-2) Reported by Simon Geard at https://groups.google.com/forum/#!topic/comp.lang.fortran/5oi9Sa4lnX4 module mymod implicit none contains subroutine mysub(a, n) integer, intent(in) :: n class(*), intent(in) :: a(n) select type(a) type is(integer) print *,'a is integer' class default print *,'a is unsupported type' end select end subroutine mysub end module mymod program upv use mymod implicit none integer :: a(3), b(2,2) a = [1, 2, 3] call mysub(a,3) b = reshape([1, 2, 3, 4], [2,2]) call mysub(b,4) end program upv