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