2 ! Tests the fix for the regression PR34080, in which the character
3 ! length of the assumed length arguments to TRANSFER were getting
6 ! Drew McCormack <drewmccormack@mac.com>
11 character(len
=1) :: singleByte
14 type (ByteType
), save :: BytesPrototype(1)
18 function StringToBytes(v
) result (bytes
)
19 character(len
=*), intent(in
) :: v
20 type (ByteType
) :: bytes(size(transfer(v
, BytesPrototype
)))
21 bytes
= transfer(v
, BytesPrototype
)
24 subroutine BytesToString(bytes
, string
)
25 type (ByteType
), intent(in
) :: bytes(:)
26 character(len
=*), intent(out
) :: string
27 character(len
=1) :: singleChar(1)
29 numChars
= size(transfer(bytes
,singleChar
))
31 string
= transfer(bytes
, string
)
32 string(numChars
+1:) = ''
40 character(len
=100) :: str
41 call BytesToString( StringToBytes('Hi'), str
)
42 if (trim(str
) .ne
. "Hi") call abort ()
44 ! { dg-final { cleanup-modules "TransferBug" } }