Use attribute(no_sanitize) instead of no_sanitize_address to prevent clang-3.7 from ICE
authorAdrian Zgorzalek <adek@fb.com>
Tue, 6 Oct 2015 18:19:22 +0000 (11:19 -0700)
committerfacebook-github-bot-9 <folly-bot@fb.com>
Tue, 6 Oct 2015 19:20:17 +0000 (12:20 -0700)
Summary: Stacktraces and more details can be found in the associated task
http://clang.llvm.org/docs/AttributeReference.html#no-sanitize-clang-no-sanitize seems to be the new hotness to disable sanitizers.

Reviewed By: @yfeldblum

Differential Revision: D2510320

fb-gh-sync-id: 01cce68733509a6f5bcf9dbe3a4af6fc2792a43b

folly/CPortability.h
folly/FBString.h

index 65ffa6f13536d380b4648aad1ae246d5b88a96cb..e5099d238b9de3b77edcb1d5c0babc9df4165bbd 100644 (file)
  * has issues when inlining is used, so disable that as well. */
 #ifdef FOLLY_SANITIZE_ADDRESS
 # if defined(__clang__)
-#  if __has_attribute(__no_address_safety_analysis__)
+#  if __has_attribute(__no_sanitize__)
+#   define FOLLY_DISABLE_ADDRESS_SANITIZER \
+      __attribute__((__no_sanitize__("address"), __noinline__))
+#  elif __has_attribute(__no_address_safety_analysis__)
 #   define FOLLY_DISABLE_ADDRESS_SANITIZER \
       __attribute__((__no_address_safety_analysis__, __noinline__))
 #  elif __has_attribute(__no_sanitize_address__)
index a9618aa4938b83ac4314fbb230de1a870e4118f5..98bf1668e1e85c78601af9646445ba4e674d56bb 100644 (file)
@@ -101,7 +101,10 @@ namespace folly {
 // has issues when inlining is used, so disable that as well.
 #if defined(__clang__)
 # if __has_feature(address_sanitizer)
-#  if __has_attribute(__no_address_safety_analysis__)
+#  if __has_attribute(__no_sanitize__)
+#   define FBSTRING_DISABLE_ADDRESS_SANITIZER \
+      __attribute__((__no_sanitize__("address"), __noinline__))
+#  elif __has_attribute(__no_address_safety_analysis__)
 #   define FBSTRING_DISABLE_ADDRESS_SANITIZER \
       __attribute__((__no_address_safety_analysis__, __noinline__))
 #  elif __has_attribute(__no_sanitize_address__)