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).
This commit is contained in:
Jonathan Wakely 2020-10-02 21:10:55 +01:00
parent 679dbc9dce
commit 1ad08b64ce

View File

@ -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();
}