diff options
Diffstat (limited to 'libcxxabi/src')
| -rw-r--r-- | libcxxabi/src/cxa_aux_runtime.cpp | 34 | ||||
| -rw-r--r-- | libcxxabi/src/cxa_virtual.cpp | 2 |
2 files changed, 36 insertions, 0 deletions
diff --git a/libcxxabi/src/cxa_aux_runtime.cpp b/libcxxabi/src/cxa_aux_runtime.cpp new file mode 100644 index 00000000000..cf6851b4f02 --- /dev/null +++ b/libcxxabi/src/cxa_aux_runtime.cpp @@ -0,0 +1,34 @@ +//===------------------------ cxa_aux_runtime.cpp -------------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is dual licensed under the MIT and the University of Illinois Open +// Source Licenses. See LICENSE.TXT for details. +// +// +// This file implements the "Auxiliary Runtime APIs" +// http://www.codesourcery.com/public/cxx-abi/abi-eh.html#cxx-aux +//===----------------------------------------------------------------------===// + +#include "cxxabi.h" +#include <typeinfo> + +namespace __cxxabiv1 +{ + +extern "C" +{ + +LIBCXXABI_NORETURN +void __cxa_bad_cast (void) { + throw std::bad_cast(); +} + +LIBCXXABI_NORETURN +void __cxa_bad_typeid(void) { + throw std::bad_typeid(); +} + +} // extern "C" + +} // abi diff --git a/libcxxabi/src/cxa_virtual.cpp b/libcxxabi/src/cxa_virtual.cpp index bdcf6878734..e3450d12b1e 100644 --- a/libcxxabi/src/cxa_virtual.cpp +++ b/libcxxabi/src/cxa_virtual.cpp @@ -18,11 +18,13 @@ namespace __cxxabiv1 extern "C" { +LIBCXXABI_NORETURN void __cxa_pure_virtual(void) { fputs("Pure virtual function called!\n", stderr); abort(); } +LIBCXXABI_NORETURN void __cxa_deleted_virtual(void) { fputs("Deleted virtual function called!\n", stderr); abort(); |

