xref: /openbsd-src/gnu/llvm/libcxx/src/exception.cpp (revision 4bdff4bed0e3d54e55670334c7d0077db4170f86)
1*4bdff4beSrobert //===----------------------------------------------------------------------===//
246035553Spatrick //
346035553Spatrick // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
446035553Spatrick // See https://llvm.org/LICENSE.txt for license information.
546035553Spatrick // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
646035553Spatrick //
746035553Spatrick //===----------------------------------------------------------------------===//
846035553Spatrick 
9*4bdff4beSrobert #include <exception>
10*4bdff4beSrobert #include <new>
11*4bdff4beSrobert #include <typeinfo>
1246035553Spatrick 
1346035553Spatrick #if defined(LIBCXXRT) || defined(LIBCXX_BUILDING_LIBCXXABI)
1446035553Spatrick   #include <cxxabi.h>
1546035553Spatrick   using namespace __cxxabiv1;
1646035553Spatrick   #define HAVE_DEPENDENT_EH_ABI 1
1746035553Spatrick #endif
1846035553Spatrick 
1946035553Spatrick #if defined(_LIBCPP_ABI_MICROSOFT)
2046035553Spatrick #include "support/runtime/exception_msvc.ipp"
2146035553Spatrick #include "support/runtime/exception_pointer_msvc.ipp"
2246035553Spatrick #elif defined(_LIBCPPABI_VERSION)
2346035553Spatrick #include "support/runtime/exception_libcxxabi.ipp"
2446035553Spatrick #include "support/runtime/exception_pointer_cxxabi.ipp"
2546035553Spatrick #elif defined(LIBCXXRT)
2646035553Spatrick #include "support/runtime/exception_libcxxrt.ipp"
2746035553Spatrick #include "support/runtime/exception_pointer_cxxabi.ipp"
2846035553Spatrick #elif defined(__GLIBCXX__)
2946035553Spatrick #include "support/runtime/exception_glibcxx.ipp"
3046035553Spatrick #include "support/runtime/exception_pointer_glibcxx.ipp"
3146035553Spatrick #else
3246035553Spatrick #include "include/atomic_support.h"
3346035553Spatrick #include "support/runtime/exception_fallback.ipp"
3446035553Spatrick #include "support/runtime/exception_pointer_unimplemented.ipp"
3546035553Spatrick #endif
36