Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / libcxx / test / std / depr / exception.unexpected / set.unexpected / set_unexpected.pass.cpp
blobfce49d86ae5bf3300bca3e0f8ce16274edc61819
1 //===----------------------------------------------------------------------===//
2 //
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
6 //
7 //===----------------------------------------------------------------------===//
9 // REQUIRES: c++03 || c++11 || c++14
11 // test set_unexpected
13 #include <exception>
14 #include <cassert>
15 #include <cstdlib>
17 #include "test_macros.h"
19 void f1() {}
20 void f2() {}
22 void f3()
24 std::exit(0);
27 int main(int, char**)
29 std::unexpected_handler old = std::set_unexpected(f1);
30 // verify there is a previous unexpected handler
31 assert(old);
32 // verify f1 was replace with f2
33 assert(std::set_unexpected(f2) == f1);
34 // verify calling original unexpected handler calls terminate
35 std::set_terminate(f3);
36 (*old)();
37 assert(0);
39 return 0;