Author: tstellar Date: Mon Jun 4 08:49:27 2018 New Revision: 333910 URL: http://llvm.org/viewvc/llvm-project?rev=333910&view=rev Log: Merging r333467:
------------------------------------------------------------------------ r333467 | marshall | 2018-05-29 15:25:42 -0700 (Tue, 29 May 2018) | 1 line Fix embarrasing typo in uncaught_exceptions. Update tests to really test this. Thanks to Peter Klotz for calling my attention to this. ------------------------------------------------------------------------ Modified: libcxx/branches/release_60/src/support/runtime/exception_libcxxabi.ipp libcxx/branches/release_60/test/std/language.support/support.exception/uncaught/uncaught_exceptions.pass.cpp Modified: libcxx/branches/release_60/src/support/runtime/exception_libcxxabi.ipp URL: http://llvm.org/viewvc/llvm-project/libcxx/branches/release_60/src/support/runtime/exception_libcxxabi.ipp?rev=333910&r1=333909&r2=333910&view=diff ============================================================================== --- libcxx/branches/release_60/src/support/runtime/exception_libcxxabi.ipp (original) +++ libcxx/branches/release_60/src/support/runtime/exception_libcxxabi.ipp Mon Jun 4 08:49:27 2018 @@ -18,7 +18,7 @@ bool uncaught_exception() _NOEXCEPT { re int uncaught_exceptions() _NOEXCEPT { -# if _LIBCPPABI_VERSION > 1101 +# if _LIBCPPABI_VERSION > 1001 return __cxa_uncaught_exceptions(); # else return __cxa_uncaught_exception() ? 1 : 0; Modified: libcxx/branches/release_60/test/std/language.support/support.exception/uncaught/uncaught_exceptions.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/branches/release_60/test/std/language.support/support.exception/uncaught/uncaught_exceptions.pass.cpp?rev=333910&r1=333909&r2=333910&view=diff ============================================================================== --- libcxx/branches/release_60/test/std/language.support/support.exception/uncaught/uncaught_exceptions.pass.cpp (original) +++ libcxx/branches/release_60/test/std/language.support/support.exception/uncaught/uncaught_exceptions.pass.cpp Mon Jun 4 08:49:27 2018 @@ -15,40 +15,48 @@ // XFAIL: availability=macosx10.9 // XFAIL: availability=macosx10.10 // XFAIL: availability=macosx10.11 +// XFAIL: with_system_cxx_lib=macosx10.12 +// XFAIL: with_system_cxx_lib=macosx10.13 // test uncaught_exceptions #include <exception> #include <cassert> -struct A -{ - ~A() - { - assert(std::uncaught_exceptions() > 0); - } -}; +struct Uncaught { + Uncaught(int depth) : d_(depth) {} + ~Uncaught() { assert(std::uncaught_exceptions() == d_); } + int d_; + }; -struct B -{ - B() - { - // http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#475 - assert(std::uncaught_exceptions() == 0); +struct Outer { + Outer(int depth) : d_(depth) {} + ~Outer() { + try { + assert(std::uncaught_exceptions() == d_); + Uncaught u(d_+1); + throw 2; } + catch (int) {} + } + int d_; }; -int main() -{ - try +int main () { + assert(std::uncaught_exceptions() == 0); { - A a; - assert(std::uncaught_exceptions() == 0); - throw B(); + Outer o(0); } - catch (...) + + assert(std::uncaught_exceptions() == 0); { - assert(std::uncaught_exception() == 0); + try { + Outer o(1); + throw 1; + } + catch (int) { + assert(std::uncaught_exceptions() == 0); + } } assert(std::uncaught_exceptions() == 0); } _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits