This change is OK, thank you.

> 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.

Reply via email to