Some constexpr symbols for whether sanitizers are enabled
authorYedidya Feldblum <yfeldblum@fb.com>
Fri, 31 Mar 2017 04:38:09 +0000 (21:38 -0700)
committerFacebook Github Bot <facebook-github-bot@users.noreply.github.com>
Fri, 31 Mar 2017 04:39:15 +0000 (21:39 -0700)
Summary:
[Folly] Some constexpr symbols for whether sanitizers are enabled.

Useful where we need to do or not do some particular thing when sanitizers are enabled or disabled. Such cases do happen. It is better to use a C++ `constexpr` symbol rather than a preprocessor symbol in such cases, where possible.

Reviewed By: meyering

Differential Revision: D4805110

fbshipit-source-id: ca9ce074edef73dce3a04693dda102698c9cd29f

folly/Portability.h

index 07426f0..77df916 100644 (file)
@@ -111,6 +111,21 @@ constexpr bool kIsArchAArch64 = FOLLY_A64 == 1;
 constexpr bool kIsArchPPC64 = FOLLY_PPC64 == 1;
 }
 
+namespace folly {
+
+#if FOLLY_SANITIZE_ADDRESS
+constexpr bool kIsSanitizeAddress = true;
+#else
+constexpr bool kIsSanitizeAddress = false;
+#endif
+
+#if FOLLY_SANITIZE_THREAD
+constexpr bool kIsSanitizeThread = true;
+#else
+constexpr bool kIsSanitizeThread = false;
+#endif
+}
+
 // packing is very ugly in msvc
 #ifdef _MSC_VER
 # define FOLLY_PACK_ATTR /**/