[all-commits] [llvm/llvm-project] eb12d9: [libc++] Remove the allocator<const T> extension (...
Louis Dionne via All-commits
all-commits at lists.llvm.org
Tue Jun 25 07:20:16 PDT 2024
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: eb12d9b5cb6d15ce151a63ad32b4e0e5823ddb87
https://github.com/llvm/llvm-project/commit/eb12d9b5cb6d15ce151a63ad32b4e0e5823ddb87
Author: Louis Dionne <ldionne.2 at gmail.com>
Date: 2024-06-25 (Tue, 25 Jun 2024)
Changed paths:
M libcxx/docs/ReleaseNotes/19.rst
M libcxx/include/__memory/allocator.h
M libcxx/include/__memory/shared_ptr.h
R libcxx/test/libcxx/containers/sequences/vector/const_T.compile.pass.cpp
R libcxx/test/libcxx/containers/sequences/vector/const_value_type.pass.cpp
M libcxx/test/libcxx/diagnostics/memory.nodiscard.verify.cpp
M libcxx/test/libcxx/memory/allocator_void.trivial.compile.pass.cpp
M libcxx/test/libcxx/memory/allocator_volatile.verify.cpp
M libcxx/test/std/concepts/concepts.lang/concept.default.init/default_initializable.compile.pass.cpp
M libcxx/test/std/utilities/memory/default.allocator/allocator.ctor.pass.cpp
M libcxx/test/std/utilities/memory/default.allocator/allocator.dtor.pass.cpp
M libcxx/test/std/utilities/memory/default.allocator/allocator.members/allocate.constexpr.size.verify.cpp
M libcxx/test/std/utilities/memory/default.allocator/allocator.members/allocate.size.pass.cpp
M libcxx/test/std/utilities/memory/default.allocator/allocator_types.deprecated_in_cxx17.verify.cpp
M libcxx/test/std/utilities/memory/default.allocator/allocator_types.deprecated_in_cxx23.verify.cpp
M libcxx/test/std/utilities/memory/default.allocator/allocator_types.pass.cpp
M libcxx/test/std/utilities/memory/default.allocator/allocator_types.removed_in_cxx20.verify.cpp
M libcxx/test/std/utilities/memory/default.allocator/allocator_types.removed_in_cxx26.verify.cpp
M libcxx/test/std/utilities/memory/specialized.algorithms/specialized.construct/construct_at.pass.cpp
Log Message:
-----------
[libc++] Remove the allocator<const T> extension (#96319)
This effort has quite a history:
- This was first attempted in 2022 via bed3240bf7d1, which broke
std::shared_ptr<T const> and caused the change to be reverted in
9138666f5464.
- We then re-attempted landing the change in 276ca87382b8 after fixing
std::shared_ptr, but reports were made that this broke code en masse
within Google. This led to the patch being reverted again in
a54d028895c9 with the goal to land this again with a migration path for
vendors.
This patch re-lands the removal while providing a migration path for
vendors by providing the `_LIBCPP_ENABLE_REMOVED_ALLOCATOR_CONST` macro.
This macro will be honored for the LLVM 19 release and will be removed
after that, at which point allocator<const T> will be removed
unconditionally.
Fixes #73665
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