From cb7ca96f688fc239cd060b359e93c9a0bb342950 Mon Sep 17 00:00:00 2001 From: Howard Hinnant Date: Tue, 19 Mar 2019 19:51:32 -0400 Subject: [PATCH] Protect weekday_from_days from signed overflow Found by static analyzer. This change makes weekday_from_days slightly more efficient. --- include/date/date.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/date/date.h b/include/date/date.h index 318dfca..5938c4e 100644 --- a/include/date/date.h +++ b/include/date/date.h @@ -1719,8 +1719,8 @@ inline unsigned char weekday::weekday_from_days(int z) NOEXCEPT { - return static_cast(static_cast( - z >= -4 ? (z+4) % 7 : (z+5) % 7 + 6)); + auto u = static_cast(z); + return static_cast(z >= -4 ? (u+4) % 7 : u % 7); } CONSTCD11