Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 24 Apr 2026 15:29:32 +0000
From:      John Baldwin <jhb@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org
Cc:        Ryan Libby <rlibby@FreeBSD.org>
Subject:   git: 3a86c769feb9 - stable/15 - sys/time: appease gcc -Wtype-limits
Message-ID:  <69eb8c5c.362e4.19751ccb@gitrepo.freebsd.org>

index | next in thread | raw e-mail

The branch stable/15 has been updated by jhb:

URL: https://cgit.FreeBSD.org/src/commit/?id=3a86c769feb91a4b4e5817d07fa9eb62eb15b114

commit 3a86c769feb91a4b4e5817d07fa9eb62eb15b114
Author:     Ryan Libby <rlibby@FreeBSD.org>
AuthorDate: 2026-04-15 08:08:37 +0000
Commit:     John Baldwin <jhb@FreeBSD.org>
CommitDate: 2026-04-24 15:26:40 +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
    (cherry picked from commit 00dccc3164c6dff38350a1baeeea7238acf2efc3)
---
 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));
 }
 


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?69eb8c5c.362e4.19751ccb>