! { dg-do run } ! ! PR fortran/44360 ! ! Test-case based on a contribution of Vittorio Zecca. ! ! The used subroutine was not the use-associated but the host associated one! ! The use-associated function/variable were already working properly. ! module m integer :: var = 43 contains integer function fun() fun = 42 end function fun subroutine fun2() var = 44 end subroutine fun2 end module m module m2 integer :: var = -2 contains subroutine test() ! All procedures/variables below refer to the ones in module "m" ! and not to the siblings in this module "m2". use m if (fun() /= 42) STOP 1 if (var /= 43) STOP 2 call fun2() if (var /= 44) STOP 3 end subroutine test integer function fun() STOP 4 fun = -3 end function fun subroutine fun2() STOP 5 end subroutine fun2 end module m2 use m2 call test() end