[libcxx-commits] [PATCH] D60176: [libc++][libc++abi] Don't provide new/delete when built with ASan, HWASan or TSan

Petr Hosek via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Tue Apr 2 20:52:01 PDT 2019


phosek updated this revision to Diff 193427.
phosek marked an inline comment as done.

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D60176/new/

https://reviews.llvm.org/D60176

Files:
  libcxx/src/new.cpp
  libcxxabi/src/stdlib_new_delete.cpp


Index: libcxxabi/src/stdlib_new_delete.cpp
===================================================================
--- libcxxabi/src/stdlib_new_delete.cpp
+++ libcxxabi/src/stdlib_new_delete.cpp
@@ -17,6 +17,11 @@
 #error The _THROW_BAD_ALLOC, _NOEXCEPT, and _LIBCXXABI_WEAK libc++ macros must \
        already be defined by libc++.
 #endif
+
+#if !__has_feature(address_sanitizer) && \
+    !__has_feature(hwaddress_sanitizer) && \
+    !__has_feature(thread_sanitizer)
+
 // Implement all new and delete operators as weak definitions
 // in this shared library, so that they can be overridden by programs
 // that define non-weak copies of the functions.
@@ -259,4 +264,6 @@
     ::operator delete[](ptr, alignment);
 }
 
+#endif // !address_sanitizer && !hwaddress_sanitizer && !thread_sanitizer
+
 #endif // !_LIBCPP_HAS_NO_LIBRARY_ALIGNED_ALLOCATION
Index: libcxx/src/new.cpp
===================================================================
--- libcxx/src/new.cpp
+++ libcxx/src/new.cpp
@@ -55,7 +55,10 @@
 
 #if !defined(__GLIBCXX__) &&                                                   \
     !defined(_LIBCPP_ABI_VCRUNTIME) &&      \
-    !defined(_LIBCPP_DISABLE_NEW_DELETE_DEFINITIONS)
+    !defined(_LIBCPP_DISABLE_NEW_DELETE_DEFINITIONS) && \
+    !__has_feature(address_sanitizer) && \
+    !__has_feature(hwaddress_sanitizer) && \
+    !__has_feature(thread_sanitizer)
 
 // Implement all new and delete operators as weak definitions
 // in this shared library, so that they can be overridden by programs
@@ -298,4 +301,4 @@
 }
 
 #endif // !_LIBCPP_HAS_NO_LIBRARY_ALIGNED_ALLOCATION
-#endif // !__GLIBCXX__ && !_LIBCPP_ABI_VCRUNTIME && !_LIBCPP_DISABLE_NEW_DELETE_DEFINITIONS
+#endif // !__GLIBCXX__ && !_LIBCPP_ABI_VCRUNTIME && !_LIBCPP_DISABLE_NEW_DELETE_DEFINITIONS && !address_sanitizer && !hwaddress_sanitizer && !thread_sanitizer


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D60176.193427.patch
Type: text/x-patch
Size: 1851 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/libcxx-commits/attachments/20190403/9767c774/attachment.bin>


More information about the libcxx-commits mailing list