On 8/18/22 08:19, Jan Engelhardt via tz wrote:
1769 if (!TYPE_SIGNED(time_t) && y < TM_YEAR_BASE) { CID 1491244 (#1 of 1): Use of 32-bit time_t (Y2K38_SAFETY) 1. store_truncates_time_t: A time_t value is stored in an integer with too few bits to accommodate it. The expression y is cast to int. 1770 int signed_y = y; ^^^^^^^^^^^^
The Coverity warning is clearly a false alarm. y is a time_t, so if time_t is unsigned and y < TM_YEAR_BASE, then 0≤ y<1900, and therefore assigning y to an int cannot possibly truncate y's value. If Coverity formerly didn't issue a false alarm here, it's a regression in Coverity. Perhaps you could file a bug with the Coverity maintainers. You might also mention a terminology glitch: the false alarm says "y is cast to int" but there's no cast in that line.