[all-commits] [llvm/llvm-project] 6946f0: [libc++] [LIBCXX-DEBUG-FIXME] <span>, like <string...

Quuxplusone via All-commits all-commits at lists.llvm.org
Fri Apr 30 20:07:51 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 6946f0ecca64f3af6b9e28cced9c982de2748f19
      https://github.com/llvm/llvm-project/commit/6946f0ecca64f3af6b9e28cced9c982de2748f19
  Author: Arthur O'Dwyer <arthur.j.odwyer at gmail.com>
  Date:   2021-04-30 (Fri, 30 Apr 2021)

  Changed paths:
    M libcxx/include/__config
    M libcxx/include/span
    M libcxx/test/std/containers/views/span.cons/deduct.pass.cpp
    M libcxx/test/std/containers/views/span.iterators/begin.pass.cpp
    M libcxx/test/std/containers/views/span.iterators/end.pass.cpp
    M libcxx/test/std/containers/views/span.iterators/rbegin.pass.cpp
    M libcxx/test/std/containers/views/span.iterators/rend.pass.cpp
    M libcxx/test/std/containers/views/span.sub/first.pass.cpp
    M libcxx/test/std/containers/views/span.sub/last.pass.cpp
    M libcxx/test/std/containers/views/span.sub/subspan.pass.cpp

  Log Message:
  -----------
  [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




More information about the All-commits mailing list