This is an automated email from Gerrit.

"Antonio Borneo <borneo.anto...@gmail.com>" just uploaded a new patch set to 
Gerrit, which you can find at https://review.openocd.org/c/openocd/+/7544

-- gerrit

commit 40f9f9f668bedf97a8a76805b3e3d285a65c6c13
Author: Antonio Borneo <borneo.anto...@gmail.com>
Date:   Sun Mar 19 10:57:04 2023 +0100

    helper/compiler: fix build on MacOS
    
    On MacOS, clang defines [1]:
            #define __nonnull _Nonnull
    that creates incompatibility with GCC and with the macro __nonnull
    defined in some libc.
    
    Detect clang on MacOS and undefine __nonnull.
    
    Change-Id: I64fcf51b102ea91c196e657debd8c267943a2b08
    Signed-off-by: Antonio Borneo <borneo.anto...@gmail.com>
    Links: [1] 
https://github.com/llvm/llvm-project/blob/llvmorg-16.0.0/clang/lib/Frontend/InitPreprocessor.cpp#L1226

diff --git a/src/helper/compiler.h b/src/helper/compiler.h
index 8f6c09950b..33a075d64f 100644
--- a/src/helper/compiler.h
+++ b/src/helper/compiler.h
@@ -32,7 +32,15 @@
 /*
  * The __nonnull function attribute marks pointer parameters that
  * must not be NULL.
+ *
+ * clang for Apple defines
+ * #define __nonnull _Nonnull
+ * that is a per argument attribute, incompatible with the gcc per function 
attribute __nonnull__.
+ * Undefine it to keep compatibility among compilers.
  */
+#if defined(__clang__) && defined(__APPLE__)
+# undef __nonnull
+#endif
 #ifndef __nonnull
 # if __has_attribute(__nonnull__)
 #  define __nonnull(params) __attribute__ ((__nonnull__ params))

-- 

Reply via email to