1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-26 11:47:31 +00:00

libcxxrt: Update to upstream 6f2fdfebcd62

Interesting fixes:

3cbfe5a556fe Avoid noreturn warning on terminate()
This commit is contained in:
Ed Maste 2024-10-31 11:51:29 -04:00
commit 2dccd21949

View File

@ -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