[all-commits] [llvm/llvm-project] fc9248: [libc++] Assume that __wrap_iter always wraps a fa...

Quuxplusone via All-commits all-commits at lists.llvm.org
Mon May 24 14:32:17 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: fc9248877d07132981f2d598d3684de81d12d0b8
      https://github.com/llvm/llvm-project/commit/fc9248877d07132981f2d598d3684de81d12d0b8
  Author: Arthur O'Dwyer <arthur.j.odwyer at gmail.com>
  Date:   2021-05-24 (Mon, 24 May 2021)

  Changed paths:
    M libcxx/include/__iterator/iterator_traits.h
    M libcxx/include/iterator
    M libcxx/test/libcxx/iterators/contiguous_iterators.pass.cpp

  Log Message:
  -----------
  [libc++] Assume that __wrap_iter always wraps a fancy pointer.

Not only do we conscientiously avoid using `__wrap_iter` for non-contiguous
iterators (in vector, string, span...) but also we make the assumption
(in regex) that `__wrap_iter<_Iter>` is contiguous for all `_Iter`.

So `__wrap_iter<reverse_iterator<int*>>` should be considered IFNDR,
and every `__wrap_iter` should correctly advertise contiguity in C++20.

Drive-by simplify some type traits.

Reviewed as part of https://reviews.llvm.org/D102781




More information about the All-commits mailing list