From 5c7854b28f56634cc3a8afb7889d1a76883a0cf3 Mon Sep 17 00:00:00 2001 From: Justin Squirek Date: Fri, 27 Oct 2023 00:08:07 +0000 Subject: [PATCH] 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 --- gcc/ada/libgnat/g-catiio.adb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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; -- 2.47.2