From cfe989ca49dab9a3fda9e5401a932db168848304 Mon Sep 17 00:00:00 2001 From: Arnaud Charlet Date: Mon, 29 Jun 2020 04:18:27 -0400 Subject: [PATCH] [Ada] Convert from UTF_16 to UTF_8 fails for large values gcc/ada/ PR ada/95953 * libgnat/a-suenco.adb (Convert): Fix handling of third UTF-8 byte. --- gcc/ada/libgnat/a-suenco.adb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gcc/ada/libgnat/a-suenco.adb b/gcc/ada/libgnat/a-suenco.adb index 6d30f84e286..0b10a638a03 100644 --- a/gcc/ada/libgnat/a-suenco.adb +++ b/gcc/ada/libgnat/a-suenco.adb @@ -398,7 +398,7 @@ package body Ada.Strings.UTF_Encoding.Conversions is or Shift_Right (yyyyyyyy, 4)); Result (Len + 3) := Character'Val - (2#10_000000# or Shift_Left (yyyyyyyy and 2#1111#, 4) + (2#10_000000# or Shift_Left (yyyyyyyy and 2#1111#, 2) or Shift_Right (xxxxxxxx, 6)); Result (Len + 4) := Character'Val -- 2.30.2