diff options
| author | Ryan Libby <rlibby@FreeBSD.org> | 2026-04-15 08:08:37 +0000 |
|---|---|---|
| committer | Ryan Libby <rlibby@FreeBSD.org> | 2026-04-15 08:08:37 +0000 |
| commit | 00dccc3164c6dff38350a1baeeea7238acf2efc3 (patch) | |
| tree | a53fa866c3476766f1b7ced57dc23833bb0eaa01 | |
| parent | 3e27114a7f961aac49d75a663a55332375d0bef3 (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.h | 4 |
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)); } |
