import2.f90

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

F90
81
字号
! { dg-do compile }! { dg-options "-std=f95" }! { dg-shouldfail "Fortran 2003 feature with -std=f95" }! Test whether import does not work with -std=f95! PR fortran/29601subroutine test(x)  type myType3    sequence    integer :: i  end type myType3  type(myType3) :: x  if(x%i /= 7) call abort()  x%i = 1end subroutine testsubroutine bar(x,y)  type myType    sequence    integer :: i  end type myType  type(myType) :: x  integer(8) :: y  if(y /= 8) call abort()  if(x%i /= 2) call abort()  x%i = 5  y   = 42end subroutine barmodule testmod  implicit none  integer, parameter :: kind = 8  type modType    real :: rv  end type modType  interface    subroutine other(x,y)      import ! { dg-error "Fortran 2003: IMPORT statement" }      type(modType) :: y ! { dg-error "not been declared within the interface" }      real(kind)    :: x ! { dg-error "has not been declared" }    end subroutine  end interfaceend module testmodprogram foo  integer, parameter :: dp = 8  type myType    sequence    integer :: i  end type myType  type myType3    sequence    integer :: i  end type myType3  interface    subroutine bar(x,y)      import ! { dg-error "Fortran 2003: IMPORT statement" }      type(myType) :: x ! { dg-error "not been declared within the interface" }      integer(dp)  :: y ! { dg-error "has not been declared" }    end subroutine bar    subroutine test(x)      import :: myType3 ! { dg-error "Fortran 2003: IMPORT statement" }      import myType3 ! { dg-error "Fortran 2003: IMPORT statement" }      type(myType3) :: x ! { dg-error "not been declared within the interface" }    end subroutine test  end interface  type(myType) :: y  type(myType3) :: z  integer(dp) :: i8  y%i = 2  i8 = 8  call bar(y,i8) ! { dg-error "Type mismatch in argument" }  if(y%i /= 5 .or. i8/= 42) call abort()  z%i = 7  call test(z) ! { dg-error "Type mismatch in argument" }  if(z%i /= 1) call abort()end program foo! { dg-final { cleanup-modules "testmod" } }

⌨️ 快捷键说明

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