Commit f99fa528 authored by Yedidya Feldblum's avatar Yedidya Feldblum Committed by Facebook Github Bot

Add FOLLY_HAS_FEATURE and use it

Summary:
[Folly] Add `FOLLY_HAS_FEATURE` and use it.

Use it in the definitions of `FOLLY_SANITIZE_ADDRESS` and `FOLLY_SANITIZE_THREAD`.

Reviewed By: meyering

Differential Revision: D5496915

fbshipit-source-id: e272137ad8ba891e64fc98444edf573115764ee2
parent 1dd8e387
...@@ -51,15 +51,15 @@ ...@@ -51,15 +51,15 @@
#define FOLLY_HAS_BUILTIN(...) 0 #define FOLLY_HAS_BUILTIN(...) 0
#endif #endif
#if defined(__has_feature)
#define FOLLY_HAS_FEATURE(...) __has_feature(__VA_ARGS__)
#else
#define FOLLY_HAS_FEATURE(...) 0
#endif
/* Define a convenience macro to test when address sanitizer is being used /* Define a convenience macro to test when address sanitizer is being used
* across the different compilers (e.g. clang, gcc) */ * across the different compilers (e.g. clang, gcc) */
#if defined(__clang__) #if FOLLY_HAS_FEATURE(address_sanitizer) || __SANITIZE_ADDRESS__
# if __has_feature(address_sanitizer)
# define FOLLY_SANITIZE_ADDRESS 1
# endif
#elif defined (__GNUC__) && \
(((__GNUC__ == 4) && (__GNUC_MINOR__ >= 8)) || (__GNUC__ >= 5)) && \
__SANITIZE_ADDRESS__
# define FOLLY_SANITIZE_ADDRESS 1 # define FOLLY_SANITIZE_ADDRESS 1
#endif #endif
...@@ -89,11 +89,7 @@ ...@@ -89,11 +89,7 @@
/* Define a convenience macro to test when thread sanitizer is being used /* Define a convenience macro to test when thread sanitizer is being used
* across the different compilers (e.g. clang, gcc) */ * across the different compilers (e.g. clang, gcc) */
#if defined(__clang__) #if FOLLY_HAS_FEATURE(thread_sanitizer) || __SANITIZE_THREAD__
# if __has_feature(thread_sanitizer)
# define FOLLY_SANITIZE_THREAD 1
# endif
#elif defined(__GNUC__) && __SANITIZE_THREAD__
# define FOLLY_SANITIZE_THREAD 1 # define FOLLY_SANITIZE_THREAD 1
#endif #endif
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment