! { dg-do compile }
! Tests the fix for PR29634, in which an ICE would occur in the
! interface declaration of a function with an 'old-style' type
! declaration.  When fixed, it was found that the error message
! was not very helpful - this was fixed.
!
! Contributed by Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
!
module kinds
  type foo
    integer :: i
  end type foo
end module

type(foo) function ext_fun()
  use kinds
  ext_fun%i = 1
end function ext_fun

  use kinds

  interface fun_interface
    type(foo) function fun()
      use kinds
    end function fun
  end interface

  interface ext_fun_interface
    type(foo) function ext_fun()
      use kinds
    end function ext_fun
  end interface

  type(foo) :: x

  x = ext_fun ()
  print *, x%i

contains

  type(foo) function fun() ! { dg-error "already has an explicit interface" }
  end function fun  ! { dg-error "Expecting END PROGRAM" }

end
