HomePhabricator

[libc++] Assume that __wrap_iter always wraps a fancy pointer.

Authored by arthur.j.odwyer on May 19 2021, 8:54 AM.

Description

[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

Details

Committed
arthur.j.odwyerMay 24 2021, 2:30 PM
Parents
rG13dd65b3a1a3: Do not create LLVM IR `constant`s for objects with dynamic initialisation
Branches
Unknown
Tags
Unknown