mirror of git://gcc.gnu.org/git/gcc.git
50 lines
1.1 KiB
Fortran
50 lines
1.1 KiB
Fortran
! { dg-do run }
|
|
! Test the fix for PR59198, where the field for the component 'term' in
|
|
! the derived type 'decay_gen_t' was not being built.
|
|
!
|
|
! Contributed by Paul Thomas and based on the original testcase by
|
|
! Juergen Reuter <juergen.reuter@desy.de>
|
|
!
|
|
module decays
|
|
|
|
implicit none
|
|
|
|
interface
|
|
real elemental function iface (arg)
|
|
real, intent(in) :: arg
|
|
end function
|
|
end interface
|
|
|
|
type :: decay_term_t
|
|
type(decay_t), pointer :: unstable_product
|
|
integer :: i
|
|
end type
|
|
|
|
type :: decay_gen_t
|
|
procedure(iface), nopass, pointer :: obs1_int
|
|
type(decay_term_t), allocatable :: term
|
|
end type
|
|
|
|
type :: rng_t
|
|
integer :: i
|
|
end type
|
|
|
|
type, extends (decay_gen_t) :: decay_t
|
|
class(rng_t), allocatable :: rng
|
|
end type
|
|
|
|
class(decay_t), allocatable :: object
|
|
|
|
end
|
|
|
|
use decays
|
|
type(decay_t), pointer :: template
|
|
real, parameter :: arg = 1.570796327
|
|
allocate (template)
|
|
allocate (template%rng)
|
|
template%obs1_int => cos
|
|
if (template%obs1_int (arg) .ne. cos (arg)) call abort
|
|
allocate (object, source = template)
|
|
if (object%obs1_int (arg) .ne. cos (arg)) call abort
|
|
end
|