transfer_assumed_size_1.f90
来自「用于进行gcc测试」· F90 代码 · 共 46 行
F90
46 行
! { dg-do run }! Tests the fix for the regression PR34080, in which the character! length of the assumed length arguments to TRANSFER were getting! lost.!! Drew McCormack <drewmccormack@mac.com>!module TransferBug type ByteType private character(len=1) :: singleByte end type type (ByteType), save :: BytesPrototype(1)contains function StringToBytes(v) result (bytes) character(len=*), intent(in) :: v type (ByteType) :: bytes(size(transfer(v, BytesPrototype))) bytes = transfer(v, BytesPrototype) end function subroutine BytesToString(bytes, string) type (ByteType), intent(in) :: bytes(:) character(len=*), intent(out) :: string character(len=1) :: singleChar(1) integer :: numChars numChars = size(transfer(bytes,singleChar)) string = '' string = transfer(bytes, string) string(numChars+1:) = '' end subroutineend moduleprogram main use TransferBug character(len=100) :: str call BytesToString( StringToBytes('Hi'), str ) if (trim(str) .ne. "Hi") call abort ()end program! { dg-final { cleanup-modules "TransferBug" } }
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?