[libcxx-commits] [PATCH] D132769: [2b/3][ASan][libcxx] std::basic_string annotations

Tacet via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Fri Mar 10 01:13:10 PST 2023


AdvenamTacet updated this revision to Diff 504053.
AdvenamTacet added a comment.

This update removes support for all allocators, now annotations work with only default allocator.
It updates the test, maing sure that with other allocators memory is not poisoned.

It also adds a way to turn off annotations with `_LIBCPP_ASAN_ANNOTATE_ONLY_LONG`, in case someone has a specific case where short strings shouldn't be annotated.

Support for annotating all allocators will be added in a separate patch.

I believe, this patch is ready for upstreaming.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D132769

Files:
  libcxx/include/__string/extern_template_lists.h
  libcxx/include/string
  libcxx/test/std/strings/basic.string/string.capacity/capacity.pass.cpp
  libcxx/test/std/strings/basic.string/string.capacity/clear.pass.cpp
  libcxx/test/std/strings/basic.string/string.capacity/reserve.pass.cpp
  libcxx/test/std/strings/basic.string/string.capacity/reserve_size.asan.pass.cpp
  libcxx/test/std/strings/basic.string/string.capacity/reserve_size.pass.cpp
  libcxx/test/std/strings/basic.string/string.capacity/resize_and_overwrite.pass.cpp
  libcxx/test/std/strings/basic.string/string.capacity/resize_size.pass.cpp
  libcxx/test/std/strings/basic.string/string.capacity/resize_size_char.pass.cpp
  libcxx/test/std/strings/basic.string/string.capacity/shrink_to_fit.pass.cpp
  libcxx/test/std/strings/basic.string/string.cons/T_size_size.pass.cpp
  libcxx/test/std/strings/basic.string/string.cons/alloc.pass.cpp
  libcxx/test/std/strings/basic.string/string.cons/brace_assignment.pass.cpp
  libcxx/test/std/strings/basic.string/string.cons/char_assignment.pass.cpp
  libcxx/test/std/strings/basic.string/string.cons/copy.pass.cpp
  libcxx/test/std/strings/basic.string/string.cons/copy_alloc.pass.cpp
  libcxx/test/std/strings/basic.string/string.cons/copy_assignment.pass.cpp
  libcxx/test/std/strings/basic.string/string.cons/default.pass.cpp
  libcxx/test/std/strings/basic.string/string.cons/initializer_list.pass.cpp
  libcxx/test/std/strings/basic.string/string.cons/initializer_list_assignment.pass.cpp
  libcxx/test/std/strings/basic.string/string.cons/iter_alloc.pass.cpp
  libcxx/test/std/strings/basic.string/string.cons/iter_alloc_deduction.pass.cpp
  libcxx/test/std/strings/basic.string/string.cons/move.pass.cpp
  libcxx/test/std/strings/basic.string/string.cons/move_alloc.pass.cpp
  libcxx/test/std/strings/basic.string/string.cons/move_assignment.pass.cpp
  libcxx/test/std/strings/basic.string/string.cons/pointer_alloc.pass.cpp
  libcxx/test/std/strings/basic.string/string.cons/pointer_assignment.pass.cpp
  libcxx/test/std/strings/basic.string/string.cons/pointer_size_alloc.pass.cpp
  libcxx/test/std/strings/basic.string/string.cons/size_char_alloc.pass.cpp
  libcxx/test/std/strings/basic.string/string.cons/string_view.pass.cpp
  libcxx/test/std/strings/basic.string/string.cons/string_view_assignment.pass.cpp
  libcxx/test/std/strings/basic.string/string.cons/substr.pass.cpp
  libcxx/test/std/strings/basic.string/string.modifiers/string_append/initializer_list.pass.cpp
  libcxx/test/std/strings/basic.string/string.modifiers/string_append/iterator.pass.cpp
  libcxx/test/std/strings/basic.string/string.modifiers/string_append/pointer.pass.cpp
  libcxx/test/std/strings/basic.string/string.modifiers/string_append/pointer_size.pass.cpp
  libcxx/test/std/strings/basic.string/string.modifiers/string_append/push_back.pass.cpp
  libcxx/test/std/strings/basic.string/string.modifiers/string_append/size_char.pass.cpp
  libcxx/test/std/strings/basic.string/string.modifiers/string_append/string.pass.cpp
  libcxx/test/std/strings/basic.string/string.modifiers/string_append/string_size_size.pass.cpp
  libcxx/test/std/strings/basic.string/string.modifiers/string_assign/T_size_size.pass.cpp
  libcxx/test/std/strings/basic.string/string.modifiers/string_assign/initializer_list.pass.cpp
  libcxx/test/std/strings/basic.string/string.modifiers/string_assign/iterator.pass.cpp
  libcxx/test/std/strings/basic.string/string.modifiers/string_assign/pointer.pass.cpp
  libcxx/test/std/strings/basic.string/string.modifiers/string_assign/pointer_size.pass.cpp
  libcxx/test/std/strings/basic.string/string.modifiers/string_assign/size_char.pass.cpp
  libcxx/test/std/strings/basic.string/string.modifiers/string_assign/string.pass.cpp
  libcxx/test/std/strings/basic.string/string.modifiers/string_assign/string_size_size.pass.cpp
  libcxx/test/std/strings/basic.string/string.modifiers/string_copy/copy.pass.cpp
  libcxx/test/std/strings/basic.string/string.modifiers/string_erase/iter.pass.cpp
  libcxx/test/std/strings/basic.string/string.modifiers/string_erase/iter_iter.pass.cpp
  libcxx/test/std/strings/basic.string/string.modifiers/string_erase/pop_back.asan.pass.cpp
  libcxx/test/std/strings/basic.string/string.modifiers/string_erase/pop_back.pass.cpp
  libcxx/test/std/strings/basic.string/string.modifiers/string_erase/size_size.pass.cpp
  libcxx/test/std/strings/basic.string/string.modifiers/string_insert/iter_char.pass.cpp
  libcxx/test/std/strings/basic.string/string.modifiers/string_insert/iter_initializer_list.pass.cpp
  libcxx/test/std/strings/basic.string/string.modifiers/string_insert/iter_iter_iter.pass.cpp
  libcxx/test/std/strings/basic.string/string.modifiers/string_insert/iter_size_char.pass.cpp
  libcxx/test/std/strings/basic.string/string.modifiers/string_insert/size_pointer.pass.cpp
  libcxx/test/std/strings/basic.string/string.modifiers/string_insert/size_pointer_size.pass.cpp
  libcxx/test/std/strings/basic.string/string.modifiers/string_insert/size_size_char.pass.cpp
  libcxx/test/std/strings/basic.string/string.modifiers/string_insert/size_string.pass.cpp
  libcxx/test/std/strings/basic.string/string.modifiers/string_insert/size_string_size_size.pass.cpp
  libcxx/test/std/strings/basic.string/string.modifiers/string_op_plus_equal/char.pass.cpp
  libcxx/test/std/strings/basic.string/string.modifiers/string_op_plus_equal/initializer_list.pass.cpp
  libcxx/test/std/strings/basic.string/string.modifiers/string_op_plus_equal/pointer.pass.cpp
  libcxx/test/std/strings/basic.string/string.modifiers/string_op_plus_equal/string.pass.cpp
  libcxx/test/std/strings/basic.string/string.modifiers/string_replace/iter_iter_string.pass.cpp
  libcxx/test/std/strings/basic.string/string.modifiers/string_replace/size_size_T_size_size.pass.cpp
  libcxx/test/std/strings/basic.string/string.modifiers/string_replace/size_size_pointer.pass.cpp
  libcxx/test/std/strings/basic.string/string.modifiers/string_replace/size_size_pointer_size.pass.cpp
  libcxx/test/std/strings/basic.string/string.modifiers/string_replace/size_size_size_char.pass.cpp
  libcxx/test/std/strings/basic.string/string.modifiers/string_replace/size_size_string.pass.cpp
  libcxx/test/std/strings/basic.string/string.modifiers/string_replace/size_size_string_size_size.pass.cpp
  libcxx/test/std/strings/basic.string/string.modifiers/string_replace/size_size_string_view.pass.cpp
  libcxx/test/std/strings/basic.string/string.modifiers/string_swap/swap.asan.pass.cpp
  libcxx/test/std/strings/basic.string/string.modifiers/string_swap/swap.pass.cpp
  libcxx/test/std/strings/basic.string/string.nonmembers/string.special/swap.pass.cpp
  libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/char_string.pass.cpp
  libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string_char.pass.cpp
  libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string_pointer.pass.cpp
  libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string_string.pass.cpp
  libcxx/test/support/asan_testing.h

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D132769.504053.patch
Type: text/x-patch
Size: 111551 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/libcxx-commits/attachments/20230310/9073f2b9/attachment-0001.bin>


More information about the libcxx-commits mailing list