aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRyan Libby <rlibby@FreeBSD.org>2026-04-15 08:08:37 +0000
committerRyan Libby <rlibby@FreeBSD.org>2026-04-15 08:08:37 +0000
commit00dccc3164c6dff38350a1baeeea7238acf2efc3 (patch)
treea53fa866c3476766f1b7ced57dc23833bb0eaa01
parent3e27114a7f961aac49d75a663a55332375d0bef3 (diff)
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
-rw-r--r--sys/sys/time.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/sys/sys/time.h b/sys/sys/time.h
index 707565b6a6f1..6f18d8bd844d 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));
}