! { dg-do compile } ! Tests the fix for PR36366 a regression in which the order of USE statements ! in 'test2' would cause the result of 'test1' not to have a reference to ! the derived type 'inner'. ! ! Contributed by Jakub Jelinek ! MODULE types IMPLICIT NONE TYPE :: inner INTEGER, POINTER :: i(:) END TYPE inner TYPE :: outer TYPE(inner), POINTER :: inr(:) END TYPE outer END MODULE types MODULE mymod IMPLICIT NONE CONTAINS FUNCTION test1() USE types IMPLICIT NONE TYPE(outer), POINTER :: test1 NULLIFY(test1) END FUNCTION test1 END MODULE mymod MODULE test IMPLICIT NONE CONTAINS SUBROUTINE test2(a) USE mymod USE types IMPLICIT NONE TYPE(outer), INTENT(INOUT) :: a INTEGER :: i i = a%inr(1)%i(1) END SUBROUTINE test2 SUBROUTINE test3(a) USE types IMPLICIT NONE TYPE(outer), INTENT(IN) :: a END SUBROUTINE test3 END MODULE test