diff --git a/libcxx/docs/ReleaseNotes/21.rst b/libcxx/docs/ReleaseNotes/21.rst index 06e017850b88..a8f20ed0abaf 100644 --- a/libcxx/docs/ReleaseNotes/21.rst +++ b/libcxx/docs/ReleaseNotes/21.rst @@ -79,6 +79,23 @@ Potentially breaking changes Upcoming Deprecations and Removals ---------------------------------- +LLVM 21 +~~~~~~~ + +- The status of the C++03 implementation will be frozen after the LLVM 21 release. This means that starting in LLVM 22, + non-critical bug fixes may not be back-ported to C++03, including LWG issues. C++03 is a legacy platform, where most + projects are no longer actively maintained. To reduce the amount of fixes required to keep such legacy projects + compiling with up-to-date toolchains, libc++ will aim to freeze the status of the headers in C++03 mode to avoid + unintended breaking changes. See https://discourse.llvm.org/t/rfc-freezing-c-03-headers-in-libc for more details. + + If you are using C++03 in your project, you should consider moving to a newer version of the Standard to get the most + out of libc++. + +- The ``_LIBCPP_VERBOSE_ABORT_NOT_NOEXCEPT`` macro will be removed in LLVM 21, making ``std::__libcpp_verbose_abort`` + unconditionally ``noexcept``. + +- Non-conforming extension ``packaged_task::result_type`` will be removed in LLVM 21. + LLVM 22 ~~~~~~~