folly/portability: add clang version check
[folly.git] / 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)