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:
341
341
342
342
ABI impact: changes the iterator type of ``vector `` (except ``vector<bool> ``).
343
343
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
+
344
350
ABI tags
345
351
--------
346
352
Original file line number Diff line number Diff line change @@ -60,6 +60,9 @@ Improvements and New Features
60
60
compile times and smaller debug information as well as better code generation if optimizations are disabled.
61
61
The Chromium project measured a 5% reduction in object file and debug information size.
62
62
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
+
63
66
Deprecations and Removals
64
67
-------------------------
65
68
Original file line number Diff line number Diff line change 179
179
// Changes the iterator type of `array` to a bounded iterator that keeps track of whether it's within the bounds of the
180
180
// container and asserts it on every dereference and when performing iterator arithmetic.
181
181
//
182
- // ABI impact: changes the iterator type of `array`.
182
+ // ABI impact: changes the iterator type of `array`, its size and its layout .
183
183
// #define _LIBCPP_ABI_BOUNDED_ITERATORS_IN_STD_ARRAY
184
184
185
185
// [[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