[all-commits] [llvm/llvm-project] 27c833: [libc++] Replace `__compressed_pair` with `[[no_un...
Nikolas Klauser via All-commits
all-commits at lists.llvm.org
Mon Sep 16 02:09:19 PDT 2024
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 27c83382d83dce0f33ae67abb3bc94977cb3031f
https://github.com/llvm/llvm-project/commit/27c83382d83dce0f33ae67abb3bc94977cb3031f
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2024-09-16 (Mon, 16 Sep 2024)
Changed paths:
M libcxx/docs/ReleaseNotes/20.rst
M libcxx/include/__config
M libcxx/include/__configuration/abi.h
M libcxx/include/__functional/function.h
M libcxx/include/__hash_table
M libcxx/include/__memory/compressed_pair.h
M libcxx/include/__memory/shared_ptr.h
M libcxx/include/__memory/unique_ptr.h
M libcxx/include/__split_buffer
M libcxx/include/__tree
M libcxx/include/deque
M libcxx/include/forward_list
M libcxx/include/future
M libcxx/include/list
M libcxx/include/string
M libcxx/include/vector
M libcxx/test/libcxx/containers/associative/unord.map/abi.compile.pass.cpp
M libcxx/test/libcxx/containers/associative/unord.set/abi.compile.pass.cpp
M libcxx/test/libcxx/containers/sequences/deque/abi.compile.pass.cpp
M libcxx/test/libcxx/containers/sequences/vector.bool/abi.compile.pass.cpp
M libcxx/test/libcxx/containers/unord/unord.set/missing_hash_specialization.verify.cpp
R libcxx/test/libcxx/memory/compressed_pair/compressed_pair.pass.cpp
M libcxx/test/libcxx/type_traits/datasizeof.compile.pass.cpp
M libcxx/test/libcxx/utilities/memory/util.smartptr/util.smartptr.shared/libcxx.control_block_layout.pass.cpp
M libcxx/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/copy_move.pass.cpp
M libcxx/utils/gdb/libcxx/printers.py
M libcxx/utils/libcxx/test/features.py
Log Message:
-----------
[libc++] Replace `__compressed_pair` with `[[no_unique_address]]` (#76756)
This significantly simplifies the code, improves compile times and
improves the object layout of types using `__compressed_pair` in the
unstable ABI. The only downside is that this is extremely ABI sensitive
and pedantically breaks the ABI for empty final types, since the address
of the subobject may change. The ABI of the whole object should not be
affected.
Fixes #91266
Fixes #93069
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list