http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53328
Bug #: 53328 Summary: [OOP] Ambiguous check for type-bound GENERIC shall ignore PASSed arguments Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Keywords: accepts-invalid, diagnostic Severity: normal Priority: P3 Component: fortran AssignedTo: unassig...@gcc.gnu.org ReportedBy: bur...@gcc.gnu.org CC: ja...@gcc.gnu.org Based on a report by Rafik Zurob. Compile the following module - and then the following: use m type(t) :: x call x%gen(5) end Does the call invoke sub1 or sub2? Obviously, gfortran should ignore the PASSed argument for the generic resolution of type-bound procedures, when checking for ambiguity. The following code is invalid but accepted: module m type t contains procedure, pass(this) :: sub1 procedure, pass(this) :: sub2 generic :: gen => sub1, sub2 end type t contains subroutine sub1(x, this) integer :: i class(t) :: this end subroutine sub1 subroutine sub2 (this, y) integer :: i class(t) :: this end subroutine sub2 end module m