1! { dg-do compile } 2! 3! PR 82257: ICE in gfc_typename(), compare_rank(), resolve_structure_cons() 4 5module m1 6 7implicit none 8 9 type,abstract :: c_base 10 contains 11 procedure(i1),private,deferred :: f_base 12 end type c_base 13 14 abstract interface 15 function i1(this) result(res) 16 import 17 class(c_base),intent(IN) :: this 18 class(c_base), pointer :: res 19 end function i1 20 end interface 21 22 type,abstract,extends(c_base) :: c_derived 23 contains 24 procedure :: f_base => f_derived ! { dg-error "Type mismatch in function result" } 25 end type c_derived 26 27contains 28 29 function f_derived(this) result(res) ! { dg-error "must be dummy, allocatable or pointer" } 30 class(c_derived), intent(IN) :: this 31 class(*) :: res 32 end function f_derived 33 34end module m1 35 36module m2 37 38implicit none 39 40 type :: t 41 contains 42 procedure :: p 43 end type t 44 45contains 46 47 class(*) function p(this) ! { dg-error "must be dummy, allocatable or pointer" } 48 class(t), intent(IN) :: this 49 end function p 50 51end module m2 52