+ 21.6 Strings library, Null-terminated sequence utilities: <cctype>, <cwctype>,...
[lightlibc++.git] / testcase / cstdlib / quick_exit-exceptions.cpp
blobb438bc9ad21e3a195a4560b2564a67b518680615
1 /*
2 Permission is granted to use, modify, and / or redistribute at will.
4 This includes removing authorship notices, re-use of code parts in
5 other software (with or without giving credit), and / or creating a
6 commercial product based on it.
8 This permission is not revocable by the author.
10 This software is provided as-is. Use it at your own risk. There is
11 no warranty whatsoever, neither expressed nor implied, and by using
12 this software you accept that the author(s) shall not be held liable
13 for any loss of data, loss of service, or other damages, be they
14 incidental or consequential. Your only option other than accepting
15 this is not to use the software at all.
17 #include <cstdlib>
18 #include <exception>
19 #include <cassert>
24 * Check that the quick_exit function calls std::terminate when a handler
25 * leaks an exception
30 #if !defined(_LIGHTLIBCPP_CPP03_STRICT) && \
31 !defined(_LIGHTLIBCPP_NO_EXCEPTIONS)
33 void f()
35 throw std::exception();
38 int main()
40 assert(std::at_quick_exit(f) == 0);
41 std::quick_exit(EXIT_SUCCESS);
43 return EXIT_FAILURE;
46 #else
48 int main()
50 return EXIT_SUCCESS;
53 #endif