It would be nice if we could provide a list of possible candidates for generic
in the example below. (Something similar is implemented in C++ if a particular
overload is not found, all possible prototypes are listed.)
$> cat candidates.f90
MODULE amodule
INTERFACE generic
MODULE PROCEDURE specific_1
MODULE PROCEDURE specific_2
END INTERFACE
CONTAINS
SUBROUTINE specific_1(i)
INTEGER, INTENT(in) :: i
END SUBROUTINE
SUBROUTINE specific_2(r)
REAL, INTENT(in) :: r
END SUBROUTINE
END MODULE
USE amodule
CALL generic("string")
END
$> gfortran-svn candidates.f90
candidates.f90:18.24:
CALL generic("string")
1
Error: There is no specific subroutine for the generic 'generic' at (1)
[Candidates are:
subroutine generic(integer)
subroutine generic(real)]
--
Summary: short-list explicit interfaces in generic interfaces if
no match is found
Product: gcc
Version: 4.5.0
Status: UNCONFIRMED
Severity: enhancement
Priority: P3
Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: dfranke at gcc dot gnu dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39624