From: Arnaud Charlet Date: Mon, 29 Jun 2020 08:18:27 +0000 (-0400) Subject: [Ada] Convert from UTF_16 to UTF_8 fails for large values X-Git-Tag: basepoints/gcc-12~4273 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=cfe989ca49dab9a3fda9e5401a932db168848304;p=thirdparty%2Fgcc.git [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. --- diff --git a/gcc/ada/libgnat/a-suenco.adb b/gcc/ada/libgnat/a-suenco.adb index 6d30f84e2864..0b10a638a033 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