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" } }