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 + -
显示快捷键?