From: Jonathan Wakely Date: Fri, 2 Oct 2020 20:10:55 +0000 (+0100) Subject: libstdc++: Fix testcase by using terminate handler X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=1ad08b64cea51d3cb989a1a176baeb8a18071231;p=gcc.git libstdc++: Fix testcase by using terminate handler This test was supposed to verify that when __libc_single_threaded is available we successfully detect recursive static initialization even when linked to libpthread. But I forgot to that when recursive init is detected, we terminate, and so the test fails. This adds a terminate handler that exits cleanly, so the test passes when recursive init is detected. libstdc++-v3/ChangeLog: * testsuite/18_support/96817.cc: Use terminate handler that calls _Exit(0). --- diff --git a/libstdc++-v3/testsuite/18_support/96817.cc b/libstdc++-v3/testsuite/18_support/96817.cc index 4c4da40afa9..19399c473ef 100644 --- a/libstdc++-v3/testsuite/18_support/96817.cc +++ b/libstdc++-v3/testsuite/18_support/96817.cc @@ -21,6 +21,9 @@ // PR libstdc++/96817 +#include +#include + int init() { #if __has_include() @@ -32,8 +35,11 @@ int init() return 0; } +void clean_terminate() { _Exit(0); } + int main (int argc, char **argv) { + std::set_terminate(clean_terminate); init(); }