git: 987ac31018cb - main - libcxx-compat: fix llvmorg-21-init-18351-gfcc09b6f0267:
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sat, 25 Apr 2026 14:20:13 UTC
The branch main has been updated by dim:
URL: https://cgit.FreeBSD.org/src/commit/?id=987ac31018cba9f1763ad3acfb68b933f58a4c52
commit 987ac31018cba9f1763ad3acfb68b933f58a4c52
Author: Dimitry Andric <dimitry@andric.com>
AuthorDate: 2026-01-05 20:31:45 +0000
Commit: Dimitry Andric <dim@FreeBSD.org>
CommitDate: 2026-04-25 14:14:21 +0000
libcxx-compat: fix llvmorg-21-init-18351-gfcc09b6f0267:
[libc++] Fix std::make_exception_ptr interaction with ObjC (#135386)
Clang treats throwing/catching ObjC types differently from C++ types,
and omitting the `throw` in `std::make_exception_ptr` breaks ObjC
invariants about how types are thrown/caught.
Fixes #135089
Co-authored-by: Louis Dionne <ldionne.2@gmail.com>
Only use lambdas when in !defined(_LIBCPP_CXX03_LANG), so this will
compile with clang 18 and lower, in C++03 mode and earlier.
PR: 292067
MFC after: 1 month
---
contrib/llvm-project/libcxx/include/__exception/exception_ptr.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/contrib/llvm-project/libcxx/include/__exception/exception_ptr.h b/contrib/llvm-project/libcxx/include/__exception/exception_ptr.h
index 796fa924be12..130e90621709 100644
--- a/contrib/llvm-project/libcxx/include/__exception/exception_ptr.h
+++ b/contrib/llvm-project/libcxx/include/__exception/exception_ptr.h
@@ -93,7 +93,7 @@ public:
};
# if _LIBCPP_HAS_EXCEPTIONS
-# if _LIBCPP_AVAILABILITY_HAS_INIT_PRIMARY_EXCEPTION
+# if _LIBCPP_AVAILABILITY_HAS_INIT_PRIMARY_EXCEPTION && !defined(_LIBCPP_CXX03_LANG)
template <class _Ep>
_LIBCPP_HIDE_FROM_ABI exception_ptr __make_exception_ptr_explicit(_Ep& __e) _NOEXCEPT {
using _Ep2 = __decay_t<_Ep>;