git: 00dccc3164c6 - main - sys/time: appease gcc -Wtype-limits
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 15 Apr 2026 08:35:21 UTC
The branch main has been updated by rlibby:
URL: https://cgit.FreeBSD.org/src/commit/?id=00dccc3164c6dff38350a1baeeea7238acf2efc3
commit 00dccc3164c6dff38350a1baeeea7238acf2efc3
Author: Ryan Libby <rlibby@FreeBSD.org>
AuthorDate: 2026-04-15 08:08:37 +0000
Commit: Ryan Libby <rlibby@FreeBSD.org>
CommitDate: 2026-04-15 08:08:37 +0000
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 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));
}