This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH] nptl: Add test for callee-saved register restore in pthread_exit
- From: Florian Weimer <fweimer at redhat dot com>
- To: libc-alpha at sourceware dot org
- Date: Fri, 5 Jan 2018 14:05:13 +0100
- Subject: Re: [PATCH] nptl: Add test for callee-saved register restore in pthread_exit
- Authentication-results: sourceware.org; auth=none
- References: <20171231192400.46AB7401BC22B@oldenburg.str.redhat.com>
On 12/31/2017 08:24 PM, Florian Weimer wrote:
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
2017-12-31 Florian Weimer<fweimer@redhat.com>
* 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.
FYI, I will push this once the static_asssert matter is settled. Thanks.
Florian