https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94408
kargl at gcc dot gnu.org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |kargl at gcc dot gnu.org --- Comment #2 from kargl at gcc dot gnu.org --- (In reply to michalak from comment #1) > Here is a slightly more simplified version of the test.F90 program that > still demonstrates the error with gcc 9.1.0 (below). The namelist_t type > from the previous reproducer code turns out not to be necessary and has been > removed from the example. Commenting out the indicated line causes the error > to go away. Thanks, -John > > === > > module mod_input > type config_t > integer :: domain_id > contains > procedure :: init => rw_config > procedure :: rw_nl_grid > end type config_t > interface > module subroutine rw_config (this,iunit) > implicit none > class (config_t) :: this > integer, intent(in), optional :: iunit > end subroutine rw_config > module subroutine rw_nl_grid ( this, iunit ) > implicit none > class (config_t) :: this > integer, optional, intent(in) :: iunit > end subroutine rw_nl_grid > end interface > contains > module subroutine rw_config (this,iunit) > implicit none > class (config_t) :: this > integer, intent(in), optional :: iunit > call this%rw_nl_grid ! comment this out to make error go away > end subroutine rw_config > module subroutine rw_nl_grid ( this, iunit ) > implicit none > class (config_t) :: this > integer, optional, intent(in) :: iunit > end subroutine rw_nl_grid > end module mod_input > > module neptune_write_native > contains > subroutine Run > use mod_input > type(config_t) :: config > end subroutine Run > end module neptune_write_native Although your code is likely conforming (I don't know as I don't you the construct you're trying to exploit), if you remove the interface block (which is redundant as contained procedures within a module have explict interfaces) then the code compiles. Hopefully, someone who writes similar code will take an interest in this issue and submit a patch. Good luck.