[libcxx-commits] [libcxx] 8ea9597 - [libc++] Defer removal of two escape hatches to LLVM 25 (#211553)
via libcxx-commits
libcxx-commits at lists.llvm.org
Tue Jul 28 09:47:47 PDT 2026
Author: Louis Dionne
Date: 2026-07-28T12:47:43-04:00
New Revision: 8ea9597ccb04253c5b46b3c967ee7b5092d6dd7c
URL: https://github.com/llvm/llvm-project/commit/8ea9597ccb04253c5b46b3c967ee7b5092d6dd7c
DIFF: https://github.com/llvm/llvm-project/commit/8ea9597ccb04253c5b46b3c967ee7b5092d6dd7c.diff
LOG: [libc++] Defer removal of two escape hatches to LLVM 25 (#211553)
Rather than removing the escape hatches for trivially default
constructible allocator and bitset's const reference type in LLVM 24,
keep them around for another release since they have not been widely
deployed yet.
Added:
Modified:
libcxx/docs/ReleaseNotes/24.rst
libcxx/include/__memory/allocator.h
libcxx/include/bitset
Removed:
################################################################################
diff --git a/libcxx/docs/ReleaseNotes/24.rst b/libcxx/docs/ReleaseNotes/24.rst
index b060f1a3db4a5..d71a24c66b0c4 100644
--- a/libcxx/docs/ReleaseNotes/24.rst
+++ b/libcxx/docs/ReleaseNotes/24.rst
@@ -65,16 +65,17 @@ Potentially breaking changes
Announcements About Future Releases
-----------------------------------
+- ``std::allocator`` is trivially default constructible since LLVM 22. In LLVM 23 and LLVM 24, the
+ ``_LIBCPP_DEPRECATED_ABI_NON_TRIVIAL_ALLOCATOR`` macro was provided as an escape hatch to revert that change.
+ This escape hatch will be removed in LLVM 25 if there is no evidence of it being useful.
+
+- ``bitset::operator[]`` returns ``bool`` since LLVM 22, fixing a conformance bug. In LLVM 23 and LLVM 24, the
+ ``_LIBCPP_DEPRECATED_ABI_BITSET_CONST_SUBSCRIPT_RETURN_REF`` macro was provided as an escape hatch to revert
+ that change. This escape hatch will be removed in LLVM 25 if there is no evidence of it being useful.
ABI Affecting Changes
---------------------
-- TODO: ``std::allocator`` is trivially default constructible since LLVM 22. In LLVM 23, the ``_LIBCPP_DEPRECATED_ABI_NON_TRIVIAL_ALLOCATOR``
- macro was provided as an escape hatch, but it has been removed in LLVM 24 since there was no evidence of it being useful.
-
-- TODO: ``bitset::operator[]`` returns ``bool`` since LLVM 22, fixing a conformance bug. In LLVM 23, the ``_LIBCPP_DEPRECATED_ABI_BITSET_CONST_SUBSCRIPT_RETURN_REF``
- macro was provided as an escape hatch, but it has been removed in LLVM 24 since there was no evidence of it being useful.
-
Build System Changes
--------------------
diff --git a/libcxx/include/__memory/allocator.h b/libcxx/include/__memory/allocator.h
index 609b305a1250f..dd8c8647c178a 100644
--- a/libcxx/include/__memory/allocator.h
+++ b/libcxx/include/__memory/allocator.h
@@ -60,7 +60,7 @@ struct __non_trivially_default_constructible_if<true, _Unique> {
template <class _Tp>
class allocator
-// TODO(LLVM 24): Remove the opt-out
+// TODO(LLVM 25): Remove the opt-out
#ifdef _LIBCPP_DEPRECATED_ABI_NON_TRIVIAL_ALLOCATOR
: __non_trivially_default_constructible_if<!is_void<_Tp>::value, allocator<_Tp> >
#endif
diff --git a/libcxx/include/bitset b/libcxx/include/bitset
index fd638daea8c73..3897a792d9a69 100644
--- a/libcxx/include/bitset
+++ b/libcxx/include/bitset
@@ -680,7 +680,7 @@ public:
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX23 bitset& flip(size_t __pos);
// element access:
- // TODO(LLVM 24): Remove the opt-out
+ // TODO(LLVM 25): Remove the opt-out
# ifndef _LIBCPP_DEPRECATED_ABI_BITSET_CONST_SUBSCRIPT_RETURN_REF
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR bool operator[](size_t __p) const {
_LIBCPP_ASSERT_VALID_ELEMENT_ACCESS(__p < _Size, "bitset::operator[] index out of bounds");
More information about the libcxx-commits
mailing list