| //===----------------------------------------------------------------------===// | |
| // | |
| // 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 "Auxiliary Runtime APIs" | |
| // https://itanium-cxx-abi.github.io/cxx-abi/abi-eh.html#cxx-aux | |
| //===----------------------------------------------------------------------===// | |
| namespace __cxxabiv1 { | |
| extern "C" { | |
| _LIBCXXABI_FUNC_VIS _LIBCXXABI_NORETURN void __cxa_bad_cast(void) { | |
| throw std::bad_cast(); | |
| std::terminate(); | |
| } | |
| _LIBCXXABI_FUNC_VIS _LIBCXXABI_NORETURN void __cxa_bad_typeid(void) { | |
| throw std::bad_typeid(); | |
| std::terminate(); | |
| } | |
| _LIBCXXABI_FUNC_VIS _LIBCXXABI_NORETURN void | |
| __cxa_throw_bad_array_new_length(void) { | |
| throw std::bad_array_new_length(); | |
| std::terminate(); | |
| } | |
| } // extern "C" | |
| } // abi | |