--- /dev/null
+! { dg-do compile }
+!
+! Checks that PRIVATE/PUBLIC not allowed in submodules. Also, IMPORT
+! is not allowed in a module procedure interface body.
+!
+! Contributed by Paul Thomas <pault@gcc.gnu.org>
+!
+module foo_interface
+ implicit none
+ type foo
+ character(len=16), private :: byebye = "adieu, world! "
+ end type foo
+end module
+
+module foo_interface_brother
+ use foo_interface
+ implicit none
+ interface
+ module subroutine array3(this, that)
+ import ! { dg-error "not permitted in a module procedure interface body" }
+ type(foo), intent(in), dimension(:) :: this
+ type(foo), intent(inOUT), allocatable, dimension(:) :: that
+ end subroutine
+ end interface
+end module
+
+SUBMODULE (foo_interface) foo_interface_son
+ private ! { dg-error "PRIVATE statement" }
+ public ! { dg-error "PUBLIC statement" }
+ integer, public :: i ! { dg-error "PUBLIC attribute" }
+ integer, private :: j ! { dg-error "PRIVATE attribute" }
+ type :: bar
+ private ! { dg-error "PRIVATE statement" }
+ public ! { dg-error "PUBLIC statement" }
+ integer, private :: i ! { dg-error "PRIVATE attribute" }
+ integer, public :: j ! { dg-error "PUBLIC attribute" }
+ end type bar
+contains
+!
+end submodule foo_interface_son
+
+SUBMODULE (foo_interface) foo_interface_daughter
+!
+contains
+ subroutine foobar (arg)
+ type(foo) :: arg
+ arg%byebye = "hello, world! " ! Access to private component is OK
+ end subroutine
+end SUBMODULE foo_interface_daughter
+
+end
+++ /dev/null
-! { dg-do compile }
-!
-! Checks that PRIVATE/PUBLIC not allowed in submodules. Also, IMPORT
-! is not allowed in a module procedure interface body.
-!
-! Contributed by Paul Thomas <pault@gcc.gnu.org>
-!
-module foo_interface
- implicit none
- type foo
- character(len=16), private :: byebye = "adieu, world! "
- end type foo
-end module
-
-module foo_interface_brother
- use foo_interface
- implicit none
- interface
- module subroutine array3(this, that)
- import ! { dg-error "not permitted in a module procedure interface body" }
- type(foo), intent(in), dimension(:) :: this
- type(foo), intent(inOUT), allocatable, dimension(:) :: that
- end subroutine
- end interface
-end module
-
-SUBMODULE (foo_interface) foo_interface_son
- private ! { dg-error "PRIVATE statement" }
- public ! { dg-error "PUBLIC statement" }
- integer, public :: i ! { dg-error "PUBLIC attribute" }
- integer, private :: j ! { dg-error "PRIVATE attribute" }
- type :: bar
- private ! { dg-error "PRIVATE statement" }
- public ! { dg-error "PUBLIC statement" }
- integer, private :: i ! { dg-error "PRIVATE attribute" }
- integer, public :: j ! { dg-error "PUBLIC attribute" }
- end type bar
-contains
-!
-end submodule foo_interface_son
-
-SUBMODULE (foo_interface) foo_interface_daughter
-!
-contains
- subroutine foobar (arg)
- type(foo) :: arg
- arg%byebye = "hello, world! " ! Access to private component is OK
- end subroutine
-end SUBMODULE foo_interface_daughter
-
-end