From 579396ee082565ab5f42ff166a264891223b7b82 Mon Sep 17 00:00:00 2001 From: Florian Weimer Date: Mon, 8 Jan 2018 14:57:25 +0100 Subject: nptl: Add test for callee-saved register restore in pthread_exit GCC PR 83641 results in a miscompilation of libpthread, which causes pthread_exit not to restore callee-saved registers before running destructors for objects on the stack. This test detects this situation: info: unsigned int, direct pthread_exit call tst-thread-exit-clobber.cc:80: numeric comparison failure left: 4148288912 (0xf741dd90); from: value right: 1600833940 (0x5f6ac994); from: magic_values.v2 info: double, direct pthread_exit call info: unsigned int, indirect pthread_exit call info: double, indirect pthread_exit call error: 1 test failures --- ChangeLog | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'ChangeLog') diff --git a/ChangeLog b/ChangeLog index a8fc47ea14..09ea55ea2b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2018-01-08 Florian Weimer + + * nptl/tst-thread-exit-clobber.cc: New file. + * nptl/Makefile (CFLAGS-tst-thread-exit-clobber.o): Compile in + C++11 mode. + (LDLIBS-tst-thread-exit-clobber): Link with libstdc++. + (tests): Add tst-thread-exit-clobber. + [!CXX] (tests-unsupported): Add tst-thread-exit-clobber. + 2018-01-08 Florian Weimer * support/check.h (support_static_assert): Define. -- cgit 1.4.1