blob: ee9f384b67198d14d4acf60e9b93170e7419af19 [file] [log] [blame]
Nick Kledzikd1a61bb2010-05-14 20:19:37 +00001//===------------------------ exception.cpp -------------------------------===//
2//
Chandler Carruthd2012102019-01-19 10:56:40 +00003// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
Nick Kledzikd1a61bb2010-05-14 20:19:37 +00006//
7//===----------------------------------------------------------------------===//
Nick Kledzikd1a61bb2010-05-14 20:19:37 +00008
9#include "exception"
Peter Collingbourne4d7da9a2013-10-06 22:13:21 +000010#include "new"
Eric Fiselierec3a1672017-02-10 08:57:35 +000011#include "typeinfo"
Nick Kledzikd1a61bb2010-05-14 20:19:37 +000012
Eric Fiselierec3a1672017-02-10 08:57:35 +000013#if defined(LIBCXXRT) || defined(LIBCXX_BUILDING_LIBCXXABI) || \
14 (defined(__APPLE__) && !defined(_LIBCPP_BUILDING_HAS_NO_ABI_LIBRARY))
Nick Kledzikd1a61bb2010-05-14 20:19:37 +000015 #include <cxxabi.h>
16 using namespace __cxxabiv1;
David Chisnall1d581062011-09-21 08:39:44 +000017 #define HAVE_DEPENDENT_EH_ABI 1
Eric Fiselierec3a1672017-02-10 08:57:35 +000018#endif
Eric Fiselier88d11712017-02-10 07:43:08 +000019
Eric Fiselier88d11712017-02-10 07:43:08 +000020#if defined(_LIBCPP_ABI_MICROSOFT)
Eric Fiselierec3a1672017-02-10 08:57:35 +000021#include "support/runtime/exception_msvc.ipp"
Eric Fiselier94ef6cc2017-05-08 01:17:50 +000022#include "support/runtime/exception_pointer_msvc.ipp"
Eric Fiselierec3a1672017-02-10 08:57:35 +000023#elif defined(_LIBCPPABI_VERSION)
24#include "support/runtime/exception_libcxxabi.ipp"
25#include "support/runtime/exception_pointer_cxxabi.ipp"
26#elif defined(LIBCXXRT)
27#include "support/runtime/exception_libcxxrt.ipp"
28#include "support/runtime/exception_pointer_cxxabi.ipp"
Eric Fiselier88d11712017-02-10 07:43:08 +000029#elif defined(__GLIBCXX__)
Eric Fiselierec3a1672017-02-10 08:57:35 +000030#include "support/runtime/exception_glibcxx.ipp"
31#include "support/runtime/exception_pointer_glibcxx.ipp"
Eric Fiselier88d11712017-02-10 07:43:08 +000032#else
Weiming Zhaob613db72017-09-19 23:18:03 +000033#include "include/atomic_support.h"
Eric Fiselierec3a1672017-02-10 08:57:35 +000034#include "support/runtime/exception_fallback.ipp"
35#include "support/runtime/exception_pointer_unimplemented.ipp"
Eric Fiselier88d11712017-02-10 07:43:08 +000036#endif