https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111813
Bug ID: 111813 Summary: Inconsistent limit in Ada.Calendar.Formatting Product: gcc Version: 14.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: ada Assignee: unassigned at gcc dot gnu.org Reporter: simon at pushface dot org CC: dkm at gcc dot gnu.org Target Milestone: --- Created attachment 56107 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=56107&action=edit Demonstrator The Value function's description (ARM 9.6.1(87)[1] 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 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. The attached demonstrator (calendar_format_value.adb) shows Image accepting an Elapsed_Time of 24h00m00s, converting it to "24:00:00"; given this string, Value raises Constraint_Error. This issue is present in GCC 10, 11, 12 and 13, but probably not worth backfitting. [1] http://www.ada-auth.org/standards/rm12_w_tc1/html/RM-9-6-1.html#p87