proc_decl_1.f90

来自「用于进行gcc测试」· F90 代码 · 共 78 行

F90
78
字号
! { dg-do compile }! This tests various error messages for PROCEDURE declarations.! Contributed by Janus Weil <jaydub66@gmail.com>module m  abstract interface    subroutine sub()    end subroutine    subroutine sub2() bind(c)    end subroutine  end interface  procedure(), public, private :: a  ! { dg-error "was already specified" }  procedure(sub),bind(C) :: a2  ! { dg-error "requires an interface with BIND.C." }  procedure(sub2), public, bind(c, name="myEF") :: e, f  ! { dg-error "Multiple identifiers provided with single NAME= specifier" }  procedure(sub2), bind(C, name=""), pointer :: g  ! { dg-error "may not have POINTER attribute" }  public:: h  procedure(),public:: h  ! { dg-error "was already specified" }end module mprogram prog  interface z    subroutine z1()    end subroutine    subroutine z2(a)      integer :: a    end subroutine  end interface  procedure(z) :: bar   ! { dg-error "may not be generic" }  procedure(), allocatable:: b  ! { dg-error "PROCEDURE attribute conflicts with ALLOCATABLE attribute" }  procedure(), save:: c  ! { dg-error "PROCEDURE attribute conflicts with SAVE attribute" }  procedure(dcos) :: my1  procedure(amax0) :: my2  ! { dg-error "not allowed in PROCEDURE statement" }  procedure(),pointer:: ptr  ! { dg-error "not yet implemented" }  type t    procedure(),pointer:: p  ! { dg-error "not yet implemented" }  end type  real f, x  f(x) = sin(x**2)  external oo  procedure(f) :: q  ! { dg-error "may not be a statement function" }  procedure(oo) :: p  ! { dg-error "must be explicit" }contains  subroutine foo(a,c)    abstract interface      subroutine b() bind(C)      end subroutine b    end interface    procedure(b), bind(c,name="hjj") :: a  ! { dg-error "may not have BIND.C. attribute with NAME" }    procedure(c),intent(in):: c  ! { dg-error "PROCEDURE attribute conflicts with INTENT attribute" }  end subroutine foo end programsubroutine abc procedure() :: abc2entry abc2(x)  ! { dg-error "PROCEDURE attribute conflicts with ENTRY attribute" } real xend subroutine

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?