2 ! { dg-options "-std=legacy" }
4 ! This tests various error messages for PROCEDURE declarations.
5 ! Contributed by Janus Weil <jaydub66@gmail.com>
12 subroutine sub2() bind(c
)
16 procedure(), public
, private
:: a
! { dg-error "was already specified" }
17 procedure(sub
),bind(C
) :: a2
! { dg-error "requires an interface with BIND.C." }
18 procedure(sub2
), public
, bind(c
, name
="myEF") :: e
, f
! { dg-error "Multiple identifiers provided with single NAME= specifier" }
19 procedure(sub2
), bind(C
, name
=""), pointer :: g
! { dg-error "may not have POINTER attribute" }
22 procedure(),public
:: h
! { dg-error "was already specified" }
28 entry abc2(x
) ! { dg-error "PROCEDURE attribute conflicts with ENTRY attribute" }
44 procedure(z
) :: bar
! { dg-error "may not be generic" }
46 procedure(), allocatable
:: b
! { dg-error "PROCEDURE attribute conflicts with ALLOCATABLE attribute" }
47 procedure(), save:: c
! { dg-error "PROCEDURE attribute conflicts with SAVE attribute" }
49 procedure(dcos
) :: my1
50 procedure(amax0
) :: my2
! { dg-error "not allowed in PROCEDURE statement" }
56 procedure(f
) :: q
! { dg-error "may not be a statement function" }
57 procedure(oo
) :: p
! { dg-error "must be explicit" }
60 procedure ( up
) :: s
! { dg-error "must be explicit" }
62 procedure(t
) :: t
! { dg-error "may not be used as its own interface" }
68 subroutine foo(a
,c
) ! { dg-error "PROCEDURE attribute conflicts with INTENT attribute" }
70 subroutine b() bind(C
)
73 procedure(b
), bind(c
,name
="hjj") :: a
! { dg-error "may not have BIND.C. attribute with NAME" }
74 procedure(b
),intent(in
):: c