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

Reply via email to