[libcxx-commits] [PATCH] D156155: [NFC][libc++] Update comments to reflect changes in ASan
Tacet via Phabricator via libcxx-commits
libcxx-commits at lists.llvm.org
Mon Jul 24 11:00:19 PDT 2023
AdvenamTacet created this revision.
Herald added a project: All.
AdvenamTacet requested review of this revision.
Herald added a project: libc++.
Herald added a subscriber: libcxx-commits.
Herald added a reviewer: libc++.
ASan capabilities were extended, but some comments were not updated and describe old behavior. This commit updates outdated comments, which I found.
Mentioned changes are:
- All allocators in containers (`std::vector` and `std::deque`; D146815 <https://reviews.llvm.org/D146815> D136765 <https://reviews.llvm.org/D136765>) are supported, but it's possible to turn off annotations for a specific allocator (D145628 <https://reviews.llvm.org/D145628>).
- Buffers don't have to be aligned (D132522 <https://reviews.llvm.org/D132522>).
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D156155
Files:
libcxx/include/deque
libcxx/include/vector
Index: libcxx/include/vector
===================================================================
--- libcxx/include/vector
+++ libcxx/include/vector
@@ -840,9 +840,12 @@
inline void __emplace_back_slow_path(_Args&&... __args);
// The following functions are no-ops outside of AddressSanitizer mode.
- // We call annotatations only for the default Allocator because other allocators
- // may not meet the AddressSanitizer alignment constraints.
- // See the documentation for __sanitizer_annotate_contiguous_container for more details.
+ // We call annotations for every allocator, unless explicitly disabled.
+ //
+ // To disable annotations for a particular allocator, change value of
+ // __asan_annotate_container_with_allocator to false.
+ // For more details, see the "Using libc++" documentation page or
+ // the documentation for __sanitizer_annotate_contiguous_container.
#ifndef _LIBCPP_HAS_NO_ASAN
_LIBCPP_CONSTEXPR_SINCE_CXX20
void __annotate_contiguous_container(const void *__beg, const void *__end,
Index: libcxx/include/deque
===================================================================
--- libcxx/include/deque
+++ libcxx/include/deque
@@ -968,7 +968,12 @@
};
// The following functions are no-ops outside of AddressSanitizer mode.
-// We call annotations only for the default Allocator.
+// We call annotations for every allocator, unless explicitly disabled.
+//
+// To disable annotations for a particular allocator, change value of
+// __asan_annotate_container_with_allocator to false.
+// For more details, see the "Using libc++" documentation page or
+// the documentation for __sanitizer_annotate_contiguous_container.
#if !defined(_LIBCPP_HAS_NO_ASAN) && _LIBCPP_CLANG_VER >= 1600
// TODO LLVM18: Remove the special-casing
_LIBCPP_HIDE_FROM_ABI void __annotate_double_ended_contiguous_container(
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D156155.543644.patch
Type: text/x-patch
Size: 1896 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/libcxx-commits/attachments/20230724/5a781950/attachment.bin>
More information about the libcxx-commits
mailing list