Thanks, I installed the attached patch into Gnulib.
>From fff1ad350b7d1a10c136b0aa00cba9b0776cc2c7 Mon Sep 17 00:00:00 2001
From: Paul Eggert <egg...@cs.ucla.edu>
Date: Fri, 30 Nov 2018 16:25:38 -0800
Subject: [PATCH] memrchr: port better to clang

* lib/memrchr.c (__memrchr): Cast to void * instead of to
longword *, to pacify clang -Wcast-align (Bug#33544).
---
 ChangeLog     | 6 ++++++
 lib/memrchr.c | 2 +-
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/ChangeLog b/ChangeLog
index d0ccda7cc..85e987842 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2018-11-30  Paul Eggert  <egg...@cs.ucla.edu>
+
+	memrchr: port better to clang
+	* lib/memrchr.c (__memrchr): Cast to void * instead of to
+	longword *, to pacify clang -Wcast-align (Bug#33544).
+
 2018-11-29  Eric Blake  <ebl...@redhat.com>
 
 	docs: mention printf %m considerations
diff --git a/lib/memrchr.c b/lib/memrchr.c
index 99acfd9c5..2efc7cb97 100644
--- a/lib/memrchr.c
+++ b/lib/memrchr.c
@@ -68,7 +68,7 @@ __memrchr (void const *s, int c_in, size_t n)
     if (*--char_ptr == c)
       return (void *) char_ptr;
 
-  longword_ptr = (const longword *) char_ptr;
+  longword_ptr = (const void *) char_ptr;
 
   /* All these elucidatory comments refer to 4-byte longwords,
      but the theory applies equally well to any size longwords.  */
-- 
2.19.2

Reply via email to