| ! { dg-do run } |
| ! { dg-options "-fbackslash" } |
| ! |
| ! PR fortran/37025 |
| ! |
| ! Check whether transferring to character(kind=4) and transferring back works |
| ! |
| implicit none |
| character(len=4,kind=4) :: str |
| integer(4) :: buffer(4) = [int(z'039f'),int(z'03cd'),int(z'03c7'), & |
| int(z'30b8') ], & |
| buffer2(4) |
| |
| open(6,encoding="UTF-8") |
| str = transfer(buffer, str) |
| !print *, str |
| !print *, 4_'\u039f\u03cd\u03c7\u30b8' |
| if (str /= 4_'\u039f\u03cd\u03c7\u30b8') call abort() |
| str = transfer([int(z'039f'),int(z'03cd'),int(z'03c7'), & |
| int(z'30b8') ], str) |
| if (str /= 4_'\u039f\u03cd\u03c7\u30b8') call abort() |
| |
| buffer2 = transfer(4_'\u039f\u03cd\u03c7\u30b8', buffer2, 4) |
| !print *, buffer |
| !print *, buffer2 |
| buffer2 = transfer(str, buffer2, 4) |
| if (any(buffer2 /= buffer)) call abort() |
| end |