From d55ee11f0c2758f97a8b7523ddfa4f98f1442dc0 Mon Sep 17 00:00:00 2001
From: Paul Eggert <eggert@cs.ucla.edu>
Date: Tue, 16 Jan 2024 17:21:08 -0800
Subject: [PATCH] posixtm: pacify clang 18
MIME-Version: 1.0
Content-Type: text/plain; charset=utf8
Content-Transfer-Encoding: 8bit

Problem reported by Khem Raj in:
https://lists.gnu.org/r/bug-gnulib/2024-01/msg00045.html
* lib/posixtm.c (posixtime): Pacify clang 18 by converting bool to int.
Arguably this is a bug in draft C2x, since the non-pointer args to
ckd_add should promote just like any other expressions do;
but that’s not clang’s fault.
---
 ChangeLog     | 10 ++++++++++
 lib/posixtm.c |  2 +-
 2 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/ChangeLog b/ChangeLog
index 512b97dd7b..ba4ef25796 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2024-01-16  Paul Eggert  <eggert@cs.ucla.edu>
+
+	posixtm: pacify clang 18
+	Problem reported by Khem Raj in:
+	https://lists.gnu.org/r/bug-gnulib/2024-01/msg00045.html
+	* lib/posixtm.c (posixtime): Pacify clang 18 by converting bool to int.
+	Arguably this is a bug in draft C2x, since the non-pointer args to
+	ckd_add should promote just like any other expressions do;
+	but that’s not clang’s fault.
+
 2024-01-15  Bruno Haible  <bruno@clisp.org>
 
 	test-framework-sh: Improve portability to native Windows and OS/2.
diff --git a/lib/posixtm.c b/lib/posixtm.c
index ef9f55f873..a072c7cad0 100644
--- a/lib/posixtm.c
+++ b/lib/posixtm.c
@@ -191,7 +191,7 @@ posixtime (time_t *p, const char *s, unsigned int syntax_bits)
              | (tm0.tm_min ^ tm1.tm_min)
              | (tm0.tm_sec ^ tm1.tm_sec)))
         {
-          if (ckd_add (&t, t, leapsec))
+          if (ckd_add (&t, t, +leapsec))
             return false;
           *p = t;
           return true;
-- 
2.39.5