1234567891011121314151617181920212223242526272829303132333435 |
- //===----------------------------------------------------------------------===//
- //
- // The LLVM Compiler Infrastructure
- //
- // This file is distributed under the University of Illinois Open Source
- // License. See LICENSE.TXT for details.
- //
- //===----------------------------------------------------------------------===//
- // test set_unexpected
- #include <exception>
- #include <cassert>
- #include <cstdlib>
- void f1() {}
- void f2() {}
- void f3()
- {
- std::exit(0);
- }
- int main()
- {
- std::unexpected_handler old = std::set_unexpected(f1);
- // verify there is a previous unexpected handler
- assert(old);
- // verify f1 was replace with f2
- assert(std::set_unexpected(f2) == f1);
- // verify calling original unexpected handler calls terminate
- std::set_terminate(f3);
- (*old)();
- assert(0);
- }
|