https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66993
Bug ID: 66993 Summary: Spurious ambiguous symbol error with submodules Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: mikael at gcc dot gnu.org Target Milestone: --- Submodules host-associate the (sub-)module they derive from. This means that when a symbol is use-associated with the same name as one of the module's symbols, there is no ambiguity: the use-associated symbol has the priority. This doesn't work currently, as host-association as been implemented by reusing the use-association mechanism. Module symbols are put at the same level as use-associated symbols, and the compiler complains about an ambiguous symbol: test.f90:15:16: print *, i 1 Error: Name ‘i’ at (1) is an ambiguous reference to ‘i’ from module ‘m’ Testcase: module m integer, parameter :: i = -1 interface module subroutine show_i end subroutine show_i end interface end module m module n integer, parameter :: i = 2 end module n submodule (m) sm use n contains module subroutine show_i print *, i end subroutine show_i end submodule sm program p use m call show_i end p I believe this should be accepted and it should print 2.