+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-25 Bruno Haible <bruno@clisp.org>
Keep config.h idempotent.
-# gnulib-common.m4 serial 73.2
-dnl Copyright (C) 2007-2022 Free Software Foundation, Inc.
+# gnulib-common.m4 serial 73.3
+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,
dnl with or without modifications, as long as this notice is preserved.
in C++ also: class. */
/* In C++ and C2x, 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
-# if _GL_HAS_C_ATTRIBUTE (maybe_unused)
+# if defined __clang__ && defined __cplusplus
+# if __clang_major__ >= 10
+# define _GL_ATTRIBUTE_MAYBE_UNUSED [[__maybe_unused__]]
+# endif
+# elif _GL_HAS_C_ATTRIBUTE (maybe_unused)
# define _GL_ATTRIBUTE_MAYBE_UNUSED [[__maybe_unused__]]
# else
# define _GL_ATTRIBUTE_MAYBE_UNUSED _GL_ATTRIBUTE_UNUSED