This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug fortran/53328] New: [OOP] Ambiguous check for type-bound GENERIC shall ignore PASSed arguments


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: unassigned@gcc.gnu.org
        ReportedBy: burnus@gcc.gnu.org
                CC: janus@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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]