1 //===----------------------------------------------------------------------===//
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-exception
7 //===----------------------------------------------------------------------===//
9 // UNSUPPORTED: no-exceptions
10 // REQUIRES: c++03 || c++11 || c++14
17 #pragma GCC diagnostic ignored "-Wunreachable-code"
18 #pragma GCC diagnostic ignored "-Wdeprecated" // dynamic exception specifications are deprecated
26 ~A() {assert(id_
== count
--);}
30 A
& operator=(const A
&);
40 ~B() {assert(id_
== count
--);}
44 B
& operator=(const B
&);
54 ~C() {assert(id_
== count
--);}
58 C
& operator=(const C
&);
71 void f1() throw (long, char, double, std::bad_exception
)
86 std::set_unexpected(u_handler
);
108 catch (const std::bad_exception
& e
)
116 assert(A::count
== 0);
117 assert(B::count
== 0);
118 assert(C::count
== 0);