[libcxx-commits] [libcxx] [libc++][doc] Update the release notes for LLVM 18 (PR #78324)

Hristo Hristov via libcxx-commits libcxx-commits at lists.llvm.org
Fri Jan 19 23:06:20 PST 2024


================
@@ -191,18 +229,26 @@ ABI Affecting Changes
   to throw a different exception when attempting allocations that are too large
   (``std::bad_alloc`` vs ``std::length_error``).
 
-- The layout of some views inside ``std::ranges`` that use the ``movable-box`` exposition-only type as an implementation 
-  detail has changed in order to fix a bug which could result in overwriting user data following the ``movable-box``
-  <https://github.com/llvm/llvm-project/issues/70506>. 
-  This was caused by incorrect usage of the ``[[no_unique_address]]`` attribute inside the implementation of ``movable-box``. 
-  This only affects the layout of the following views: ``take_while_view``, ``filter_view``, ``single_view``, ``drop_while_view``, 
-  ``repeat_view``, ``transform_view``, ``chunk_by_view``. In order to avoid silent breakage, an ABI tag has been added to 
-  these views such that their mangled name will be different starting in this version of libc++. 
-  As a result, attempting to call a function that expects one of these views will fail to link until the code has been rebuilt 
-  against a matching version of libc++. In practice, we believe it is unusual for these views to appear at ABI boundaries so this 
-  should not be a major problem for most users. However it is probably worth auditing ranges-heavy code for ABI boundaries that 
+- The layout of some views inside ``std::ranges`` that use the ``movable-box`` exposition-only type as an implementation
----------------
H-G-Hristov wrote:

I am not sure that the combination 
```
     *``movable-box``* 
```
works as intended. Maybe remove the back ticks.

https://github.com/llvm/llvm-project/pull/78324


More information about the libcxx-commits mailing list