aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Wakely <jwakely@redhat.com>2023-12-13 12:00:45 +0000
committerJonathan Wakely <jwakely@redhat.com>2023-12-13 12:30:14 +0000
commitad537ccd525fd3af759febd6c0936f82de808a70 (patch)
tree1ff8b22bed881ba86e9238a30ab5e3f99149812a
parent36cb7be477885a2464fe9a70467278c7debd5e79 (diff)
downloadgcc-ad537ccd525fd3af759febd6c0936f82de808a70.zip
gcc-ad537ccd525fd3af759febd6c0936f82de808a70.tar.gz
gcc-ad537ccd525fd3af759febd6c0936f82de808a70.tar.bz2
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.
-rw-r--r--libstdc++-v3/include/bits/chrono_io.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/libstdc++-v3/include/bits/chrono_io.h b/libstdc++-v3/include/bits/chrono_io.h
index b63b859..bcd76e4 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]]