10d588347SPeter Klausler! RUN: %python %S/test_errors.py %s %flang_fc1 -Werror 20d588347SPeter Klausler! Catch discrepancies between a local interface and a global definition 30d588347SPeter Klausler 40d588347SPeter Klauslersubroutine global1(x) 50d588347SPeter Klausler integer, intent(in) :: x 60d588347SPeter Klauslerend subroutine 70d588347SPeter Klausler 80d588347SPeter Klauslersubroutine global2(x) bind(c,name="xyz") 90d588347SPeter Klausler integer, intent(in) :: x 100d588347SPeter Klauslerend subroutine 110d588347SPeter Klausler 120d588347SPeter Klauslersubroutine global3(x) 130d588347SPeter Klausler integer, intent(in) :: x 140d588347SPeter Klauslerend subroutine 150d588347SPeter Klausler 160d588347SPeter Klauslerpure subroutine global4(x) 170d588347SPeter Klausler integer, intent(in) :: x 180d588347SPeter Klauslerend subroutine 190d588347SPeter Klausler 200d588347SPeter Klauslersubroutine global5(x) 210d588347SPeter Klausler integer, intent(in) :: x 220d588347SPeter Klauslerend subroutine 230d588347SPeter Klausler 24*37d6c1ccSPeter Klausler! Regression check: don't emit bogus "Implicit declaration of function 'global7' has a different result type than in previous declaration" 25*37d6c1ccSPeter Klauslerrecursive function global6() 26*37d6c1ccSPeter Klausler integer global6, z, n 27*37d6c1ccSPeter Klauslerentry global7(n) result(z) 28*37d6c1ccSPeter Klausler if (n > 0) z = global7(n-1) 29*37d6c1ccSPeter Klauslerend function 30*37d6c1ccSPeter Klausler 310d588347SPeter Klauslerprogram test 320d588347SPeter Klausler interface 33036701a1SPeter Klausler !WARNING: The global subprogram 'global1' is not compatible with its local procedure declaration (incompatible dummy argument #1: incompatible dummy data object types: INTEGER(4) vs REAL(4)) 340d588347SPeter Klausler subroutine global1(x) 350d588347SPeter Klausler real, intent(in) :: x 360d588347SPeter Klausler end subroutine 370d588347SPeter Klausler subroutine global2(x) 380d588347SPeter Klausler real, intent(in) :: x 390d588347SPeter Klausler end subroutine 400d588347SPeter Klausler subroutine global3(x) bind(c,name="abc") 410d588347SPeter Klausler real, intent(in) :: x 420d588347SPeter Klausler end subroutine 430d588347SPeter Klausler subroutine global4(x) ! not PURE, but that's ok 440d588347SPeter Klausler integer, intent(in) :: x 450d588347SPeter Klausler end subroutine 460d588347SPeter Klausler !WARNING: The global subprogram 'global5' is not compatible with its local procedure declaration (incompatible procedure attributes: Pure) 470d588347SPeter Klausler pure subroutine global5(x) 480d588347SPeter Klausler integer, intent(in) :: x 490d588347SPeter Klausler end subroutine 50*37d6c1ccSPeter Klausler function global6() 51*37d6c1ccSPeter Klausler integer global6 52*37d6c1ccSPeter Klausler end function 53*37d6c1ccSPeter Klausler function global7(n) result(z) 54*37d6c1ccSPeter Klausler integer n, z 55*37d6c1ccSPeter Klausler end function 560d588347SPeter Klausler end interface 570d588347SPeter Klauslerend 58