aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Wakely <jwakely@redhat.com>2020-10-02 21:10:55 +0100
committerJonathan Wakely <jwakely@redhat.com>2020-10-02 22:18:51 +0100
commit1ad08b64cea51d3cb989a1a176baeb8a18071231 (patch)
tree8ff431d73dd1b109672e9c4b78a859b2e52dbced
parent679dbc9dcec0d1240951442947199ba155f494b6 (diff)
downloadgcc-1ad08b64cea51d3cb989a1a176baeb8a18071231.zip
gcc-1ad08b64cea51d3cb989a1a176baeb8a18071231.tar.gz
gcc-1ad08b64cea51d3cb989a1a176baeb8a18071231.tar.bz2
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).
-rw-r--r--libstdc++-v3/testsuite/18_support/96817.cc6
1 files changed, 6 insertions, 0 deletions
diff --git a/libstdc++-v3/testsuite/18_support/96817.cc b/libstdc++-v3/testsuite/18_support/96817.cc
index 4c4da40..19399c4 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 <exception>
+#include <stdlib.h>
+
int init()
{
#if __has_include(<sys/single_threaded.h>)
@@ -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();
}