14c2acbcfc928a7d4f18b2c9202288abdf0131219Marshall Clow//===------------------------ cxa_aux_runtime.cpp -------------------------===//
24c2acbcfc928a7d4f18b2c9202288abdf0131219Marshall Clow//
34c2acbcfc928a7d4f18b2c9202288abdf0131219Marshall Clow//                     The LLVM Compiler Infrastructure
44c2acbcfc928a7d4f18b2c9202288abdf0131219Marshall Clow//
54c2acbcfc928a7d4f18b2c9202288abdf0131219Marshall Clow// This file is dual licensed under the MIT and the University of Illinois Open
64c2acbcfc928a7d4f18b2c9202288abdf0131219Marshall Clow// Source Licenses. See LICENSE.TXT for details.
74c2acbcfc928a7d4f18b2c9202288abdf0131219Marshall Clow//
825f180797ba296e6cd3aa45e1fef9321b828301aHoward Hinnant//
925f180797ba296e6cd3aa45e1fef9321b828301aHoward Hinnant// This file implements the "Auxiliary Runtime APIs"
10c82e02dd25b36e5d05cd3644499a553709c9395dJonathan Roelofs// http://mentorembedded.github.io/cxx-abi/abi-eh.html#cxx-aux
114c2acbcfc928a7d4f18b2c9202288abdf0131219Marshall Clow//===----------------------------------------------------------------------===//
124c2acbcfc928a7d4f18b2c9202288abdf0131219Marshall Clow
134c2acbcfc928a7d4f18b2c9202288abdf0131219Marshall Clow#include "cxxabi.h"
144c2acbcfc928a7d4f18b2c9202288abdf0131219Marshall Clow#include <typeinfo>
154c2acbcfc928a7d4f18b2c9202288abdf0131219Marshall Clow
164c2acbcfc928a7d4f18b2c9202288abdf0131219Marshall Clownamespace __cxxabiv1
174c2acbcfc928a7d4f18b2c9202288abdf0131219Marshall Clow{
184c2acbcfc928a7d4f18b2c9202288abdf0131219Marshall Clow
194c2acbcfc928a7d4f18b2c9202288abdf0131219Marshall Clowextern "C"
204c2acbcfc928a7d4f18b2c9202288abdf0131219Marshall Clow{
214c2acbcfc928a7d4f18b2c9202288abdf0131219Marshall Clow
224c2acbcfc928a7d4f18b2c9202288abdf0131219Marshall ClowLIBCXXABI_NORETURN
234c2acbcfc928a7d4f18b2c9202288abdf0131219Marshall Clowvoid __cxa_bad_cast (void) {
2425f180797ba296e6cd3aa45e1fef9321b828301aHoward Hinnant    throw std::bad_cast();
254c2acbcfc928a7d4f18b2c9202288abdf0131219Marshall Clow}
264c2acbcfc928a7d4f18b2c9202288abdf0131219Marshall Clow
274c2acbcfc928a7d4f18b2c9202288abdf0131219Marshall ClowLIBCXXABI_NORETURN
284c2acbcfc928a7d4f18b2c9202288abdf0131219Marshall Clowvoid __cxa_bad_typeid(void) {
2925f180797ba296e6cd3aa45e1fef9321b828301aHoward Hinnant    throw std::bad_typeid();
304c2acbcfc928a7d4f18b2c9202288abdf0131219Marshall Clow}
314c2acbcfc928a7d4f18b2c9202288abdf0131219Marshall Clow
324c2acbcfc928a7d4f18b2c9202288abdf0131219Marshall Clow}  // extern "C"
334c2acbcfc928a7d4f18b2c9202288abdf0131219Marshall Clow
344c2acbcfc928a7d4f18b2c9202288abdf0131219Marshall Clow}  // abi
35