https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118179
--- Comment #5 from Jürgen Reuter <juergen.reuter at desy dot de> --- Here is the reproducer: module lexers implicit none private public :: lexer_t public :: lexer_init type :: keyword_list_t private end type keyword_list_t type :: lexer_t private type(lexer_t), pointer :: parent => null () contains procedure :: init => lexer_init end type lexer_t interface module subroutine lexer_init (lexer, & keyword_list) class(lexer_t), intent(inout) :: lexer type(keyword_list_t), pointer :: keyword_list end subroutine lexer_init end interface end module lexers module syntax_rules use lexers implicit none contains module subroutine syntax_init_from_ifile () type(lexer_t) :: lexer call lexer_init (lexer, & keyword_list = null ()) end subroutine syntax_init_from_ifile end module syntax_rules