function_kinds_1.f90

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

F90
55
字号
! { dg-do run }! Tests the fix for PR31229, PR31154 and PR33334, in which! the KIND and TYPE parameters in the function declarations! would cause errors.!! Contributed by Brooks Moses <brooks@gcc.gnu.org>!           and Tobias Burnus <burnus@gcc.gnu.org>!module kinds  implicit none  integer, parameter :: dp = selected_real_kind(6)  type t     integer :: i  end type t  interface    real(dp) function y()      import    end function  end interfaceend module kindstype(t) function func() ! The legal bit of PR33334  use kinds  func%i = 5end function funcreal(dp) function another_dp_before_defined ()  use kinds  another_dp_before_defined = real (kind (4.0_DP))end functionmodule mymodule;contains  REAL(2*DP) function declared_dp_before_defined()    use kinds, only: dp    real (dp) :: x    declared_dp_before_defined = 1.0_dp    x = 1.0_dp    declared_dp_before_defined = real (kind (x))  end functionend module mymodule  use kinds  use mymodule  type(t), external :: func  type(t) :: z  if (kind (y ()) .ne. 4) call abort ()  if (kind (declared_dp_before_defined ()) .ne. 8) call abort ()  if (int (declared_dp_before_defined ()) .ne. 4) call abort ()  if (int (another_dp_before_defined ()) .ne. 4) call abort ()  z = func()  if (z%i .ne. 5) call abort ()end! { dg-final { cleanup-modules "kinds mymodule" } }

⌨️ 快捷键说明

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