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 07426f0533a3456a15f5659fc15cca6afad7c0a2..77df91642c4186037d8ece6cf6575884d96dfd22 100644 (file)
@@ -111,6 +111,21 @@ constexpr bool kIsArchAArch64 = FOLLY_A64 == 1;
 constexpr bool kIsArchPPC64 = FOLLY_PPC64 == 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 /**/
 // packing is very ugly in msvc
 #ifdef _MSC_VER
 # define FOLLY_PACK_ATTR /**/