exception.cpp revision 327952
1227825Stheraven//===------------------------ exception.cpp -------------------------------===// 2227825Stheraven// 3227825Stheraven// The LLVM Compiler Infrastructure 4227825Stheraven// 5227825Stheraven// This file is dual licensed under the MIT and the University of Illinois Open 6227825Stheraven// Source Licenses. See LICENSE.TXT for details. 7227825Stheraven// 8227825Stheraven//===----------------------------------------------------------------------===// 9227825Stheraven 10227825Stheraven#include "exception" 11261272Sdim#include "new" 12321369Sdim#include "typeinfo" 13227825Stheraven 14321369Sdim#if defined(LIBCXXRT) || defined(LIBCXX_BUILDING_LIBCXXABI) || \ 15321369Sdim (defined(__APPLE__) && !defined(_LIBCPP_BUILDING_HAS_NO_ABI_LIBRARY)) 16227825Stheraven #include <cxxabi.h> 17227825Stheraven using namespace __cxxabiv1; 18227825Stheraven #define HAVE_DEPENDENT_EH_ABI 1 19314564Sdim#endif 20227825Stheraven 21314564Sdim#if defined(_LIBCPP_ABI_MICROSOFT) 22321369Sdim#include "support/runtime/exception_msvc.ipp" 23321369Sdim#include "support/runtime/exception_pointer_msvc.ipp" 24321369Sdim#elif defined(_LIBCPPABI_VERSION) 25321369Sdim#include "support/runtime/exception_libcxxabi.ipp" 26321369Sdim#include "support/runtime/exception_pointer_cxxabi.ipp" 27321369Sdim#elif defined(LIBCXXRT) 28321369Sdim#include "support/runtime/exception_libcxxrt.ipp" 29321369Sdim#include "support/runtime/exception_pointer_cxxabi.ipp" 30261272Sdim#elif defined(__GLIBCXX__) 31321369Sdim#include "support/runtime/exception_glibcxx.ipp" 32321369Sdim#include "support/runtime/exception_pointer_glibcxx.ipp" 33227825Stheraven#else 34327952Sdim#include "include/atomic_support.h" 35321369Sdim#include "support/runtime/exception_fallback.ipp" 36321369Sdim#include "support/runtime/exception_pointer_unimplemented.ipp" 37261272Sdim#endif 38