+2023-01-28 Bruno Haible <bruno@clisp.org>
+
+ 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 <bruno@clisp.org>
stddef: Fix test-stddef compilation error on FreeBSD 12/x86.
-# 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,
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