File tree Expand file tree Collapse file tree 3 files changed +10
-1
lines changed Expand file tree Collapse file tree 3 files changed +10
-1
lines changed Original file line number Diff line number Diff line change @@ -341,6 +341,12 @@ Vendors can use the following ABI options to enable additional hardening checks:
341341
342342 ABI impact: changes the iterator type of ``vector `` (except ``vector<bool> ``).
343343
344+ - ``_LIBCPP_ABI_BOUNDED_ITERATORS_IN_STD_ARRAY `` -- changes the iterator type of ``std::array `` to a
345+ bounded iterator that keeps track of whether it's within the bounds of the container and asserts it
346+ on every dereference and when performing iterator arithmetic.
347+
348+ ABI impact: changes the iterator type of ``std::array ``, its size and its layout.
349+
344350ABI tags
345351--------
346352
Original file line number Diff line number Diff line change @@ -60,6 +60,9 @@ Improvements and New Features
6060 compile times and smaller debug information as well as better code generation if optimizations are disabled.
6161 The Chromium project measured a 5% reduction in object file and debug information size.
6262
63+ - The ``_LIBCPP_ABI_BOUNDED_ITERATORS_IN_STD_ARRAY `` ABI configuration was added, which allows storing valid bounds
64+ in ``std::array::iterator `` and detecting OOB accesses when the appropriate hardening mode is enabled.
65+
6366Deprecations and Removals
6467-------------------------
6568
Original file line number Diff line number Diff line change 179179// Changes the iterator type of `array` to a bounded iterator that keeps track of whether it's within the bounds of the
180180// container and asserts it on every dereference and when performing iterator arithmetic.
181181//
182- // ABI impact: changes the iterator type of `array`.
182+ // ABI impact: changes the iterator type of `array`, its size and its layout .
183183// #define _LIBCPP_ABI_BOUNDED_ITERATORS_IN_STD_ARRAY
184184
185185// [[msvc::no_unique_address]] seems to mostly affect empty classes, so the padding scheme for Itanium doesn't work.
You can’t perform that action at this time.
0 commit comments