blob: 7b67e6c85979d12d8eb0fb91828d73674d5ad980 [file] [log] [blame]
! { dg-do compile }
! { dg-options "-std=f95" }
! PR fortran/31472
! Access specifications: Invalid Fortran 95 code
module test
implicit none
integer, public :: x
public :: x ! { dg-error "was already specified" }
private :: x ! { dg-error "was already specified" }
end module test
module mod
implicit none
private
type, public :: bar
PRIVATE
integer, public :: y ! { dg-error "Fortran 2003: Attribute PUBLIC" }
integer, public :: z ! { dg-error "Fortran 2003: Attribute PUBLIC" }
end type ! { dg-error "Derived type definition at" }
contains
subroutine foo
integer :: x
private :: x ! { dg-error "only allowed in the specification part of a module" }
type, private :: t ! { dg-error "only be PRIVATE in the specification part of a module" }
integer :: z
end type t ! { dg-error "Expecting END SUBROUTINE statement" }
type :: ttt
integer,public :: z ! { dg-error "not allowed outside of the specification part of a module" }
end type ttt ! { dg-error "Derived type definition at" }
end subroutine
end module
program x
implicit none
integer :: i
public :: i ! { dg-error "only allowed in the specification part of a module" }
integer,public :: j ! { dg-error "not allowed outside of the specification part of a module" }
end program x
! { dg-final { cleanup-modules "test mod" } }