! { 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
