From 1ad08b64cea51d3cb989a1a176baeb8a18071231 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Fri, 2 Oct 2020 21:10:55 +0100 Subject: [PATCH] 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). --- libstdc++-v3/testsuite/18_support/96817.cc | 6 ++++++ 1 file changed, 6 insertions(+) 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(); } -- 2.30.2