From 43f524c1c4f1aa79e3c443b45af9464a8b8943b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20Kami=C5=84ski?= Date: Wed, 8 Oct 2025 15:14:04 +0200 Subject: [PATCH] libstdc++: Fix type in computation of _M_weekday_index. The value should use divide instead of modulo, as given 1st of month being weekday X (Mon, Tue, ...), 01 is always X[1], 08 is X[2], e.t.c. This values is currently not observable, as there is no user-accessible format specifier that will print it, however it may be exposed in future. libstdc++-v3/ChangeLog: * include/bits/chrono_io.h (_ChronoData::_M_fill_day): Replace '%' by '/'. --- 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 79a44d128b12..690c10d79ce5 100644 --- a/libstdc++-v3/include/bits/chrono_io.h +++ b/libstdc++-v3/include/bits/chrono_io.h @@ -463,7 +463,7 @@ namespace __format { _M_day = __d; __parts -= _ChronoParts::_Day; - _M_weekday_index = ((unsigned)__d + 6u) % 7u; + _M_weekday_index = ((unsigned)__d + 6u) / 7u; __parts -= _ChronoParts::_WeekdayIndex; return __parts; }