http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45521
--- Comment #10 from janus at gcc dot gnu.org 2012-04-19 13:36:46 UTC --- (In reply to comment #6) > (In reply to comment #5) > > "Two dummy arguments are distinguishable if > > - one is a procedure and the other is a data object, > > Here is a test case for this item: Sorry, I messed up the declaration of 'test2' (by not using 'implicit none'). Therefore gfortran is correct in rejecting it. It should have been: module m implicit none interface testIF module procedure test1 module procedure test2 end interface contains real function test1 (obj) real :: obj test1 = obj end function real function test2 (pr) procedure(real) :: pr test2 = pr(0.) end function end module program test use m implicit none intrinsic :: cos print *,testIF(2.0) print *,testIF(cos) end program This is actually accepted by all gfortran versions I tried (4.3,4.6,4.7,trunk). However, it yields a segfault at runtime (-fdump-tree-original shows that 'test2' is used in both calls).