blob: 10c90c4ca69aff562cd08024d56edc7cc8bb8430 [file] [log] [blame]
! { 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 <pault@gcc.gnu.org>
!==============
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