blob: eab398fd3d3f9be48458e9a7bdb180e176d378ec [file] [log] [blame]
! { dg-do compile }
!
! Test the fix for PR78474.
!
! Contributed by Nicholas Brearly <nick.brealey@cobham.com>
!
module mtop
implicit none
real :: r
interface
module subroutine sub1()
end subroutine
end interface
interface
module subroutine sub2()
end subroutine
end interface
interface
module subroutine sub3()
end subroutine
end interface
end module mtop
submodule (mtop) submod
implicit none
real :: s
contains
module subroutine sub1
r = 0.0
end subroutine sub1
end
submodule (mtop:submod) subsubmod
contains
module subroutine sub2
r = 1.0
s = 1.0
end subroutine sub2
end
submodule (mtop:submod:subsubmod) subsubsubmod ! { dg-error "Syntax error in SUBMODULE statement" }
contains
module subroutine sub3 ! { dg-error "found outside of a module" }
r = 2.0 ! { dg-error "Unexpected assignment" }
s = 2.0 ! { dg-error "Unexpected assignment" }
end subroutine sub3 ! { dg-error "Expecting END PROGRAM statement" }
end