https://gcc.gnu.org/bugzilla/show_bug.cgi?id=45521
--- Comment #17 from janus at gcc dot gnu.org --- Another case that is not yet working is when polymorphic arguments are involved: type :: t end type interface test procedure testAlloc procedure testPtr end interface contains logical function testAlloc(obj) class(t), allocatable :: obj testAlloc = .true. end function logical function testPtr(obj) class(t), pointer :: obj testPtr = .false. end function end Using type(t) instead of class(t), this case is correctly accepted, but in the above form gfortran wrongly complains: Error: Ambiguous interfaces in generic interface 'test' for ‘testalloc’ at (1) and ‘testptr’ at (2)