blob: b3f4eaa56e4a4a4bc2bc758c82a0fab104730ac5 [file] [log] [blame]
! { dg-do compile }
! Tests the patch for PR 29641, in which an ICE would occur with
! the ordering of USE statements below.
!
! Contributed by Jakub Jelinek <jakub@gcc.gnu.org>
!
module A
type :: T
integer :: u
end type T
end module A
module B
contains
function foo()
use A
type(T), pointer :: foo
nullify (foo)
end function foo
end module B
subroutine bar()
use B ! The order here is important
use A ! If use A comes before use B, it works
type(T), pointer :: x
x => foo()
end subroutine bar
use B
use A
type(T), pointer :: x
type(T), target :: y
x => y
print *, associated (x)
x => foo ()
print *, associated (x)
end