[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