xref: /llvm-project/libcxx/src/support/runtime/exception_libcxxabi.ipp (revision 9783f28cbb155e4a8d49c12e1c60ce14dcfaf0c7)
1d22c9dc4SEric Fiselier// -*- C++ -*-
2d22c9dc4SEric Fiselier//===----------------------------------------------------------------------===//
3d22c9dc4SEric Fiselier//
457b08b09SChandler Carruth// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
557b08b09SChandler Carruth// See https://llvm.org/LICENSE.txt for license information.
657b08b09SChandler Carruth// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7d22c9dc4SEric Fiselier//
8d22c9dc4SEric Fiselier//===----------------------------------------------------------------------===//
9d22c9dc4SEric Fiselier
10d22c9dc4SEric Fiselier#ifndef _LIBCPPABI_VERSION
11d22c9dc4SEric Fiselier#  error this header can only be used with libc++abi
12d22c9dc4SEric Fiselier#endif
13d22c9dc4SEric Fiselier
14d22c9dc4SEric Fiseliernamespace std {
15d22c9dc4SEric Fiselier
165601305fSLouis Dionnebool uncaught_exception() noexcept { return uncaught_exceptions() > 0; }
17d22c9dc4SEric Fiselier
18*9783f28cSLouis Dionneint uncaught_exceptions() noexcept {
193a92ecc8SMarshall Clow#if _LIBCPPABI_VERSION > 1001
20d22c9dc4SEric Fiselier  return __cxa_uncaught_exceptions();
21d22c9dc4SEric Fiselier#else
22d22c9dc4SEric Fiselier  return __cxa_uncaught_exception() ? 1 : 0;
23d22c9dc4SEric Fiselier#endif
24d22c9dc4SEric Fiselier}
25d22c9dc4SEric Fiselier
26d22c9dc4SEric Fiselier} // namespace std
27