On 24 Oct 2023, at 10:49, Arnaud Charlet <char...@adacore.com> wrote: > > This change is OK, thank you.
Can it be committed, then, please? >> The description of the second Value function (returning Duration) (ARM >> 9.6.1(87) >> doesn't place any limitation on the Elapsed_Time parameter's value, beyond >> "Constraint_Error is raised if the string is not formatted as described for >> Image, or >> the function cannot interpret the given string as a Duration value". >> >> It would seem reasonable that Value and Image should be consistent, in that >> any >> string produced by Image should be accepted by Value. Since Image must >> produce >> a two-digit representation of the Hours, there's an implication that its >> Elapsed_Time parameter should be less than 100.0 hours (the ARM merely says >> that in that case the result is implementation-defined). >> >> The current implementation of Value raises Constraint_Error if the >> Elapsed_Time >> parameter is greater than or equal to 24 hours. >> >> This patch removes the restriction, so that the Elapsed_Time parameter must >> only >> be less than 100.0 hours. >> >> gcc/ada/Changelog: >> >> 2023-10-15 Simon Wright <si...@pushface.org> >> >> PR ada/111813 >> >> * gcc/ada/libgnat/a-calfor.adb (Value (2)): Allow values of parameter >> Elapsed_Time greater than or equal to 24 hours, by doing the >> hour calculations in Natural rather than Hour_Number (0 .. 23). >> Calculate the result directly rather than by using Seconds_Of >> (whose Hour parameter is of type Hour_Number). >> >> If an exception occurs of type Constraint_Error, re-raise it >> rather than raising a new CE. >> >> gcc/testsuite/Changelog: >> >> 2023-10-15 Simon Wright <si...@pushface.org> >> >> PR ada/111813 >> >> * gcc/testsuite/gnat.dg/calendar_format_value.adb: New test.