1! { dg-do run }
2! { dg-options "-fbackslash" }
3!
4! PR fortran/37025
5!
6! Check whether transferring to character(kind=4) and transferring back works
7!
8implicit none
9character(len=4,kind=4) :: str
10integer(4) :: buffer(4) = [int(z'039f'),int(z'03cd'),int(z'03c7'),  &
11                           int(z'30b8') ], &
12              buffer2(4)
13
14open(6,encoding="UTF-8")
15str = transfer(buffer, str)
16!print *, str
17!print *, 4_'\u039f\u03cd\u03c7\u30b8'
18if (str /= 4_'\u039f\u03cd\u03c7\u30b8') call abort()
19str = transfer([int(z'039f'),int(z'03cd'),int(z'03c7'),  &
20                           int(z'30b8') ], str)
21if (str /= 4_'\u039f\u03cd\u03c7\u30b8') call abort()
22
23buffer2 = transfer(4_'\u039f\u03cd\u03c7\u30b8', buffer2, 4)
24!print *, buffer
25!print *, buffer2
26buffer2 = transfer(str, buffer2, 4)
27if (any(buffer2 /= buffer)) call abort()
28end
29