42 lines
793 B
Fortran
42 lines
793 B
Fortran
|
! { dg-do run }
|
||
|
! Tests the fix for pr63553 in which the class container was being
|
||
|
! assigned to derived types, rather than the data.
|
||
|
!
|
||
|
! Contributed by <patnel97269-gfortran@yahoo.fr>
|
||
|
!
|
||
|
program toto
|
||
|
implicit none
|
||
|
type mother
|
||
|
integer :: i
|
||
|
end type mother
|
||
|
type,extends(mother) :: child
|
||
|
end type child
|
||
|
|
||
|
call comment1
|
||
|
call comment2
|
||
|
|
||
|
contains
|
||
|
subroutine comment1
|
||
|
type(mother) :: tm
|
||
|
class(mother),allocatable :: cm
|
||
|
|
||
|
allocate (cm)
|
||
|
cm%i = 77
|
||
|
tm = cm
|
||
|
if (tm%i .ne. cm%i) STOP 1
|
||
|
end subroutine
|
||
|
|
||
|
subroutine comment2
|
||
|
class(mother),allocatable :: cm,cm2
|
||
|
|
||
|
allocate(cm)
|
||
|
allocate(child::cm2)
|
||
|
cm%i=10
|
||
|
select type (cm2)
|
||
|
type is (child)
|
||
|
cm2%mother=cm
|
||
|
end select
|
||
|
if (cm2%i .ne. cm%i) STOP 2
|
||
|
end subroutine
|
||
|
end program
|