patch 8.2.4347: in some build setups UNUSED is not defined
Problem: In some build setups UNUSED is not defined.
Solution: Change the logic of how UNUSED is defined. (Ola Söder,
closes #9734)
diff --git a/src/version.c b/src/version.c
index 07e46ae..f7599c0 100644
--- a/src/version.c
+++ b/src/version.c
@@ -747,6 +747,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 4347,
+/**/
4346,
/**/
4345,
diff --git a/src/vim.h b/src/vim.h
index 166edf5..4f95bb4 100644
--- a/src/vim.h
+++ b/src/vim.h
@@ -245,12 +245,19 @@
// Mark unused function arguments with UNUSED, so that gcc -Wunused-parameter
// can be used to check for mistakes.
-#if defined(HAVE_ATTRIBUTE_UNUSED) || defined(__MINGW32__)
-# if !defined(UNUSED)
+#ifndef UNUSED
+# if defined(HAVE_ATTRIBUTE_UNUSED) || defined(__MINGW32__)
# define UNUSED __attribute__((unused))
+# else
+# if defined __has_attribute
+# if __has_attribute(unused)
+# define UNUSED __attribute__((unused))
+# endif
+# endif
# endif
-#else
-# define UNUSED
+# ifndef UNUSED
+# define UNUSED
+# endif
#endif
// Used to check for "sun", "__sun" is used by newer compilers.