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.

Reply via email to