[libcxx-commits] [libcxx] [libc++] Replace `__compressed_pair` with `[[no_unique_address]]` (PR #76756)

Louis Dionne via libcxx-commits libcxx-commits at lists.llvm.org
Thu Jul 25 08:34:20 PDT 2024


================
@@ -68,8 +68,9 @@ LLVM 21
 ABI Affecting Changes
 ---------------------
 
-- TODO
-
+- The internal structure ``__compressed_pair`` has been replaced with ``[[no_unique_address]]``. This change results in
+  empty final types being placed at the beginning of the object instead of where the beginning of the
+  ``__compressed_pair`` subobject was. This is only observable by checking the address of the subobject.
 
----------------
ldionne wrote:

We need to call out the ABI break on the Microsoft ABI, and we should ping @llvm/libcxx-vendors (done now).

This shouldn't be a big deal since we don't provide ABI stability on Microsoft, but it's still good to call it out since this may be a rather large break.

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


More information about the libcxx-commits mailing list