git: d0dcee46d971 - releng/14.2 - libcxxrt: Update to upstream 6f2fdfebcd62

From: Ed Maste <emaste_at_FreeBSD.org>
Date: Tue, 05 Nov 2024 04:20:34 UTC
The branch releng/14.2 has been updated by emaste:

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

commit d0dcee46d971c79257be42b0e50cd9183c79fcbb
Author:     Ed Maste <emaste@FreeBSD.org>
AuthorDate: 2024-10-31 15:51:29 +0000
Commit:     Ed Maste <emaste@FreeBSD.org>
CommitDate: 2024-11-05 04:19:58 +0000

    libcxxrt: Update to upstream 6f2fdfebcd62
    
    Interesting fixes:
    
    3cbfe5a556fe Avoid noreturn warning on terminate()
    
    (cherry picked from commit 2dccd21949f26b1bdf5e7cf258b760fffd3bf259)
    (cherry picked from commit d9901a23bd2f4e6aeef7f628f946134c4698fc38)
    
    Approved by:    re (cperciva)
---
 contrib/libcxxrt/exception.cc | 26 ++++++++++++++++----------
 1 file changed, 16 insertions(+), 10 deletions(-)

diff --git a/contrib/libcxxrt/exception.cc b/contrib/libcxxrt/exception.cc
index c87fe5ac4468..5034809a1380 100644
--- a/contrib/libcxxrt/exception.cc
+++ b/contrib/libcxxrt/exception.cc
@@ -237,7 +237,7 @@ static_assert(offsetof(__cxa_dependent_exception, unwindHeader) ==
 
 namespace std
 {
-	void unexpected();
+	[[noreturn]] void unexpected();
 	class exception
 	{
 		public:
@@ -1530,28 +1530,34 @@ namespace std
 		if (0 != info && 0 != info->terminateHandler)
 		{
 			info->terminateHandler();
-			// Should not be reached - a terminate handler is not expected to
-			// return.
-			abort();
 		}
-		terminateHandler.load()();
+		else
+		{
+			terminateHandler.load()();
+		}
+		// Should not be reached - a terminate handler is not expected
+		// to return.
+		abort();
 	}
 	/**
 	 * Called when an unexpected exception is encountered (i.e. an exception
 	 * violates an exception specification).  This calls abort() unless a
 	 * custom handler has been set..
 	 */
-	void unexpected()
+	[[noreturn]] void unexpected()
 	{
 		static __cxa_thread_info *info = thread_info();
 		if (0 != info && 0 != info->unexpectedHandler)
 		{
 			info->unexpectedHandler();
-			// Should not be reached - a terminate handler is not expected to
-			// return.
-			abort();
 		}
-		unexpectedHandler.load()();
+		else
+		{
+			unexpectedHandler.load()();
+		}
+		// Should not be reached - a unexpected handler is not expected
+		// to return.
+		abort();
 	}
 	/**
 	 * Returns whether there are any exceptions currently being thrown that