mirror of
https://github.com/autc04/Retro68.git
synced 2024-09-28 18:56:06 +00:00
41 lines
846 B
Fortran
41 lines
846 B
Fortran
! { dg-do run }
|
|
!
|
|
! Test contributed by Valery Weber <valeryweber@hotmail.com>
|
|
|
|
module mod
|
|
|
|
TYPE, PUBLIC :: base_type
|
|
END TYPE base_type
|
|
|
|
TYPE, PUBLIC :: dict_entry_type
|
|
CLASS( * ), ALLOCATABLE :: key
|
|
CLASS( * ), ALLOCATABLE :: val
|
|
END TYPE dict_entry_type
|
|
|
|
|
|
contains
|
|
|
|
SUBROUTINE dict_put ( this, key, val )
|
|
CLASS(dict_entry_type), INTENT(INOUT) :: this
|
|
CLASS(base_type), INTENT(IN) :: key, val
|
|
INTEGER :: istat
|
|
ALLOCATE( this%key, SOURCE=key, STAT=istat )
|
|
end SUBROUTINE dict_put
|
|
end module mod
|
|
|
|
program test
|
|
use mod
|
|
type(dict_entry_type) :: t
|
|
type(base_type) :: a, b
|
|
call dict_put(t, a, b)
|
|
|
|
if (.NOT. allocated(t%key)) STOP 1
|
|
select type (x => t%key)
|
|
type is (base_type)
|
|
class default
|
|
STOP 2
|
|
end select
|
|
deallocate(t%key)
|
|
end
|
|
|