]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
libstdc++: Report compilation error on formatting "%d" from month_last [PR120650]
authorTomasz Kamiński <tkaminsk@redhat.com>
Tue, 24 Jun 2025 07:17:12 +0000 (09:17 +0200)
committerTomasz Kamiński <tkaminsk@redhat.com>
Mon, 30 Jun 2025 10:46:13 +0000 (12:46 +0200)
For month_day we incorrectly reported day information to be available, which lead
to format_error being thrown from the call to formatter::format at runtime, instead
of making call to format ill-formed.

PR libstdc++/120650

libstdc++-v3/ChangeLog:

* include/bits/chrono_io.h
(formatter<chrono::month_day_last,_CharT>::parse): Call _M_parse with
only Month being available.

(cherry picked from commit 190aaaaf077fe5f318e168a7a1e1aa57058f377e)

libstdc++-v3/include/bits/chrono_io.h

index 32ef3533c720af74fc2a8cc48727feaea058295f..e9e6a440efb260d6fa137c0f4a8a04012229ade9 100644 (file)
@@ -1905,7 +1905,7 @@ namespace __format
     {
       constexpr typename basic_format_parse_context<_CharT>::iterator
       parse(basic_format_parse_context<_CharT>& __pc)
-      { return _M_f._M_parse(__pc, __format::_Month|__format::_Day); }
+      { return _M_f._M_parse(__pc, __format::_Month); }
 
       template<typename _Out>
        typename basic_format_context<_Out, _CharT>::iterator