Changeset View
Changeset View
Standalone View
Standalone View
contrib/libcxxabi/src/cxa_noexception.cpp
- This file was added.
Property | Old Value | New Value |
---|---|---|
svn:eol-style | null | native \ No newline at end of property |
svn:keywords | null | FreeBSD=%H \ No newline at end of property |
svn:mime-type | null | text/plain \ No newline at end of property |
//===------------------------- cxa_exception.cpp --------------------------===// | |||||
// | |||||
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. | |||||
// See https://llvm.org/LICENSE.txt for license information. | |||||
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception | |||||
// | |||||
// | |||||
// This file implements the "Exception Handling APIs" | |||||
// http://mentorembedded.github.io/cxx-abi/abi-eh.html | |||||
// | |||||
//===----------------------------------------------------------------------===// | |||||
// Support functions for the no-exceptions libc++ library | |||||
#include "cxxabi.h" | |||||
#include <exception> // for std::terminate | |||||
#include "cxa_exception.hpp" | |||||
#include "cxa_handlers.hpp" | |||||
namespace __cxxabiv1 { | |||||
extern "C" { | |||||
void | |||||
__cxa_increment_exception_refcount(void *thrown_object) throw() { | |||||
if (thrown_object != nullptr) | |||||
std::terminate(); | |||||
} | |||||
void | |||||
__cxa_decrement_exception_refcount(void *thrown_object) throw() { | |||||
if (thrown_object != nullptr) | |||||
std::terminate(); | |||||
} | |||||
void *__cxa_current_primary_exception() throw() { return nullptr; } | |||||
void | |||||
__cxa_rethrow_primary_exception(void* thrown_object) { | |||||
if (thrown_object != nullptr) | |||||
std::terminate(); | |||||
} | |||||
bool | |||||
__cxa_uncaught_exception() throw() { return false; } | |||||
unsigned int | |||||
__cxa_uncaught_exceptions() throw() { return 0; } | |||||
} // extern "C" | |||||
// provide dummy implementations for the 'no exceptions' case. | |||||
uint64_t __getExceptionClass (const _Unwind_Exception*) { return 0; } | |||||
void __setExceptionClass ( _Unwind_Exception*, uint64_t) {} | |||||
bool __isOurExceptionClass(const _Unwind_Exception*) { return false; } | |||||
} // abi |