! { dg-do compile }
! { dg-options "-std=f95" }
!
! PR 39876: module procedure name that collides with the GNU intrinsic
!
! Contributed by Alexei Matveev <alexei.matveev+gcc@gmail.com>

module p                           
  implicit none                                                                 

  contains

    subroutine test()
      implicit none
      print *, avg(erfc)
    end subroutine test

    function avg(f)
      implicit none
      double precision :: avg
      interface
        double precision function f(x)
          implicit none
          double precision, intent(in) :: x
        end function f
      end interface
      avg = ( f(1.0D0) + f(2.0D0) ) / 2
    end function avg

    function erfc(x)
      implicit none
      double precision, intent(in) :: x
      double precision             :: erfc
      erfc = x
    end function erfc

end module p
