mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-16 15:16:35 +00:00

This patch introduces a new kind of bounded iterator that knows the size of its valid range at compile-time, as in std::array. This allows computing the end of the range from the start of the range and the size, which requires storing only the start of the range in the iterator instead of both the start and the size (or start and end). The iterator wrapper is otherwise identical in design to the existing __bounded_iter. Since this requires changing the type of the iterators returned by std::array, this new bounded iterator is controlled by an ABI flag. As a drive-by, centralize the tests for std::array::operator[] and add missing tests for OOB operator[] on non-empty arrays. Fixes #70864
libc++ / libc++abi configuration caches
This directory contains CMake caches for the supported configurations of libc++. Some of the configurations are specific to a vendor, others are generic and not tied to any vendor.
While we won't explicitly work to break configurations not listed here, any configuration not listed here is not explicitly supported. If you use or ship libc++ under a configuration not listed here, you should work with the libc++ maintainers to make it into a supported configuration and add it here.
Similarly, adding any new configuration that's not already covered must be discussed with the libc++ maintainers as it entails a maintenance burden.