[gcc r14-6493] libstdc++: Fix regression in std::format output of %Y for negative years
Jonathan Wakely
redi@gcc.gnu.org
Wed Dec 13 12:30:34 GMT 2023
https://gcc.gnu.org/g:ad537ccd525fd3af759febd6c0936f82de808a70
commit r14-6493-gad537ccd525fd3af759febd6c0936f82de808a70
Author: Jonathan Wakely <jwakely@redhat.com>
Date: Wed Dec 13 12:00:45 2023 +0000
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:
---
libstdc++-v3/include/bits/chrono_io.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libstdc++-v3/include/bits/chrono_io.h b/libstdc++-v3/include/bits/chrono_io.h
index b63b8592eba..bcd76e4ab7b 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]]
More information about the Libstdc++-cvs
mailing list