exception.cpp revision 355940
1130561Sobrien//===------------------------ exception.cpp -------------------------------===//
2130561Sobrien//
3130561Sobrien// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4130561Sobrien// See https://llvm.org/LICENSE.txt for license information.
5130561Sobrien// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6130561Sobrien//
7130561Sobrien//===----------------------------------------------------------------------===//
8130561Sobrien
9130561Sobrien#include "exception"
10130561Sobrien#include "new"
11130561Sobrien#include "typeinfo"
12130561Sobrien
13130561Sobrien#if defined(LIBCXXRT) || defined(LIBCXX_BUILDING_LIBCXXABI)
14130561Sobrien  #include <cxxabi.h>
15130561Sobrien  using namespace __cxxabiv1;
16130561Sobrien  #define HAVE_DEPENDENT_EH_ABI 1
17130561Sobrien#endif
18218822Sdim
19130561Sobrien#if defined(_LIBCPP_ABI_MICROSOFT)
20130561Sobrien#include "support/runtime/exception_msvc.ipp"
21130561Sobrien#include "support/runtime/exception_pointer_msvc.ipp"
22130561Sobrien#elif defined(_LIBCPPABI_VERSION)
23130561Sobrien#include "support/runtime/exception_libcxxabi.ipp"
24130561Sobrien#include "support/runtime/exception_pointer_cxxabi.ipp"
25130561Sobrien#elif defined(LIBCXXRT)
26130561Sobrien#include "support/runtime/exception_libcxxrt.ipp"
27130561Sobrien#include "support/runtime/exception_pointer_cxxabi.ipp"
28130561Sobrien#elif defined(__GLIBCXX__)
29130561Sobrien#include "support/runtime/exception_glibcxx.ipp"
30130561Sobrien#include "support/runtime/exception_pointer_glibcxx.ipp"
31130561Sobrien#else
32130561Sobrien#include "include/atomic_support.h"
33130561Sobrien#include "support/runtime/exception_fallback.ipp"
34130561Sobrien#include "support/runtime/exception_pointer_unimplemented.ipp"
35130561Sobrien#endif
36130561Sobrien