[all-commits] [llvm/llvm-project] 7083c0: [libc++] Remove _LIBCPP_COMPRESSED_PAIR/TRIPLE fro...
Nikolas Klauser via All-commits
all-commits at lists.llvm.org
Thu Jun 25 02:46:16 PDT 2026
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 7083c06372905081929ea43abea4751ef372761a
https://github.com/llvm/llvm-project/commit/7083c06372905081929ea43abea4751ef372761a
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2026-06-25 (Thu, 25 Jun 2026)
Changed paths:
M libcxx/docs/ABIGuarantees.rst
M libcxx/include/__configuration/attributes.h
M libcxx/include/__memory/compressed_pair.h
M libcxx/include/__memory/shared_ptr.h
R libcxx/test/libcxx/utilities/memory/util.smartptr/util.smartptr.shared/libcxx.control_block_layout.pass.cpp
A libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/pointer_destruction.pass.cpp
M libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.create/allocate_shared.lwg2070.pass.cpp
Log Message:
-----------
[libc++] Remove _LIBCPP_COMPRESSED_PAIR/TRIPLE from shared_ptr (#200401)
The `shared_ptr` control blocks don't need to be ABI stable as long as
we rename them. This can be thought of as adding a new control block,
which we've done before, and simply never generating the old one again.
This is done via an ABI tag on the control blocks, allowing us to change
their contents in whichever way we want without needing to consider
their ABI. In this case specifically, `_LIBCPP_COMPRESSED_{PAIR,TRIPLE}`
is removed, simplifying the code.
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