rt_gccstream/gcc/testsuite/gfortran.dg/whole_file_14.f90

29 lines
939 B
Fortran

! { dg-do run }
! { dg-options "-fwhole-file -O3" }
! Check that the derived types are correctly substituted when
! whole file compiling.
!
! Contributed by Dominique d'Humieres <dominiq@lps.ens.fr
!
module global
type :: mytype
type(mytype),pointer :: this
end type mytype
type(mytype),target :: base
end module global
program test_equi
use global
call check()
print *, "base%this%this=>base?" , associated(base%this%this,base)
print *, "base%this%this=>?" , associated(base%this%this)
print *, "base%this=>?" , associated(base%this)
contains
subroutine check()
type(mytype),target :: j
base%this => j !have the variables point
j%this => base !to one another
end subroutine check !take j out of scope
end program test_equi
! { dg-final { cleanup-modules "global" } }