! { dg-do run } ! ! Tests the fix for PR79676 in which submod_test was private even to the ! submodule 'my_submod'. ! ! Contributed by Adam Hirst ! module my_mod private ! This hid 'submod_test'. interface module subroutine submod_test(x) integer :: x end subroutine end interface integer answer public routine1, print_two, answer contains subroutine routine1(x) integer :: x call submod_test(x) end subroutine subroutine print_two() integer, parameter :: two = 2 answer = answer * two end subroutine end module module my_mod_2 use my_mod contains subroutine circular_dependency() call print_two() end subroutine end module submodule (my_mod) my_submod use my_mod_2 contains module subroutine submod_test(x) integer :: x answer = x call circular_dependency() end subroutine end submodule program hello use my_mod implicit none call routine1(2) if (answer .ne. 4) STOP 1 end program