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

Mark de Wever via libcxx-commits libcxx-commits at lists.llvm.org
Sun Jan 21 04:33:12 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
----------------
mordante wrote:

it indeed does not work. I prefer to remove the * instead. We typically use the double backtracks. That the type is exposition only from formatting seems less important.

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


More information about the libcxx-commits mailing list