diff --git a/libcxx/include/deque b/libcxx/include/deque index fca8b3d6e2c73..73d9a3b392088 100644 --- a/libcxx/include/deque +++ b/libcxx/include/deque @@ -1011,6 +1011,9 @@ private: _LIBCPP_HIDE_FROM_ABI void __annotate_delete() const _NOEXCEPT { #ifndef _LIBCPP_HAS_NO_ASAN + // The default allocator does not require unpoisoning before returning memory. + if _LIBCPP_CONSTEXPR_SINCE_CXX17 (is_same >::value) + return; if (empty()) { for (size_t __i = 0; __i < __map_.size(); ++__i) { __annotate_whole_block(__i, __asan_unposion); diff --git a/libcxx/include/string b/libcxx/include/string index c676182fba8ba..3e1d468892d0a 100644 --- a/libcxx/include/string +++ b/libcxx/include/string @@ -1912,8 +1912,10 @@ private: _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 void __annotate_delete() const _NOEXCEPT { #if !defined(_LIBCPP_HAS_NO_ASAN) && defined(_LIBCPP_INSTRUMENTED_WITH_ASAN) - if (!__libcpp_is_constant_evaluated() && (__asan_short_string_is_annotated() || __is_long())) - __annotate_contiguous_container(data() + size() + 1, data() + capacity() + 1); + // The default allocator does not require unpoisoning before returning memory. + if _LIBCPP_CONSTEXPR_SINCE_CXX17 (!is_same >::value) + if (!__libcpp_is_constant_evaluated() && (__asan_short_string_is_annotated() || __is_long())) + __annotate_contiguous_container(data() + size() + 1, data() + capacity() + 1); #endif } diff --git a/libcxx/include/vector b/libcxx/include/vector index 0098273a195ff..5b248ef9d6aa6 100644 --- a/libcxx/include/vector +++ b/libcxx/include/vector @@ -853,7 +853,9 @@ private: _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI void __annotate_delete() const _NOEXCEPT { #ifndef _LIBCPP_HAS_NO_ASAN - __annotate_contiguous_container(data(), data() + capacity(), data() + size(), data() + capacity()); + // The default allocator does not require unpoisoning before returning memory. + if _LIBCPP_CONSTEXPR_SINCE_CXX17 (!is_same::value) + __annotate_contiguous_container(data(), data() + capacity(), data() + size(), data() + capacity()); #endif }