Thanks, I installed the attached simpler (1-byte!) fix. Please give it a
try, as I lack easy access to clang 18.From 67c298c36f69b6906840b7584be06b7b5f33f829 Mon Sep 17 00:00:00 2001
From: Paul Eggert <egg...@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=UTF-8
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 e42d2c31ab..8551538ee8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2024-01-16 Paul Eggert <egg...@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-07 Jim Meyering <meyer...@meta.com>
update-copyright: handle more cases
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.43.0