Skip to content

Commit 86ac68a

Browse files
committed
Add release note and update docs
1 parent 9d1a869 commit 86ac68a

File tree

3 files changed

+10
-1
lines changed

3 files changed

+10
-1
lines changed

libcxx/docs/Hardening.rst

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff 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+
344350
ABI tags
345351
--------
346352

libcxx/docs/ReleaseNotes/20.rst

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff 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+
6366
Deprecations and Removals
6467
-------------------------
6568

libcxx/include/__configuration/abi.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,7 @@
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.

0 commit comments

Comments
 (0)