Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 29 May 2026 23:02:00 +0000
From:      Dimitry Andric <dim@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org
Cc:        Dimitry Andric <dimitry@andric.com>
Subject:   git: 2be99a578ea3 - stable/15 - libcxx-compat: fix llvmorg-21-init-18351-gfcc09b6f0267:
Message-ID:  <6a1a1ae8.431dd.5e66fa17@gitrepo.freebsd.org>

index | next in thread | raw e-mail

The branch stable/15 has been updated by dim:

URL: https://cgit.FreeBSD.org/src/commit/?id=2be99a578ea341a95af49320fb46a9f00fff7969

commit 2be99a578ea341a95af49320fb46a9f00fff7969
Author:     Dimitry Andric <dimitry@andric.com>
AuthorDate: 2026-01-05 20:31:45 +0000
Commit:     Dimitry Andric <dim@FreeBSD.org>
CommitDate: 2026-05-29 22:57:32 +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
    
    (cherry picked from commit 987ac31018cba9f1763ad3acfb68b933f58a4c52)
---
 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>;


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6a1a1ae8.431dd.5e66fa17>