blob: b55eded96f963abfa6f7ff122b41517d37e06a35 [file] [log] [blame]
! { dg-do run }
!
! PR 47180: [OOP] EXTENDS_TYPE_OF returns the wrong result for disassociated polymorphic pointers
!
! Contributed by Tobias Burnus <burnus@gcc.gnu.org>
implicit none
type t1
integer :: a
end type t1
type, extends(t1):: t11
integer :: b
end type t11
type(t1) , target :: a1
type(t11) , target :: a11
class(t1) , pointer :: b1
class(t11), pointer :: b11
b1 => NULL()
b11 => NULL()
if (.not. extends_type_of(b1 , a1)) STOP 1
if (.not. extends_type_of(b11, a1)) STOP 2
if (.not. extends_type_of(b11,a11)) STOP 3
b1 => a1
b11 => a11
if (.not. extends_type_of(b1 , a1)) STOP 4
if (.not. extends_type_of(b11, a1)) STOP 5
if (.not. extends_type_of(b11,a11)) STOP 6
end