]> Savannah Git Hosting - gnulib.git/commitdiff
Avoid clang warnings regarding [[__maybe_unused__]].
authorBruno Haible <bruno@clisp.org>
Fri, 10 Feb 2023 02:53:24 +0000 (03:53 +0100)
committerBruno Haible <bruno@clisp.org>
Fri, 10 Feb 2023 02:55:58 +0000 (03:55 +0100)
* 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
m4/gnulib-common.m4

index 8e21cace2338aea216d51e6f68ab8d9eb3b014ec..9689c438b825f50964525054be91874f7edb25ae 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+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.
index 2480f567a6fa9b4dfa2a5bab885d258bbd357c7b..c820d294876288b25140996a1dfb2864fc2776d3 100644 (file)
@@ -1,5 +1,5 @@
-# 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.
@@ -347,9 +347,15 @@ AC_DEFUN([gl_COMMON_BODY], [
    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