diff options
Diffstat (limited to 'libcxx/test/std/language.support/support.exception')
10 files changed, 17 insertions, 27 deletions
diff --git a/libcxx/test/std/language.support/support.exception/except.nested/assign.pass.cpp b/libcxx/test/std/language.support/support.exception/except.nested/assign.pass.cpp index ec5575d072c..6338c8aaa26 100644 --- a/libcxx/test/std/language.support/support.exception/except.nested/assign.pass.cpp +++ b/libcxx/test/std/language.support/support.exception/except.nested/assign.pass.cpp @@ -7,9 +7,6 @@ // //===----------------------------------------------------------------------===// -// exception_ptr has not been implemented on Windows -// XFAIL: LIBCXX-WINDOWS-FIXME - // <exception> // class nested_exception; diff --git a/libcxx/test/std/language.support/support.exception/except.nested/ctor_copy.pass.cpp b/libcxx/test/std/language.support/support.exception/except.nested/ctor_copy.pass.cpp index 92134c993af..4cbdbb2ec89 100644 --- a/libcxx/test/std/language.support/support.exception/except.nested/ctor_copy.pass.cpp +++ b/libcxx/test/std/language.support/support.exception/except.nested/ctor_copy.pass.cpp @@ -7,9 +7,6 @@ // //===----------------------------------------------------------------------===// -// exception_ptr has not been implemented on Windows -// XFAIL: LIBCXX-WINDOWS-FIXME - // <exception> // class nested_exception; diff --git a/libcxx/test/std/language.support/support.exception/except.nested/ctor_default.pass.cpp b/libcxx/test/std/language.support/support.exception/except.nested/ctor_default.pass.cpp index 8f8503b254d..18ca9968ff5 100644 --- a/libcxx/test/std/language.support/support.exception/except.nested/ctor_default.pass.cpp +++ b/libcxx/test/std/language.support/support.exception/except.nested/ctor_default.pass.cpp @@ -7,9 +7,6 @@ // //===----------------------------------------------------------------------===// -// exception_ptr has not been implemented on Windows -// XFAIL: LIBCXX-WINDOWS-FIXME - // <exception> // class nested_exception; diff --git a/libcxx/test/std/language.support/support.exception/except.nested/rethrow_if_nested.pass.cpp b/libcxx/test/std/language.support/support.exception/except.nested/rethrow_if_nested.pass.cpp index fe9cd6042ba..88e2253d08c 100644 --- a/libcxx/test/std/language.support/support.exception/except.nested/rethrow_if_nested.pass.cpp +++ b/libcxx/test/std/language.support/support.exception/except.nested/rethrow_if_nested.pass.cpp @@ -7,10 +7,11 @@ // //===----------------------------------------------------------------------===// -// exception_ptr has not been implemented on Windows +// UNSUPPORTED: libcpp-no-exceptions + +// This test fails due to a stack overflow // XFAIL: LIBCXX-WINDOWS-FIXME -// UNSUPPORTED: libcpp-no-exceptions // <exception> // class nested_exception; diff --git a/libcxx/test/std/language.support/support.exception/except.nested/rethrow_nested.pass.cpp b/libcxx/test/std/language.support/support.exception/except.nested/rethrow_nested.pass.cpp index 73d02da3933..d511a72f9f5 100644 --- a/libcxx/test/std/language.support/support.exception/except.nested/rethrow_nested.pass.cpp +++ b/libcxx/test/std/language.support/support.exception/except.nested/rethrow_nested.pass.cpp @@ -7,9 +7,6 @@ // //===----------------------------------------------------------------------===// -// exception_ptr has not been implemented on Windows -// XFAIL: LIBCXX-WINDOWS-FIXME - // UNSUPPORTED: libcpp-no-exceptions // <exception> diff --git a/libcxx/test/std/language.support/support.exception/except.nested/throw_with_nested.pass.cpp b/libcxx/test/std/language.support/support.exception/except.nested/throw_with_nested.pass.cpp index 6353afcb239..6a9f25cd085 100644 --- a/libcxx/test/std/language.support/support.exception/except.nested/throw_with_nested.pass.cpp +++ b/libcxx/test/std/language.support/support.exception/except.nested/throw_with_nested.pass.cpp @@ -7,9 +7,6 @@ // //===----------------------------------------------------------------------===// -// exception_ptr has not been implemented on Windows -// XFAIL: LIBCXX-WINDOWS-FIXME - // UNSUPPORTED: libcpp-no-exceptions // <exception> diff --git a/libcxx/test/std/language.support/support.exception/propagation/current_exception.pass.cpp b/libcxx/test/std/language.support/support.exception/propagation/current_exception.pass.cpp index 2046997774a..c33d64d06f0 100644 --- a/libcxx/test/std/language.support/support.exception/propagation/current_exception.pass.cpp +++ b/libcxx/test/std/language.support/support.exception/propagation/current_exception.pass.cpp @@ -7,7 +7,8 @@ // //===----------------------------------------------------------------------===// -// exception_ptr has not been implemented on Windows +// This test needs to be rewritten for the Windows exception_ptr semantics +// which copy the exception each time the exception_ptr is copied. // XFAIL: LIBCXX-WINDOWS-FIXME // UNSUPPORTED: libcpp-no-exceptions diff --git a/libcxx/test/std/language.support/support.exception/propagation/exception_ptr.pass.cpp b/libcxx/test/std/language.support/support.exception/propagation/exception_ptr.pass.cpp index 9621a736036..3aa8dcf55bb 100644 --- a/libcxx/test/std/language.support/support.exception/propagation/exception_ptr.pass.cpp +++ b/libcxx/test/std/language.support/support.exception/propagation/exception_ptr.pass.cpp @@ -7,9 +7,6 @@ // //===----------------------------------------------------------------------===// -// exception_ptr has not been implemented on Windows -// XFAIL: LIBCXX-WINDOWS-FIXME - // <exception> // typedef unspecified exception_ptr; diff --git a/libcxx/test/std/language.support/support.exception/propagation/make_exception_ptr.pass.cpp b/libcxx/test/std/language.support/support.exception/propagation/make_exception_ptr.pass.cpp index 4980c656b2b..35821d9bd1b 100644 --- a/libcxx/test/std/language.support/support.exception/propagation/make_exception_ptr.pass.cpp +++ b/libcxx/test/std/language.support/support.exception/propagation/make_exception_ptr.pass.cpp @@ -7,9 +7,6 @@ // //===----------------------------------------------------------------------===// -// exception_ptr has not been implemented on Windows -// XFAIL: LIBCXX-WINDOWS-FIXME - // UNSUPPORTED: libcpp-no-exceptions // <exception> @@ -41,7 +38,12 @@ int main() } catch (const A& a) { +#ifndef _LIBCPP_ABI_MICROSOFT assert(A::constructed == 1); +#else + // On Windows exception_ptr copies the exception + assert(A::constructed == 2); +#endif assert(p != nullptr); p = nullptr; assert(p == nullptr); @@ -50,4 +52,5 @@ int main() } assert(A::constructed == 0); } + assert(A::constructed == 0); } diff --git a/libcxx/test/std/language.support/support.exception/propagation/rethrow_exception.pass.cpp b/libcxx/test/std/language.support/support.exception/propagation/rethrow_exception.pass.cpp index 7d27eee6689..37ffb5be506 100644 --- a/libcxx/test/std/language.support/support.exception/propagation/rethrow_exception.pass.cpp +++ b/libcxx/test/std/language.support/support.exception/propagation/rethrow_exception.pass.cpp @@ -7,9 +7,6 @@ // //===----------------------------------------------------------------------===// -// exception_ptr has not been implemented on Windows -// XFAIL: LIBCXX-WINDOWS-FIXME - // UNSUPPORTED: libcpp-no-exceptions // <exception> @@ -49,7 +46,12 @@ int main() } catch (const A& a) { +#ifndef _LIBCPP_ABI_MICROSOFT assert(A::constructed == 1); +#else + // On Windows the exception_ptr copies the exception + assert(A::constructed == 2); +#endif assert(p != nullptr); p = nullptr; assert(p == nullptr); @@ -58,4 +60,5 @@ int main() } assert(A::constructed == 0); } + assert(A::constructed == 0); } |