FYI, just pushed, to avoid this:

  lib/file-has-acl.c: In function 'have_xattr':
  lib/file-has-acl.c:54:1: error: function might be candidate for attribute 
'pure' if it is known to return normally [-Werror=suggest-attribute=pure]
     54 | have_xattr (char const *attr, char const *listbuf, ssize_t listsize)

>From 2bd4c8dc13de3121d76dad755a255c8e92fd46a7 Mon Sep 17 00:00:00 2001
From: Jim Meyering <meyer...@fb.com>
Date: Sun, 28 May 2023 09:41:08 -0700
Subject: [PATCH] file-has-acl: avoid warning from bleeding-edge GCC

* lib/file-has-acl.c: Include attribute.h.
(have_xattr): Declare with ATTRIBUTE_PURE,
to avoid new warning from GCC14-to-be.
* modules/file-has-acl (Depends-on): Add attribute.
Spotted while building coreutils with this:
gcc version 14.0.0 20230526 (experimental)
---
 ChangeLog            | 10 ++++++++++
 lib/file-has-acl.c   |  4 ++--
 modules/file-has-acl |  1 +
 3 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index e3a2507c47..93682f526b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2023-05-28  Jim Meyering  <meyer...@fb.com>
+
+	file-has-acl: avoid warning from bleeding-edge GCC
+	* lib/file-has-acl.c: Include attribute.h.
+	(have_xattr): Declare with ATTRIBUTE_PURE,
+	to avoid new warning from GCC14-to-be.
+	* modules/file-has-acl (Depends-on): Add attribute.
+	Spotted while building coreutils with this:
+	gcc version 14.0.0 20230526 (experimental)
+
 2023-05-28  Bruno Haible  <br...@clisp.org>

 	error: Avoid -Wint-in-bool-context warning.
diff --git a/lib/file-has-acl.c b/lib/file-has-acl.c
index 4cddc80bd1..13f08c3055 100644
--- a/lib/file-has-acl.c
+++ b/lib/file-has-acl.c
@@ -28,7 +28,7 @@
 #include "acl.h"

 #include "acl-internal.h"
-
+#include "attribute.h"
 #include "minmax.h"

 #if USE_ACL && HAVE_LINUX_XATTR_H && HAVE_LISTXATTR
@@ -50,7 +50,7 @@ enum {
 /* Return true if ATTR is in the set represented by the NUL-terminated
    strings in LISTBUF, which is of size LISTSIZE.  */

-static bool
+ATTRIBUTE_PURE static bool
 have_xattr (char const *attr, char const *listbuf, ssize_t listsize)
 {
   char const *blim = listbuf + listsize;
diff --git a/modules/file-has-acl b/modules/file-has-acl
index 199fccd6ca..ec93313dfd 100644
--- a/modules/file-has-acl
+++ b/modules/file-has-acl
@@ -8,6 +8,7 @@ m4/acl.m4

 Depends-on:
 acl-permissions
+attribute
 extern-inline
 minmax
 free-posix
-- 
2.41.0.rc2

Reply via email to