1*90d753abSPeter Klausler!RUN: %flang_fc1 -fdebug-unparse %s 2>&1 | FileCheck %s 2*90d753abSPeter Klausler!Test inheritance of implicit rules in submodules and separate module 3*90d753abSPeter Klausler!procedures. 4*90d753abSPeter Klausler 5*90d753abSPeter Klauslermodule m 6*90d753abSPeter Klausler implicit integer(1)(a-z) 7*90d753abSPeter Klausler interface 8*90d753abSPeter Klausler module subroutine mp(da) ! integer(2) 9*90d753abSPeter Klausler implicit integer(2)(a-z) 10*90d753abSPeter Klausler end 11*90d753abSPeter Klausler end interface 12*90d753abSPeter Klausler save :: mv ! integer(1) 13*90d753abSPeter Klauslerend 14*90d753abSPeter Klausler 15*90d753abSPeter Klauslersubmodule(m) sm1 16*90d753abSPeter Klausler implicit integer(8)(a-z) 17*90d753abSPeter Klausler save :: sm1v ! integer(8) 18*90d753abSPeter Klausler interface 19*90d753abSPeter Klausler module subroutine sm1p(da) ! default real 20*90d753abSPeter Klausler end 21*90d753abSPeter Klausler end interface 22*90d753abSPeter Klauslerend 23*90d753abSPeter Klausler 24*90d753abSPeter Klauslersubmodule(m:sm1) sm2 25*90d753abSPeter Klausler implicit integer(2)(a-c,e-z) 26*90d753abSPeter Klausler save :: sm2v ! integer(2) 27*90d753abSPeter Klausler contains 28*90d753abSPeter Klausler module subroutine sm1p(da) ! default real 29*90d753abSPeter Klausler save :: sm1pv ! inherited integer(2) 30*90d753abSPeter Klausler !CHECK: PRINT *, 1_4, 8_4, 2_4, 4_4, 2_4 31*90d753abSPeter Klausler print *, kind(mv), kind(sm1v), kind(sm2v), kind(da), kind(sm1pv) 32*90d753abSPeter Klausler end 33*90d753abSPeter Klauslerend 34*90d753abSPeter Klausler 35*90d753abSPeter Klauslersubmodule(m:sm2) sm3 36*90d753abSPeter Klausler implicit integer(8)(a-z) 37*90d753abSPeter Klausler save :: sm3v ! integer(8) 38*90d753abSPeter Klausler contains 39*90d753abSPeter Klausler module procedure mp 40*90d753abSPeter Klausler save :: mpv ! inherited integer(8) 41*90d753abSPeter Klausler call sm1p(1.) 42*90d753abSPeter Klausler !CHECK: PRINT *, 1_4, 8_4, 2_4, 8_4, 2_4, 8_4 43*90d753abSPeter Klausler print *, kind(mv), kind(sm1v), kind(sm2v), kind(sm3v), kind(da), kind(mpv) 44*90d753abSPeter Klausler end 45*90d753abSPeter Klauslerend 46*90d753abSPeter Klausler 47*90d753abSPeter Klauslerprogram main 48*90d753abSPeter Klausler use m 49*90d753abSPeter Klausler call mp(1_2) 50*90d753abSPeter Klauslerend 51