[libc++] Use addressof in vector.
authorMark de Wever <koraq@xs4all.nl>
Sun, 10 Oct 2021 13:40:50 +0000 (15:40 +0200)
committerMark de Wever <koraq@xs4all.nl>
Thu, 21 Oct 2021 15:28:17 +0000 (17:28 +0200)
commit56df1d80e2911a8cd23b70e9b7e76fcb386c7956
treeb35dcf12eaa97e8bede7f9a2adbbd02520944012
parent77fdc0e56bf9463b432f1a2073ac506a8df9b652
[libc++] Use addressof in vector.

This addresses the usage of `operator&` in `<vector>`.

I now added tests for the current offending cases. I wonder whether it
would be better to add one addressof test per directory and test all
possible violations. Also to guard against possible future errors?

(Note there are still more headers with the same issue.)

Reviewed By: #libc, ldionne

Differential Revision: https://reviews.llvm.org/D111961
12 files changed:
libcxx/include/__iterator/wrap_iter.h
libcxx/include/vector
libcxx/test/std/containers/sequences/vector/vector.cons/assign_move.addressof.compile.pass.cpp [new file with mode: 0644]
libcxx/test/std/containers/sequences/vector/vector.cons/move.addressof.compile.pass.cpp [new file with mode: 0644]
libcxx/test/std/containers/sequences/vector/vector.modifiers/emplace.addressof.compile.pass.cpp [new file with mode: 0644]
libcxx/test/std/containers/sequences/vector/vector.modifiers/erase_iter.addressof.compile.pass.cpp [new file with mode: 0644]
libcxx/test/std/containers/sequences/vector/vector.modifiers/erase_iter_iter.addressof.compile.pass.cpp [new file with mode: 0644]
libcxx/test/std/containers/sequences/vector/vector.modifiers/insert_iter_iter_iter.addressof.compile.pass.cpp [new file with mode: 0644]
libcxx/test/std/containers/sequences/vector/vector.modifiers/insert_iter_rvalue.addressof.compile.pass.cpp [new file with mode: 0644]
libcxx/test/std/containers/sequences/vector/vector.modifiers/insert_iter_size_value.addressof.compile.pass.cpp [new file with mode: 0644]
libcxx/test/std/containers/sequences/vector/vector.modifiers/insert_iter_value.addressof.compile.pass.cpp [new file with mode: 0644]
libcxx/test/std/containers/sequences/vector/vector.special/swap.addressof.compile.pass.cpp [new file with mode: 0644]