From d8f28ec8a2faabad3aabb9f7a26755971424ef05 Mon Sep 17 00:00:00 2001 From: theraven Date: Tue, 22 Nov 2011 17:30:41 +0000 Subject: Import libcxxrt / libc++ into a vendor branch. Approved by: dim (mentor) --- src/typeinfo.cpp | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 src/typeinfo.cpp (limited to 'src/typeinfo.cpp') diff --git a/src/typeinfo.cpp b/src/typeinfo.cpp new file mode 100644 index 0000000..9ca03a1 --- /dev/null +++ b/src/typeinfo.cpp @@ -0,0 +1,50 @@ +//===------------------------- typeinfo.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. +// +//===----------------------------------------------------------------------===// +#include +#if __APPLE__ +#include +#endif + +#include "typeinfo" + +std::bad_cast::bad_cast() _NOEXCEPT +{ +} + +std::bad_cast::~bad_cast() _NOEXCEPT +{ +} + +const char* +std::bad_cast::what() const _NOEXCEPT +{ + return "std::bad_cast"; +} + +std::bad_typeid::bad_typeid() _NOEXCEPT +{ +} + +std::bad_typeid::~bad_typeid() _NOEXCEPT +{ +} + +const char* +std::bad_typeid::what() const _NOEXCEPT +{ + return "std::bad_typeid"; +} + +#if __APPLE__ + // On Darwin, the cxa_bad_* functions cannot be in the lower level library + // because bad_cast and bad_typeid are defined in his higher level library + void __cxxabiv1::__cxa_bad_typeid() { throw std::bad_typeid(); } + void __cxxabiv1::__cxa_bad_cast() { throw std::bad_cast(); } +#endif + -- cgit v1.1