llvm-project/libcxx/test/std/algorithms
Arthur O'Dwyer 85167fb7c2 [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
2021-02-05 15:18:04 -05:00
..
alg.c.library Support tests in freestanding 2019-02-04 20:31:13 +00:00
alg.modifying.operations [libc++] Further improve the contiguous-iterator story, and fix some bugs. 2021-02-05 15:18:04 -05:00
alg.nonmodifying [libc++] s/constpexr/constexpr/ in some comments. NFC. 2020-11-27 18:53:08 -05:00
alg.sorting [libc++] Further improve the contiguous-iterator story, and fix some bugs. 2021-02-05 15:18:04 -05:00
algorithms.general Support tests in freestanding 2019-02-04 20:31:13 +00:00
robust_against_adl.pass.cpp [libc++] Mark my new <algorithm> test unsupported on clang-8. 2020-12-08 17:25:23 -05:00
robust_against_adl_on_new.pass.cpp [libc++] Consistently replace `::new(__p) T` with `::new ((void*)__p) T`. NFCI. 2020-12-14 12:08:34 -05:00