From: Jonathan Wakely Date: Wed, 13 Dec 2023 12:00:45 +0000 (+0000) Subject: libstdc++: Fix regression in std::format output of %Y for negative years X-Git-Tag: basepoints/gcc-15~3646 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ad537ccd525fd3af759febd6c0936f82de808a70;p=thirdparty%2Fgcc.git libstdc++: Fix regression in std::format output of %Y for negative years The change in r14-6468-ga01462ae8bafa8 was only supposed to apply to %C formats, not %Y. libstdc++-v3/ChangeLog: * include/bits/chrono_io.h (__formatter_chrono::_M_C_y_Y): Do not round century down for %Y formats. --- diff --git a/libstdc++-v3/include/bits/chrono_io.h b/libstdc++-v3/include/bits/chrono_io.h index b63b8592ebac..bcd76e4ab7b0 100644 --- a/libstdc++-v3/include/bits/chrono_io.h +++ b/libstdc++-v3/include/bits/chrono_io.h @@ -825,7 +825,7 @@ namespace __format { __s.assign(1, _S_plus_minus[1]); // For floored division -123//100 is -2 and -100//100 is -1 - if ((__ci * 100) != __yi) + if (__conv == 'C' && (__ci * 100) != __yi) ++__ci; } if (__ci >= 100) [[unlikely]]