diff options
author | Jonathan Wakely <jwakely@redhat.com> | 2020-10-02 21:10:55 +0100 |
---|---|---|
committer | Jonathan Wakely <jwakely@redhat.com> | 2020-10-02 22:18:51 +0100 |
commit | 1ad08b64cea51d3cb989a1a176baeb8a18071231 (patch) | |
tree | 8ff431d73dd1b109672e9c4b78a859b2e52dbced | |
parent | 679dbc9dcec0d1240951442947199ba155f494b6 (diff) | |
download | gcc-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.cc | 6 |
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(); } |