1*227f30a5SPeter Klausler! RUN: %python %S/test_errors.py %s %flang_fc1 2*227f30a5SPeter Klausler! Ensures that a generic's shadowed procedure or derived type 3*227f30a5SPeter Klausler! can be overridden by a valid interior interface definition 4*227f30a5SPeter Klausler! in some cases. 5*227f30a5SPeter Klausler 6*227f30a5SPeter Klauslermodule m1 7*227f30a5SPeter Klausler contains 8*227f30a5SPeter Klausler subroutine foo 9*227f30a5SPeter Klausler end subroutine 10*227f30a5SPeter Klausler subroutine test 11*227f30a5SPeter Klausler interface foo 12*227f30a5SPeter Klausler subroutine foo(n) 13*227f30a5SPeter Klausler integer, intent(in) :: n 14*227f30a5SPeter Klausler end subroutine 15*227f30a5SPeter Klausler end interface 16*227f30a5SPeter Klausler call foo(1) 17*227f30a5SPeter Klausler end subroutine 18*227f30a5SPeter Klauslerend module 19*227f30a5SPeter Klausler 20*227f30a5SPeter Klauslermodule m2 21*227f30a5SPeter Klausler contains 22*227f30a5SPeter Klausler subroutine test 23*227f30a5SPeter Klausler interface foo 24*227f30a5SPeter Klausler subroutine foo(n) 25*227f30a5SPeter Klausler integer, intent(in) :: n 26*227f30a5SPeter Klausler end subroutine 27*227f30a5SPeter Klausler end interface 28*227f30a5SPeter Klausler call foo(1) 29*227f30a5SPeter Klausler end subroutine 30*227f30a5SPeter Klausler subroutine foo 31*227f30a5SPeter Klausler end subroutine 32*227f30a5SPeter Klauslerend module 33*227f30a5SPeter Klausler 34*227f30a5SPeter Klauslermodule m3 35*227f30a5SPeter Klausler interface 36*227f30a5SPeter Klausler subroutine foo 37*227f30a5SPeter Klausler end subroutine 38*227f30a5SPeter Klausler end interface 39*227f30a5SPeter Klausler contains 40*227f30a5SPeter Klausler subroutine test 41*227f30a5SPeter Klausler interface foo 42*227f30a5SPeter Klausler subroutine foo(n) 43*227f30a5SPeter Klausler integer, intent(in) :: n 44*227f30a5SPeter Klausler end subroutine 45*227f30a5SPeter Klausler end interface 46*227f30a5SPeter Klausler call foo(1) 47*227f30a5SPeter Klausler end subroutine 48*227f30a5SPeter Klauslerend module 49*227f30a5SPeter Klausler 50*227f30a5SPeter Klauslermodule m4a 51*227f30a5SPeter Klausler contains 52*227f30a5SPeter Klausler subroutine foo 53*227f30a5SPeter Klausler end subroutine 54*227f30a5SPeter Klauslerend module 55*227f30a5SPeter Klauslermodule m4b 56*227f30a5SPeter Klausler use m4a 57*227f30a5SPeter Klausler contains 58*227f30a5SPeter Klausler subroutine test 59*227f30a5SPeter Klausler interface foo 60*227f30a5SPeter Klausler subroutine foo(n) 61*227f30a5SPeter Klausler integer, intent(in) :: n 62*227f30a5SPeter Klausler end subroutine 63*227f30a5SPeter Klausler end interface 64*227f30a5SPeter Klausler call foo(1) 65*227f30a5SPeter Klausler end subroutine 66*227f30a5SPeter Klauslerend module 67*227f30a5SPeter Klausler 68*227f30a5SPeter Klauslermodule m5 69*227f30a5SPeter Klausler type bar 70*227f30a5SPeter Klausler end type 71*227f30a5SPeter Klausler contains 72*227f30a5SPeter Klausler subroutine test 73*227f30a5SPeter Klausler interface bar 74*227f30a5SPeter Klausler real function bar() 75*227f30a5SPeter Klausler end function 76*227f30a5SPeter Klausler end interface 77*227f30a5SPeter Klausler print *, bar() 78*227f30a5SPeter Klausler end subroutine 79*227f30a5SPeter Klauslerend module 80