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.antonio@gmail.com> Links: [1] https://github.com/llvm/llvm-project/blob/llvmorg-16.0.0/clang/lib/Frontend/InitPreprocessor.cpp#L1226 Reviewed-on: https://review.openocd.org/c/openocd/+/7544 Tested-by: jenkins
This commit is contained in:
parent
b6b4f9d46a
commit
9ce6b0898e
|
@ -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))
|
||||
|
|
Loading…
Reference in New Issue