summaryrefslogtreecommitdiff
path: root/util-internal.h
diff options
context:
space:
mode:
authorAzat Khuzhin <azat@libevent.org>2019-06-02 20:20:02 +0300
committerAzat Khuzhin <azat@libevent.org>2019-06-02 21:47:43 +0300
commit7d569b0fafe76e9036695ccc9d22d2195c214bce (patch)
tree8c2a86857bdf5493dc5098de442ba222e8bf1ded /util-internal.h
parent891dd1880fed8c5e1e98f122daeb1ae8414f6b1c (diff)
downloadlibevent-7d569b0fafe76e9036695ccc9d22d2195c214bce.tar.gz
Fix detection of the __has_attribute() for apple clang [ci skip]
Fixes build on the next osx env: - Mac OS 10.9/clang 600 - Mac OS 10.8/clang 500 Refs: https://github.com/libevent/libevent/issues/447#issuecomment-497908488
Diffstat (limited to 'util-internal.h')
-rw-r--r--util-internal.h20
1 files changed, 13 insertions, 7 deletions
diff --git a/util-internal.h b/util-internal.h
index b727bf1f..39576c71 100644
--- a/util-internal.h
+++ b/util-internal.h
@@ -52,16 +52,22 @@ extern "C" {
/* __has_attribute() wrapper */
#ifdef __has_attribute
-#define EVUTIL_HAS_ATTRIBUTE __has_attribute
+# define EVUTIL_HAS_ATTRIBUTE __has_attribute
#endif
/** clang 3 __has_attribute misbehaves in some versions */
-#if defined(__clang__) && \
- __clang__ == 1 && __clang_major__ == 3 && \
- (__clang_minor__ >= 2 && __clang_minor__ <= 5)
-#undef EVUTIL_HAS_ATTRIBUTE
-#endif
+#if defined(__clang__) && __clang__ == 1
+# if defined(__apple_build_version__)
+# if __clang_major__ <= 6
+# undef EVUTIL_HAS_ATTRIBUTE
+# endif
+# else /* !__apple_build_version__ */
+# if __clang_major__ == 3 && __clang_minor__ >= 2 && __clang_minor__ <= 5
+# undef EVUTIL_HAS_ATTRIBUTE
+# endif
+# endif /* __apple_build_version__ */
+#endif /*\ defined(__clang__) && __clang__ == 1 */
#ifndef EVUTIL_HAS_ATTRIBUTE
-#define EVUTIL_HAS_ATTRIBUTE(x) 0
+# define EVUTIL_HAS_ATTRIBUTE(x) 0
#endif
/* If we need magic to say "inline", get it for free internally. */