Revert "Revert "Merge to upstream r304942.""
This reverts commit 38a0d5af7e.
Test: make checkbuild
Test: ./run_tests.py
Test: ./run_tests.py --bitness 64
This commit is contained in:
@@ -8,6 +8,10 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// UNSUPPORTED: libcpp-no-exceptions
|
||||
|
||||
// This test fails due to a stack overflow
|
||||
// XFAIL: LIBCXX-WINDOWS-FIXME
|
||||
|
||||
// <exception>
|
||||
|
||||
// class nested_exception;
|
||||
@@ -43,7 +47,7 @@ class C
|
||||
{
|
||||
public:
|
||||
virtual ~C() {}
|
||||
C * operator&() const { assert(false); } // should not be called
|
||||
C * operator&() const { assert(false); return nullptr; } // should not be called
|
||||
};
|
||||
|
||||
class D : private std::nested_exception {};
|
||||
|
||||
@@ -107,6 +107,16 @@ int main()
|
||||
assert(i == 7);
|
||||
}
|
||||
}
|
||||
{
|
||||
try
|
||||
{
|
||||
std::throw_with_nested("String literal");
|
||||
assert(false);
|
||||
}
|
||||
catch (const char *)
|
||||
{
|
||||
}
|
||||
}
|
||||
#if TEST_STD_VER > 11
|
||||
{
|
||||
try
|
||||
|
||||
@@ -7,6 +7,10 @@
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// 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
|
||||
// <exception>
|
||||
|
||||
|
||||
@@ -38,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);
|
||||
@@ -47,4 +52,5 @@ int main()
|
||||
}
|
||||
assert(A::constructed == 0);
|
||||
}
|
||||
assert(A::constructed == 0);
|
||||
}
|
||||
|
||||
@@ -46,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);
|
||||
@@ -55,4 +60,5 @@ int main()
|
||||
}
|
||||
assert(A::constructed == 0);
|
||||
}
|
||||
assert(A::constructed == 0);
|
||||
}
|
||||
|
||||
@@ -8,6 +8,14 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// UNSUPPORTED: libcpp-no-exceptions
|
||||
// XFAIL: libcpp-no-exceptions
|
||||
|
||||
// XFAIL: availability=macosx10.7
|
||||
// XFAIL: availability=macosx10.8
|
||||
// XFAIL: availability=macosx10.9
|
||||
// XFAIL: availability=macosx10.10
|
||||
// XFAIL: availability=macosx10.11
|
||||
|
||||
// test uncaught_exceptions
|
||||
|
||||
#include <exception>
|
||||
|
||||
Reference in New Issue
Block a user