diff options
author | Arthur O'Dwyer <arthur.j.odwyer@gmail.com> | 2021-02-03 17:54:13 -0500 |
---|---|---|
committer | Arthur O'Dwyer <arthur.j.odwyer@gmail.com> | 2021-02-05 15:18:04 -0500 |
commit | 85167fb7c2920ca8874b197ef397e8e6b9d87c73 (patch) | |
tree | 7d5944ac385eeea55ae7a76048f62f904d8923e1 /libcxx/src/filesystem/operations.cpp | |
parent | b008ea304d438f0aa818918caceb3bd864412304 (diff) | |
download | llvm-85167fb7c2920ca8874b197ef397e8e6b9d87c73.zip llvm-85167fb7c2920ca8874b197ef397e8e6b9d87c73.tar.gz llvm-85167fb7c2920ca8874b197ef397e8e6b9d87c73.tar.bz2 |
[libc++] Further improve the contiguous-iterator story, and fix some bugs.
- Quality-of-implementation: Avoid calling __unwrap_iter in constexpr contexts.
The user might conceivably write a contiguous iterator where normal iterator
arithmetic is constexpr-friendly but `std::to_address(it)` isn't.
- Bugfix: When you pass contiguous iterators to `std::copy`, you should get
back your contiguous iterator type, not a raw pointer. That means that
libc++ can't `__unwrap_iter` unless it also does `__rewrap_iter`.
Fortunately, this is implementable.
- Improve test coverage of the new `contiguous_iterator` test iterator.
This catches the bug described above.
- Tests: Stop testing that we can `std::copy` //into// an `input_iterator`.
Our test iterators may currently support that, but it seems nonsensical to me.
Differential Revision: https://reviews.llvm.org/D95983
Diffstat (limited to 'libcxx/src/filesystem/operations.cpp')
0 files changed, 0 insertions, 0 deletions