From 55cfe4c16beba63d5cd5647da6349fbb886ece08 Mon Sep 17 00:00:00 2001 From: Marshall Clow Date: Tue, 14 Mar 2017 17:08:47 +0000 Subject: Implement LWG2784, and mark 2786, 2795, 2804, 2812, 2826, 2834, 2837 and 2838 as complete - since we do them already llvm-svn: 297752 --- .../except.nested/rethrow_if_nested.pass.cpp | 33 +++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) (limited to 'libcxx/test/std/language.support/support.exception/except.nested') 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 57d193a411c..68cd85038b2 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 @@ -46,12 +46,19 @@ public: C * operator&() const { assert(false); } // should not be called }; +class D : private std::nested_exception {}; + + +class E1 : public std::nested_exception {}; +class E2 : public std::nested_exception {}; +class E : public E1, public E2 {}; + int main() { { try { - A a(3); + A a(3); // not a polymorphic type --> no effect std::rethrow_if_nested(a); assert(true); } @@ -60,6 +67,30 @@ int main() assert(false); } } + { + try + { + D s; // inaccessible base class --> no effect + std::rethrow_if_nested(s); + assert(true); + } + catch (...) + { + assert(false); + } + } + { + try + { + E s; // ambiguous base class --> no effect + std::rethrow_if_nested(s); + assert(true); + } + catch (...) + { + assert(false); + } + } { try { -- cgit v1.2.3