From 00dccc3164c6dff38350a1baeeea7238acf2efc3 Mon Sep 17 00:00:00 2001 From: Ryan Libby Date: Wed, 15 Apr 2026 01:08:37 -0700 Subject: [PATCH] sys/time: appease gcc -Wtype-limits In environments where time_t is 32 bits, including the 32-bit library build on amd64, the overflow being tested for cannot happen, and gcc complains with -Wtype-limits, causing the gcc build to fail. Work around this by ifdef'ing out the saturation code on i386. Reviewed by: imp, jfree Discussed with: markj Fixes: e3799530b3ba ("sys/time: Add saturating sbt conversions") Differential Revision: https://reviews.freebsd.org/D56369 --- sys/sys/time.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sys/sys/time.h b/sys/sys/time.h index 707565b6a6f..6f18d8bd844 100644 --- a/sys/sys/time.h +++ b/sys/sys/time.h @@ -355,10 +355,12 @@ tstosbt(struct timespec _ts) static __inline sbintime_t tstosbt_sat(struct timespec _ts) { +#ifndef __i386__ if (_ts.tv_sec > SBT_MAX >> 32) return (SBT_MAX); if (_ts.tv_sec < -(SBT_MAX >> 32) - 1) return (-SBT_MAX - 1); +#endif return (tstosbt(_ts)); } @@ -382,10 +384,12 @@ tvtosbt(struct timeval _tv) static __inline sbintime_t tvtosbt_sat(struct timeval _tv) { +#ifndef __i386__ if (_tv.tv_sec > SBT_MAX >> 32) return (SBT_MAX); if (_tv.tv_sec < -(SBT_MAX >> 32) - 1) return (-SBT_MAX - 1); +#endif return (tvtosbt(_tv)); }