diff options
Diffstat (limited to 'libcxxabi/test/unwind_03.pass.cpp')
| -rw-r--r-- | libcxxabi/test/unwind_03.pass.cpp | 102 |
1 files changed, 0 insertions, 102 deletions
diff --git a/libcxxabi/test/unwind_03.pass.cpp b/libcxxabi/test/unwind_03.pass.cpp deleted file mode 100644 index 8af1d2b3fd6..00000000000 --- a/libcxxabi/test/unwind_03.pass.cpp +++ /dev/null @@ -1,102 +0,0 @@ -//===------------------------- unwind_03.cpp ------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#include <exception> -#include <stdlib.h> -#include <assert.h> - -struct A -{ - static int count; - int id_; - A() : id_(++count) {} - ~A() {assert(id_ == count--);} - -private: - A(const A&); - A& operator=(const A&); -}; - -int A::count = 0; - -struct B -{ - static int count; - int id_; - B() : id_(++count) {} - ~B() {assert(id_ == count--);} - -private: - B(const B&); - B& operator=(const B&); -}; - -int B::count = 0; - -struct C -{ - static int count; - int id_; - C() : id_(++count) {} - ~C() {assert(id_ == count--);} - -private: - C(const C&); - C& operator=(const C&); -}; - -int C::count = 0; - -void f2() -{ - C c; - A a; - throw 55; - B b; -} - -void f1() throw (long, char, double) -{ - A a; - B b; - f2(); - C c; -} - -void u_handler() -{ - exit(0); -} - -int main() -{ - std::set_unexpected(u_handler); - try - { - f1(); - assert(false); - } - catch (int* i) - { - assert(false); - } - catch (long i) - { - assert(false); - } - catch (int i) - { - assert(i == 55); - } - catch (...) - { - assert(false); - } - assert(false); -} |

