31 lines · cpp
1//===----------------------------------------------------------------------===//2//3// 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-exception6//7//===----------------------------------------------------------------------===//8 9// UNSUPPORTED: no-exceptions10 11// __cxa_uncaught_exceptions is not re-exported from libc++ until LLVM 9.12// XFAIL: using-built-library-before-llvm-913 14#include <cxxabi.h>15#include <cassert>16 17// namespace __cxxabiv1 {18// extern unsigned int __cxa_uncaught_exceptions() throw();19// }20 21struct A {22 A(unsigned cnt) : data_(cnt) {}23 ~A() { assert( data_ == __cxxabiv1::__cxa_uncaught_exceptions()); }24 unsigned data_;25};26 27int main () {28 try { A a(1); throw 3; assert(false); }29 catch (int) {}30}31