[libcxx-commits] [PATCH] D132092: [2a/3][ASan][libcxx] std::deque annotations

Tacet via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Thu Jun 1 17:35:09 PDT 2023


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

This update:

- adds a test suggested by @vitalybuka (extended to do that kind of caterpillar from every side),
- removes the issue,
- reimplementes `__annotate_whole_block` (last arguments removed; no longer calling `__annotate_from_to`).

The problem was a very similar to the previous one. Incorrect last argument (argument informing if end or begin of the container moved). It wasn't easy to spot, even that now it's obvious.
I was checking for issues like that previously but I had to miss that one. However, the argument doesn't have much sense, whole block has to be annotated anyway and it's not always obvious what value should be passed in some situations. I reimplemented problematic function, so it does not require the argument. Hope it will help to avoid similar issues in future.

I believe it's ready to land again, as both probles are solved (const element type bahaviour and incorrect annotations), a new test is added and tests passed (locally).


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D132092

Files:
  libcxx/include/__config
  libcxx/include/deque
  libcxx/test/libcxx/containers/sequences/deque/asan.pass.cpp
  libcxx/test/libcxx/containers/sequences/deque/asan_annotate.begin.end.pass.cpp
  libcxx/test/std/containers/sequences/deque/deque.capacity/access.pass.cpp
  libcxx/test/std/containers/sequences/deque/deque.capacity/empty.pass.cpp
  libcxx/test/std/containers/sequences/deque/deque.capacity/max_size.pass.cpp
  libcxx/test/std/containers/sequences/deque/deque.capacity/resize_size.pass.cpp
  libcxx/test/std/containers/sequences/deque/deque.capacity/resize_size_value.pass.cpp
  libcxx/test/std/containers/sequences/deque/deque.capacity/shrink_to_fit.pass.cpp
  libcxx/test/std/containers/sequences/deque/deque.capacity/size.pass.cpp
  libcxx/test/std/containers/sequences/deque/deque.cons/alloc.pass.cpp
  libcxx/test/std/containers/sequences/deque/deque.cons/assign_initializer_list.pass.cpp
  libcxx/test/std/containers/sequences/deque/deque.cons/assign_iter_iter.pass.cpp
  libcxx/test/std/containers/sequences/deque/deque.cons/assign_size_value.pass.cpp
  libcxx/test/std/containers/sequences/deque/deque.cons/copy.pass.cpp
  libcxx/test/std/containers/sequences/deque/deque.cons/copy_alloc.pass.cpp
  libcxx/test/std/containers/sequences/deque/deque.cons/deduct.pass.cpp
  libcxx/test/std/containers/sequences/deque/deque.cons/default.pass.cpp
  libcxx/test/std/containers/sequences/deque/deque.cons/initializer_list.pass.cpp
  libcxx/test/std/containers/sequences/deque/deque.cons/initializer_list_alloc.pass.cpp
  libcxx/test/std/containers/sequences/deque/deque.cons/iter_iter.pass.cpp
  libcxx/test/std/containers/sequences/deque/deque.cons/iter_iter_alloc.pass.cpp
  libcxx/test/std/containers/sequences/deque/deque.cons/move.pass.cpp
  libcxx/test/std/containers/sequences/deque/deque.cons/move_alloc.pass.cpp
  libcxx/test/std/containers/sequences/deque/deque.cons/move_assign.pass.cpp
  libcxx/test/std/containers/sequences/deque/deque.cons/op_equal.pass.cpp
  libcxx/test/std/containers/sequences/deque/deque.cons/op_equal_initializer_list.pass.cpp
  libcxx/test/std/containers/sequences/deque/deque.cons/size.pass.cpp
  libcxx/test/std/containers/sequences/deque/deque.cons/size_value.pass.cpp
  libcxx/test/std/containers/sequences/deque/deque.cons/size_value_alloc.pass.cpp
  libcxx/test/std/containers/sequences/deque/deque.erasure/erase.pass.cpp
  libcxx/test/std/containers/sequences/deque/deque.erasure/erase_if.pass.cpp
  libcxx/test/std/containers/sequences/deque/deque.modifiers/clear.pass.cpp
  libcxx/test/std/containers/sequences/deque/deque.modifiers/emplace.pass.cpp
  libcxx/test/std/containers/sequences/deque/deque.modifiers/emplace_back.pass.cpp
  libcxx/test/std/containers/sequences/deque/deque.modifiers/emplace_front.pass.cpp
  libcxx/test/std/containers/sequences/deque/deque.modifiers/erase_iter.invalidation.pass.cpp
  libcxx/test/std/containers/sequences/deque/deque.modifiers/erase_iter.pass.cpp
  libcxx/test/std/containers/sequences/deque/deque.modifiers/erase_iter_iter.invalidation.pass.cpp
  libcxx/test/std/containers/sequences/deque/deque.modifiers/erase_iter_iter.pass.cpp
  libcxx/test/std/containers/sequences/deque/deque.modifiers/insert_iter_initializer_list.pass.cpp
  libcxx/test/std/containers/sequences/deque/deque.modifiers/insert_iter_iter.pass.cpp
  libcxx/test/std/containers/sequences/deque/deque.modifiers/insert_rvalue.pass.cpp
  libcxx/test/std/containers/sequences/deque/deque.modifiers/insert_size_value.pass.cpp
  libcxx/test/std/containers/sequences/deque/deque.modifiers/insert_value.pass.cpp
  libcxx/test/std/containers/sequences/deque/deque.modifiers/pop_back.invalidation.pass.cpp
  libcxx/test/std/containers/sequences/deque/deque.modifiers/pop_back.pass.cpp
  libcxx/test/std/containers/sequences/deque/deque.modifiers/pop_front.invalidation.pass.cpp
  libcxx/test/std/containers/sequences/deque/deque.modifiers/pop_front.pass.cpp
  libcxx/test/std/containers/sequences/deque/deque.modifiers/push_back.pass.cpp
  libcxx/test/std/containers/sequences/deque/deque.modifiers/push_back_rvalue.pass.cpp
  libcxx/test/std/containers/sequences/deque/deque.modifiers/push_front.pass.cpp
  libcxx/test/std/containers/sequences/deque/deque.modifiers/push_front_rvalue.pass.cpp
  libcxx/test/std/containers/sequences/deque/deque.special/copy.pass.cpp
  libcxx/test/std/containers/sequences/deque/deque.special/copy_backward.pass.cpp
  libcxx/test/std/containers/sequences/deque/deque.special/move.pass.cpp
  libcxx/test/std/containers/sequences/deque/deque.special/move_backward.pass.cpp
  libcxx/test/std/containers/sequences/deque/deque.special/swap.pass.cpp
  libcxx/test/support/asan_testing.h

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D132092.527680.patch
Type: text/x-patch
Size: 114100 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/libcxx-commits/attachments/20230602/697ab222/attachment-0001.bin>


More information about the libcxx-commits mailing list