From: Justin Squirek Date: Fri, 27 Oct 2023 00:08:07 +0000 (+0000) Subject: ada: Fix string indexing within GNAT.Calendar.Time_IO.Value X-Git-Tag: basepoints/gcc-15~4485 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=5c7854b28f56634cc3a8afb7889d1a76883a0cf3;p=thirdparty%2Fgcc.git ada: Fix string indexing within GNAT.Calendar.Time_IO.Value The patch fixes an issue in the compiler whereby calls to GNAT.Calendar.Time_IO.Value where the actual for formal String Date with indexing starting at any value besides one would result in a spurious runtime exception. gcc/ada/ * libgnat/g-catiio.adb (Value): Modify conditionals to use 'Last instead of 'Length --- diff --git a/gcc/ada/libgnat/g-catiio.adb b/gcc/ada/libgnat/g-catiio.adb index 42b86cce4a15..d80e6fc1ca0c 100644 --- a/gcc/ada/libgnat/g-catiio.adb +++ b/gcc/ada/libgnat/g-catiio.adb @@ -849,7 +849,7 @@ package body GNAT.Calendar.Time_IO is begin Advance_Digits (Num_Digits => 1); - while Index <= Date'Length and then Symbol in '0' .. '9' loop + while Index <= Date'Last and then Symbol in '0' .. '9' loop Advance; end loop; @@ -1005,7 +1005,7 @@ package body GNAT.Calendar.Time_IO is -- Check for trailing characters - if Index /= Date'Length + 1 then + if Index /= Date'Last + 1 then raise Wrong_Syntax; end if;