!RUN: %flang_fc1 -fdebug-unparse %s 2>&1 | FileCheck %s !Test inheritance of implicit rules in submodules and separate module !procedures. module m implicit integer(1)(a-z) interface module subroutine mp(da) ! integer(2) implicit integer(2)(a-z) end end interface save :: mv ! integer(1) end submodule(m) sm1 implicit integer(8)(a-z) save :: sm1v ! integer(8) interface module subroutine sm1p(da) ! default real end end interface end submodule(m:sm1) sm2 implicit integer(2)(a-c,e-z) save :: sm2v ! integer(2) contains module subroutine sm1p(da) ! default real save :: sm1pv ! inherited integer(2) !CHECK: PRINT *, 1_4, 8_4, 2_4, 4_4, 2_4 print *, kind(mv), kind(sm1v), kind(sm2v), kind(da), kind(sm1pv) end end submodule(m:sm2) sm3 implicit integer(8)(a-z) save :: sm3v ! integer(8) contains module procedure mp save :: mpv ! inherited integer(8) call sm1p(1.) !CHECK: PRINT *, 1_4, 8_4, 2_4, 8_4, 2_4, 8_4 print *, kind(mv), kind(sm1v), kind(sm2v), kind(sm3v), kind(da), kind(mpv) end end program main use m call mp(1_2) end