https://gcc.gnu.org/bugzilla/show_bug.cgi?id=47805
--- Comment #7 from janus at gcc dot gnu.org ---
Another very related case that gfortran currently accepts, although it is
invalid according to the interpretation request:
module m1
implicit none
type, abstract :: t1
contains
procedure(ifc), deferred, private :: tbp
end type
abstract interface
subroutine ifc(arg)
import :: t1
class(t1) :: arg
end subroutine
end interface
end module
module m2
use m1
implicit none
type, extends(t1) :: t2
contains
procedure :: tbp => tbp_t2
end type
contains
subroutine tbp_t2(arg)
class(t2) :: arg
print *, "this is t2!"
end subroutine
end module
program test
use m2
implicit none
type(t2) :: x
call x%tbp()
end
It is correctly rejected by ifort 18.