result_in_spec_1.f90
来自「用于进行gcc测试」· F90 代码 · 共 53 行
F90
53 行
! { dg-do run }! Tests the check for PR31215, in which actual/formal interface ! was not being correctly handled for the size of 'r' because! it is a result.!! Contributed by Joost VandeVondele <jv244@cam.ac.uk>!module test1 implicit nonecontains character(f(x)) function test2(x) result(r) implicit integer (x) dimension r(len(r)+1) integer, intent(in) :: x interface pure function f(x) integer, intent(in) :: x integer f end function f end interface integer i do i = 1, len(r) r(:)(i:i) = achar(mod(i,32)+iachar('@')) end do end function test2end module test1program test use test1 implicit none! Original problem if (len(test2(10)) .ne. 21) call abort ()! Check non-intrinsic calls are OK and check that fix does! not confuse result variables. if (any (myfunc (test2(1)) .ne. "ABC")) call abort ()contains function myfunc (ch) result (chr) character(len(ch)) :: chr(4) character (*) :: ch(:) if (len (ch) .ne. 3) call abort () if (any (ch .ne. "ABC")) call abort () chr = test2 (1) if (len(test2(len(chr))) .ne. 7) call abort () end function myfuncend program testpure function f(x) integer, intent(in) :: x integer f f = 2*x+1end function f! { dg-final { cleanup-modules "test1" } }
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?