[libc++] [LIBCXX-DEBUG-FIXME] <span>, like <string_view>, has no use for debug iterators.
authorArthur O'Dwyer <arthur.j.odwyer@gmail.com>
Wed, 21 Apr 2021 02:08:00 +0000 (22:08 -0400)
committerArthur O'Dwyer <arthur.j.odwyer@gmail.com>
Sat, 1 May 2021 03:06:45 +0000 (23:06 -0400)
commit6946f0ecca64f3af6b9e28cced9c982de2748f19
tree94bd8c92dbc61709e7c0304e5bb9e570d22999ea
parent0a2921993199fbf8af5078dce0dd933d6a50e25b
[libc++] [LIBCXX-DEBUG-FIXME] <span>, like <string_view>, has no use for debug iterators.

A span has no idea what container (if any) "owns" its iterators, nor
under what circumstances they might become invalidated.

However, continue to use `__wrap_iter<T*>` instead of raw `T*` outside
of debug mode, because we've been shipping `std::span` since Clang 7
and ldionne doesn't want to break ABI. (Namely, the mangling of functions
taking `span::iterator` as a parameter.) Permit using raw `T*` there,
but only under an ABI macro: `_LIBCPP_ABI_SPAN_POINTER_ITERATORS`.

Differential Revision: https://reviews.llvm.org/D101003
libcxx/include/__config
libcxx/include/span
libcxx/test/std/containers/views/span.cons/deduct.pass.cpp
libcxx/test/std/containers/views/span.iterators/begin.pass.cpp
libcxx/test/std/containers/views/span.iterators/end.pass.cpp
libcxx/test/std/containers/views/span.iterators/rbegin.pass.cpp
libcxx/test/std/containers/views/span.iterators/rend.pass.cpp
libcxx/test/std/containers/views/span.sub/first.pass.cpp
libcxx/test/std/containers/views/span.sub/last.pass.cpp
libcxx/test/std/containers/views/span.sub/subspan.pass.cpp