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