! { dg-do compile } ! This checks that the fix for PR19362 has not broken gfortran ! in respect of.references allowed by 4.4.2. ! ! Contributed by Paul Thomas !============== module global TYPE :: seq_type1 sequence integer :: i end type seq_type1 TYPE :: nonseq_type1 integer :: i = 44 end type nonseq_type1 type (nonseq_type1), save :: ns1 end module global use global, only: seq_type2=>seq_type1, nonseq_type1, ns1 ! Host non-sequence types type :: different_type integer :: i end type different_type type :: same_type sequence integer :: i end type same_type type (seq_type2) :: t1 type (different_type) :: dt1 type (nonseq_type1) :: ns2 type (same_type) :: st1 real seq_type1 t1 = seq_type2 (42) dt1 = different_type (43) ns2 = ns1 seq_type1 =1.0e32 st1%i = 45 call foo (t1) contains subroutine foo (x) use global, only: seq_type3=>seq_type1 TYPE :: seq_type1 sequence integer :: i end type seq_type1 type :: different_type complex :: z end type different_type type :: same_type sequence integer :: i end type same_type ! Host association of renamed type. type (seq_type2) :: x ! Locally declared version of the same thing. type (seq_type1) :: y ! USE associated renamed type. type (seq_type3) :: z type (different_type) :: dt2 type (same_type) :: st2 dt2%z = (2.0,-1.0) y = seq_type2 (46) z = seq_type3 (47) st2 = st1 print *, x, y, z, dt2, st2, ns2, ns1 end subroutine foo END ! { dg-final { cleanup-modules "global" } }