folly/portability: add clang version check
authorIgor Sugak <sugak@fb.com>
Sun, 8 Nov 2015 08:32:52 +0000 (00:32 -0800)
committerfacebook-github-bot-1 <folly-bot@fb.com>
Sun, 8 Nov 2015 09:20:23 +0000 (01:20 -0800)
Summary: Define `__CLANG_PREREQ` macro to check version of clang.

Reviewed By: yfeldblum

Differential Revision: D2630325

fb-gh-sync-id: 3d666e554e8ddfc2c1fecd439aaf93f015829025

folly/Portability.h

index 594ab9aa6a73a267cf14e4832b9e456ba951245a..bdac6cc33fe714e24a75baed89d2585940923bad 100644 (file)
 namespace std { typedef ::max_align_t max_align_t; }
 #endif
 
+// portable version check for clang
+#ifndef __CLANG_PREREQ
+# if defined __clang__ && defined __clang_major__ && defined __clang_minor__
+/* nolint */
+#  define __CLANG_PREREQ(maj, min) \
+    ((__clang_major__ << 16) + __clang_minor__ >= ((maj) << 16) + (min))
+# else
+/* nolint */
+#  define __CLANG_PREREQ(maj, min) 0
+# endif
+#endif
+
 /* Platform specific TLS support
  * gcc implements __thread
  * msvc implements __declspec(thread)