51 lines · plain
1!RUN: %flang_fc1 -fdebug-unparse %s 2>&1 | FileCheck %s2!Test inheritance of implicit rules in submodules and separate module3!procedures.4 5module m6 implicit integer(1)(a-z)7 interface8 module subroutine mp(da) ! integer(2)9 implicit integer(2)(a-z)10 end11 end interface12 save :: mv ! integer(1)13end14 15submodule(m) sm116 implicit integer(8)(a-z)17 save :: sm1v ! integer(8)18 interface19 module subroutine sm1p(da) ! default real20 end21 end interface22end23 24submodule(m:sm1) sm225 implicit integer(2)(a-c,e-z)26 save :: sm2v ! integer(2)27 contains28 module subroutine sm1p(da) ! default real29 save :: sm1pv ! inherited integer(2)30 !CHECK: PRINT *, 1_4, 8_4, 2_4, 4_4, 2_431 print *, kind(mv), kind(sm1v), kind(sm2v), kind(da), kind(sm1pv)32 end33end34 35submodule(m:sm2) sm336 implicit integer(8)(a-z)37 save :: sm3v ! integer(8)38 contains39 module procedure mp40 save :: mpv ! inherited integer(8)41 call sm1p(1.)42 !CHECK: PRINT *, 1_4, 8_4, 2_4, 8_4, 2_4, 8_443 print *, kind(mv), kind(sm1v), kind(sm2v), kind(sm3v), kind(da), kind(mpv)44 end45end46 47program main48 use m49 call mp(1_2)50end51