! { dg-do run } ! ! Test the fix for PR80554 in which it was not recognised that the symbol 'i' ! is host associated in the submodule 's' so that the new declaration in the ! submodule was rejected. ! ! Contributed by Tamas Bela Feher ! module M implicit none integer :: i = 0 character (100) :: buffer interface module subroutine write_i() end subroutine end interface interface module subroutine write_i_2() end subroutine end interface contains subroutine foo integer :: i end end module submodule (M) S integer :: i = 137 contains module subroutine write_i() write (buffer,*) i end subroutine end submodule submodule (M:S) S2 integer :: i = 1037 contains module subroutine write_i_2() write (buffer,*) i end subroutine end submodule program test_submod_variable use M implicit none integer :: j i = 42 call write_i read (buffer, *) j if (i .ne. 42) STOP 1 if (j .ne. 137) STOP 2 call write_i_2 read (buffer, *) j if (i .ne. 42) STOP 3 if (j .ne. 1037) STOP 4 end program