blob: a9f67273d5ed08aea48ca3a7e1551bca57997263 [file] [log] [blame]
! { dg-do compile }
!
! PR 82257: ICE in gfc_typename(), compare_rank(), resolve_structure_cons()
module m1
implicit none
type,abstract :: c_base
contains
procedure(i1),private,deferred :: f_base
end type c_base
abstract interface
function i1(this) result(res)
import
class(c_base),intent(IN) :: this
class(c_base), pointer :: res
end function i1
end interface
type,abstract,extends(c_base) :: c_derived
contains
procedure :: f_base => f_derived ! { dg-error "Type mismatch in function result" }
end type c_derived
contains
function f_derived(this) result(res) ! { dg-error "must be dummy, allocatable or pointer" }
class(c_derived), intent(IN) :: this
class(*) :: res
end function f_derived
end module m1
module m2
implicit none
type :: t
contains
procedure :: p
end type t
contains
class(*) function p(this) ! { dg-error "must be dummy, allocatable or pointer" }
class(t), intent(IN) :: this
end function p
end module m2