From 91faea6dc4a275ff63dc5aa787f824abb3392d48 Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Sat, 28 Jan 2023 09:33:12 +0100 Subject: [PATCH] Avoid clang warnings regarding [[__maybe_unused__]]. MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit * m4/gnulib-common.m4 (gl_COMMON_BODY): For clang versions ≥ 6, < 10, in C++ mode, ignore the __has_c_attribute value and define _GL_ATTRIBUTE_MAYBE_UNUSED to __attribute__ ((__unused__)), not [[__maybe_unused__]]. --- ChangeLog | 8 ++++++++ m4/gnulib-common.m4 | 12 +++++++++--- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 3833faffb7..088a18bdad 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2023-01-28 Bruno Haible + + Avoid clang warnings regarding [[__maybe_unused__]]. + * m4/gnulib-common.m4 (gl_COMMON_BODY): For clang versions ≥ 6, < 10, + in C++ mode, ignore the __has_c_attribute value and define + _GL_ATTRIBUTE_MAYBE_UNUSED to __attribute__ ((__unused__)), not + [[__maybe_unused__]]. + 2023-01-27 Bruno Haible stddef: Fix test-stddef compilation error on FreeBSD 12/x86. diff --git a/m4/gnulib-common.m4 b/m4/gnulib-common.m4 index facc3404fa..893465c02e 100644 --- a/m4/gnulib-common.m4 +++ b/m4/gnulib-common.m4 @@ -1,4 +1,4 @@ -# gnulib-common.m4 serial 75a +# gnulib-common.m4 serial 75b dnl Copyright (C) 2007-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -351,9 +351,15 @@ AC_DEFUN([gl_COMMON_BODY], [ in C++ also: class. */ /* In C++ and C23, this is spelled [[__maybe_unused__]]. GCC's syntax is __attribute__ ((__unused__)). - clang supports both syntaxes. */ + clang supports both syntaxes. Except that with clang ≥ 6, < 10, in C++ mode, + __has_c_attribute (__maybe_unused__) yields true but the use of + [[__maybe_unused__]] nevertheless produces a warning. */ #ifndef _GL_ATTRIBUTE_MAYBE_UNUSED -# ifdef __has_c_attribute +# if defined __clang__ && defined __cplusplus +# if __clang_major__ >= 10 +# define _GL_ATTRIBUTE_MAYBE_UNUSED [[__maybe_unused__]] +# endif +# elif defined __has_c_attribute # if __has_c_attribute (__maybe_unused__) # define _GL_ATTRIBUTE_MAYBE_UNUSED [[__maybe_unused__]] # endif -- 2.39.5